목록Etc/Unity (23)
ecsimsw
Prefab - prefab은 객체지향에서의 class와 비슷한 친구이다. 오브젝트의 컴포넌트 / 프로퍼티를 에셋으로 저장하고, 이런 설계도를 필요에 따라 간단히 인스턴스 하는 기능이다. Using prefab - 오브젝트를 Hierarchy에서 project 뷰로 드래그 하는 것으로 프리펩 에셋으로 만들 수 있다. 또 반대로 프리펩 에셋을 Scene이나 Hierarchy로 드래그 하는 것으로 프리펩 에셋을 인스턴스 할 수 있다. 프리팹 에셋을 편집하면 모든 packing된 오브젝트는 해당 편집이 적용된다. 이렇게 프리팹 에셋으로 packing되어 있는 오브젝트는 청색으로 이름을 갖고, 오브젝트를 우클릭 후 Unpacking prefab 하는 것으로 프리팹 에셋과의 연결을 끊을 수 있다. 이름이 청색인 ..
Rigidbody / AddForce / AddTorque Rigidbody - Rigidbody(강체)는 gameObject가 유니티 물리 엔진에 제어 받게 한다. 한마디로 힘과 질량을 갖고 움직일 수 있도록 하는 것이다. Mass : 오브젝트의 질량 Drag : 오브젝트가 받는 공기 저항 값 Angular Drag : 오브젝트가 토크로 회전 시 받는 공기 저항 값 Use Gravity : 중력의 영향 유무 Is Kinematic : 활성화 시 물리엔진의 제어없이 Transform으로만 조작됨 Interpolate : 오브젝트의 움직임 부드러움 옵션 처리 Collision Dectection : 오브젝트 충돌 감지 / 감지 옵션 처리 Constraints : 오브젝트의 움직임 고정 위는 대표적인 rig..
Accessing - 다른 오브젝트, 컴포넌트를 엑세스 하는 방법을 공부하였다. GameObject.GetComponent - 해당 게임 오브젝트의 컴포넌트 타입을 인자로 받아 반환하고, 없다면 null을 리턴한다. Rigidbody rb = this.gameObject.GetComponent(); GameObject.Find - 게임 오브젝트의 이름을 파라미터로 받아 찾고, 그 오브젝트를 리턴한다. 없다면 null을 리턴한다. 이름에 "/"을 이용해서 주소처럼 오브젝트 안의 자식 오브젝트를 명시할 수 있다.(Parent_objcet /Child_ object) docs에선 성능에 저하를 야기하므로 매 프레임 마다 호출되는 경우를 최대한 피하고, startup에 사용하여 변수로 저장하는 것을 추천한다. ..
Rotate Euler angle - 유니티에서 회전은 크게 Euler angle / Quaternion 으로 표현된다. 오일러(Euler) 방식은 X,Y,Z 축을 기준으로 회전 값 만큼 회전 시키는 우리에게 익숙한 방식이다. 하지만 이는 "짐벌락" (세 회전을 차례로 적용 시 이전 두 회전의 결과로 세 번째 축이 이전 축 중 하나와 같은 방향을 가리킬 수 있다는 문제)을 야기하므로, 유니티 내부에서는 쿼터니언(Quaternion) 방식을 취한다. 위처럼 inspector에서 직접 rotation 값을 변경하는 방식은 오일러 방식이지만 실제로 유니티 내부에서는 쿼터니언 방식으로 저장된다. Quaternion - 유니티 내부에서 오브젝트 회전을 표기하는 방식으로 x,y,z,w 네 개의 값으로 표현되지만, ..
Translate Vector3 - Vector3는 3차원 공간에서의 위치와 벡터를 표현하기 위해 사용되는 "구조체"이다. (좌표를 구조체로 표현하는 이유는 C#-class/struct 포스팅에서 정리하였다.) Vector3 v = new Vector3(1, 1, 1); 위와 같이 생성자를 통해 생성하여 사용하거나 Vector3.forward(= Vector3.(0,0,1))처럼 static 변수를 통해 간단히 사용할 수 있다. 쓰임이 많고 중요하다고 생각하기 때문에 Vector3만을 따로 공부 후 포스팅 할 생각이다. transform.position - 오브젝트의 transform의 position 값을 변경하여 물체의 위치를 바꿀 수 있다. transform.position = new Vector3..
Game Object Game object is.. - Game object는 캐릭터, 아이템, 광원, 카메라, 특수 효과 등 게임에 존재하는 모든 오브젝트이다. 하지만 게임 오브젝트 자체로는 컨테이너에 불과하고 기능을 위해선 관련 components를 추가해야한다. Components - component는 오브젝트를 기능하게 하는 기본 구성 요소이다. 앞서 말했 듯 게임 오브젝트는 단순히 컴포넌트의 컨테이너이고 해당 객체의 기능이나 속성은 컴포넌트에 의해 추가된다. Accessing _ same object - 우선 같은 게임 오브젝트의 컴포넌트를 엑세스하기 위해선 GetComponent 메소드를 사용해야한다. Rigidbody rb = GetComponent(); rb.mass=10f; rb.Add..
Unity Unity Screen Configuration - Hierarchy view : 게임을 구성하는 요소들을 확인할 수 있다. - Scene view : 요소의 배치 상태를 확인하고 변경할 수 있다. - Game view : 게임 화면의 시선을 확인 할 수 있다. - Inspector view : 게임 구성 요소의 속성을 확인할 수 있다. - Projector view : 프로젝트를 구성하는 이미지, prefab, 스크립트 파일 등을 확인 할 수 있다. - Console view : 게임 실행 중의 로그를 확인 할 수 있다.