본문 바로가기

수업/Unity 2주 프로젝트 및 공부

(14)
Unity 프로젝트 및 공부 14일차 돼지 AI 및 사냥 1. 오브젝트의 Z방향이 아닐때는 빈 GameObject를 이용한다. : 모델링을 가져왔는데 모델링의 Z축이 정면이 아니고 다른 방향이면 월드Z축 방향으로 돌려도 로컬Z축은 같이 돌아가버린 상태이다. 그렇기 때문에 Hierarchy에 빈 오브젝트를 생성한 후 사용하게 되면 방향은 0, 0, 0으로 맞출 수 있게 된다. 2. Random.Range(Min, Max)의 인자값이 int일 때, float일 때 : ① int일 때 : Min이상 Max미만, Min값은 포함되지만 Max값은 포함되지 않는다. ② float일 때 : Min이상 Max이하, Min값과 Max값 모두 포함된다. 3. transform.eulerAngles : 인스펙터 창의 rotation x, y, z값 4. Qua..
Unity 프로젝트 및 공부 13일차 인벤토리 아이템 사용 1. Grid Layout Group : Grid Layout Group 컴포넌트를 가지고 있는 부모 오브젝트안에 있는 자식 오브젝트들을 정렬시켜준다. (하위 오브젝트를 레이아웃 요소로 만들어버리는 것이라고 생각한다.) 파라미터 기능 Padding 상위 Rect 크기에 대한 상하좌우 패딩영역(여백)을 설정 Cell Size 레이아웃 요소가 사용할 셀의 크기를 설정 Spacing 레이아웃 요소간의 간격을 설정 Start Corner 첫 요소가 위치하는 코너를 설정 Start Axis 요소를 배치할 방향의 주축을 설정 Child Alignment 레이아웃 요소의 정렬 방식을 설정 Constraint 자동 레이아웃 시스템을 지원하기 위해 격자무늬의 행렬 수를 제한 (강제 행 이동) 2. ..
Unity 프로젝트 및 공부 12일차 플레이어 스테이터스 채광시 아이템(돌맹이) 생성 및 습득 1. 배열을 이용할 때, 인덱스값을 변수로 이용하자. : 배열에 접근할 때 인덱스 값이 필요한데, 숫자로만 되어있으면 각 인자값을 넣었을때 어디에 뭐가 있는지 정확히 알 수가 없다. 그렇기에 변수를 상수화 시켜서 배열에 접근하자. private string[] animals; //const로 외부 변경이 불가능하게 만들어줌 private const int tiger = 0, dog = 1, cat = 2, fox = 3; private string currentAnimal; //ex. 호랑이 대입 currentAnimal = animals[tiger]; //ex. 여우 대입 currentAnimal = animals[fox]; 2. 예외처리 : 스..
Unity 프로젝트 및 공부 11일차 사운드 매니저 (+싱글톤) 공부 및 사용 1. 싱글턴화 시키기 : 씬을 이동할 때, 이전 씬에 있던 모든 객체들이 파괴되기에 씬이동이 이뤄지더라 하더라도 파괴가 일어나지 않게하기 위함. 2. 가장 먼저 실행되는 호출 ① Awake() : 객체 생성시 최초 실행, 비활성화 활성화 관계 없음 ② Start() : 매번 활성화되면 실행, 비활성화→활성화 될때 마다 실행, 코루틴 실행 가능 ③ OnEnable() : 매번 활성화 되면 실행, 비활성화→활성화 될때 마다 실행, 코루틴 실행 불가 3. DontDestroyOnLoad() : 씬이 넘어갔을 때 기존의 오브젝트가 사라지게 되는데, 같은 객체를 다시 생성해준다해도 정보는 사라지게 된다. Scene이 변경되도 계속 남아있게 하고싶다면 위 함수를 사용하면 된..
Unity 프로젝트 및 공부 10일차 애니메이터 상속 공부 및 사용 근접무기 도끼, 곡괭이 추가 바위 채굴 1. 애니메이터 상속 : 새로운 Animator를 생성할 때, Animator Controller가 아닌 Animator Override Controller로 생성한다. 그 후 부모 애니메이터의 애니메이션에 맞춰 자식 애니메이션을 넣어준다. 그러면 부모 애니메이터에 대한 내용(파라키터, 상태전이)을 오버라이드해서 그대로 사용하기 때문에 똑같은 과정을 두번 쓰지 않아도 된다. 2. Rigidbody - Drag, Angular Drag : Drag, Angular drag에 대한 부가설명 추가 Rigidbody : Rigidbody Class 객체 -컴포넌트 세부 속성 Mass 질량. 무게단위가 아닌 상대적인 의미의 질량이다. Drag ..
Unity 프로젝트 및 공부 9일차 어제의 문제점 고치기 근접무기 클래스 나누기 1. 좌표가 이상하다면 해당 오브젝트의 Transform값을 인스펙터창에서 먼저 확인해보자. 2. abstract : 추상 코루틴 : 현재 이 함수는 필요하지만 내(부모 클래스)가 만들지는 않을것이니 자식 클래스에서 완성시켜라 필요한 기능이지만 내용이 각기 다를 때 상속받은 자식클래스에서 완성시키도록 하게 만듦 == 미완성 protected abstract IEnumerator IncompleCoroutine(); 미완성인 함수가 있기 때문에 클래스 자체도 미완성인 클래스가 되버린다. 미완성인 클래스임을 알려주기 위해 클래스 앞에도 abstract가 붙어야 한다. public abstract class IncompleClass : MonoBehaviour 미완..
Unity 프로젝트 및 공부 8일차 무기교체 후 플레이어 상황에 따른 애니메이션 처리 무기 흔들기 1. 무기 흔들림에 있어 Y값이 이상하게 움직이는 문제 발생 : 디버그로 확인해 보아도 Y값은 X값과 같이 잘 변하는데 Y쪽은 마우스가 위아래 움직여도 계속 위로만 이동 됨. Mathf.Clamp(a, -b, b) : a를 -b~b까지로 제한을 둔다. Mathf.Lerp(a, b, c) : a를 b까지 c만큼의 비율로 이동한다. 위치 값 x = Mathf.Clamp(Mathf.Lerp(currentPos.x, -mouseX, smoothX), -limitX, limitX) : 위치 값 x = 현재X좌표가 마우스x좌표와 (-가 붙었기에)반대로 smoothX의 비율만큼 이동하며 -limit ~ limit 사이값까지라는 제한을 주었다. 위의 마우스..
Unity 프로젝트 및 공부 7일차 무기교체 1. static을 많이 사용할 수 록 메모리가 낭비된다. 2. [RequireComponent(typeof( ))] : 인스펙터 창에 [SerializeField]로 된 GunController를 한번 넣으면 뺄 수 없게 만든다. [RequireComponent(typeiof(Gameobject))] public class ClassA : MonoBehavior { //인스펙터 창에 게임오브젝트를 가져다 넣으면 뺄 수 없음 [SerializeField] private Gameobject gameobject; //인스펙터 창에 트랜스폼을 가져다 넣어도 뺄 수 있음 [SerializeField] private Transform transform; } 3. Dictionary : 인스펙터창에서 오브..