목록전체 글 (283)
ecsimsw
Gizmos / Serialized / Debug - 스크립트 내의 private 변수를 게임 실행 중 확인하거나, Mesh가 없는 게임 오브젝트를 씬 뷰에서 확인하여 보다 효율적으로 유니티를 활용하는 방법을 공부하였다. Debug Mode - 인스펙터에서 Debug로 모드를 전환하는 것으로 게임 중 오브젝트 안 스크립트의 private 변수를 활용할 수 있다. Serialized - 객체의 데이타를 연속적인 데이터로 변환하는 것으로, 파일이나 DB에 저장하거나 웹서비스 등으로 네트워크 상으로 전송하는 것을 Serialization이라 한다. 내부적으로 프리팹은 게임 오브젝트와 컴포넌트를 Serialize된 데이터 스트림이다. 이 프리팹이 인스턴스 됐을 때, 새로운 오브젝트에 deSerialize 되는 ..
Light Directional light - 오브젝트의 위치에 상관없이 조명의 각도만을 영향으로 주어 전체 화면에 균일한 빛을 가한다. Point light - 중심으로부터 퍼지는 빛을 가한다. 전구 같은 효과를 낸다. Spot light - 지정한 위치에서 각도로 원형 뿔 모양의 빛을 낸다. Area light - 지정한 사각 공간에서 특정 방향으로 빛을 비춘다. Shadow - No shadows - Hard shadows - Soft shadows
Local Coordinate - 프리팹 에셋 총알을 총구 방향으로 인스턴스하고, 총알의 forward 방향으로 힘을 주었는데 옆면으로 총알이 이동하여 local 좌표계와 local 축을 변경할 수 있는 방법을 공부하였다. transform.forward transform.forward / transform.up / transform.right 는 객체의 local 좌표(객체 기준에서)에서 각각 forward(z축), up(y축), right(x축)을 world 좌표로 가져온다. 따라서 총알을 어떻게 rotate 한들 local 축은 변함이 없고, transform.forward로 힘을 주는 것은 내 프리팹의 local z축으로 힘을 가한다. 따라서 총알이 정확한 방향으로 진행하고자 한다면 프리팹의 lo..
Vector3 Constructor - 생성자를 이용하여 생성과 함께 해당 x,y,z의 컴포넌트를 갖는 벡터를 생성한다. Vector3 vector3 = new Vector3(3, 2, 2); Static Variables - 자주 사용되는 벡터를 정적 변수로 사용할 수 있다. backVector3(0, 0, -1) downVector3(0, -1, 0) forwardVector3(0, 0, 1) leftVector3(-1, 0, 0) oneVector3(1, 1, 1) rightVector3(1, 0, 0) upVector3(0, 1, 0) zeroVector3(0, 0, 0) nomalize / magnitude - 단위 벡터 : vector을 단위 벡터로 사용하고자 할 때 Nomalize() 메소드..
Animation - 유니티에서 애니메이션 시스템을 다루는 방법을 공부하였다. 유니티는 Mecanim이라는 시스템을 제공하여 애니메이션 설정이나, 애니메이션 클립을 이용, 리타게팅 등 애니메이션을 더 쉽게 다둘 수 있도록 하였다. Animator controller - Animator controller는 게임 오브젝트의 애니메이션 상태와 상태 전환을 관리한다. Assets에 우클릭 후 create - Animator Controller 을 통해 생성하고, Animator 컴포넌트의 Controller에대한 인자로 대입하는 것으로 해당 오브젝트의 애니메이션을 관리한다. State Machine - 애니메이션의 상태와 상태 간의 전환을 다루기 위해 State Machine을 사용한다. 이는 일종의 플로우차..
Material / Texture Material - Material은 오브젝트의 디스플레이 방법을 정의하는데 사용된다. 3차원에서 빛이 오브젝트에 닿아 재질, 색 등에 의해 출력되는 것을 Rendering 이라고 하는데, 이 렌더링에 있어 오브젝트의 속성을 정의해두는 것이 Material 이다. 이런 오브젝트의 렌더링을 담당하는 컴포넌트가 Mesh Renderer이고, Materials 속성에서 렌더링에 사용할 Materials 목록을 정의 할 수 있다. 메시 렌더러는 메시 필터에서 지오메트리를 가져와 오브젝트의 Transform 컴포넌트에 정의된 위치에 지오메트리를 렌더링한다. 오브젝트의 Inspector에서 Mesh Renderer _ Element 옆 작은 원을 클릭하여 material을 impo..
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..