본문 바로가기

프로그래밍/Unity

(22)
스크립트에서 오브젝트/컴포넌트 접근 및 활성화 unity3d의 씬내에 표시되는 객체들은 모두 GameObject로 구성되고, 세부 항목들이 Component로 포함되어 계층을 이루고 있다. 빈 GameObject를 만들고, 여러 항목을 추가해 사용할 수 있어 필요한 오브젝트들을 관리하기 편리하다. 하지만 스크립트상에서 각 오브젝트에 접근하기가 애매할 수 있는데, 이와 관련해 아는 내용만 포스팅한다. 1. Hierarchy 에서 게임오브젝트 찾기 전역메쏘드인 GameObject.Find() / GameObject.FindWithTag() 로 찾는다. GameObject obj = GameObject.Find( typeof(MyObject) ); GameObject obj = GameObject.FindWithTag("MyObjectTag"); 2. 부..
강체-RigidBody 기본속성 RigidBody 관련 정리 RigidBody : 강체 - 형태가 고정되어 외력이 가해져도 모양/크기가 변하지 않는 물체 1. 주요 레퍼런스(public attribute) 정의 * mass : 질량 - 힘과 함께 중요한 요소로 질량에 의해 강체의 운동 형태가 많이 달라진다. * drag : 선형 항력 계수??? - 움직임에 대한 댐퍼. 반발력으로 마찰이나 저항등의 용도로 쓰인다. 물체의 이동(포지션)에 영향을 주어, 나아가는 속도(velocity)가 감소하는 효과가 있다. * angularDrag : 회전 댐퍼. 스피어를 일반 큐브로 만들어진 바닥으로 던질때 이값을 0으로 하면, 한없이 굴러간다. 즉, 회전의 반대되는 힘. * useGravity : 중력적용. 기본중력방향은 Edit>Project Se..
[Unity3D] 오브젝트 회전 - Quaternion 쩝.. 예전.. DirectX 5.0 정도 즈음에 3D를 잠깐 볼 기회가 있었는데, 그때도 머리아프던 회전이 결국 여기서도 걸린다. 그때는 회전행렬을 만들어 사용했다. 얼핏 이해했다고 생각했는데, 벌써 근 10년전의 일이다보니 완전 까막눈이 다 되어있다..쩝 객관적 사실이 아닌 감성적 느낌과 다분히 초보적으로 그냥 인터넷에서 주워들은 대로 정리해본다. 덧붙여 수학...아... 한숨이... 1. 회전 일반 회전에는 오일러회전, 축회전, 쿼터니언회전등이 있는데, 많이 사용하는게 오일러회전과 쿼터니언이다. 일반적으로 오일러 회전은, 매번 회전시마다 오일러각이 변화하고, 해당 변화량에다 다시 x, y, z 순서(혹은 그반대)의 각 변환행렬을 곱하여 값을 얻게 되는데, 각각의 회전은 상호간에 독립적인 회전이 이루..
FBX 에니메이션 임포트 FBX 파일을 이용한 에니메이션 마야, 3DMax 등에서 작업한 오브젝트, 에니메이션 데이터를 unity3d에서 사용하기 위한 절차... 1. 마야에서 오브젝트와 각 에니메이션별로 export 한다. * export 하는 방법에 따라 차이가 있는데, 일단 unity3d의 샘플 프로젝트는 아래와 같은 이름 규칙을 사용. 오브젝트명.fbx 오브젝트명@에니메이션명1.fbx 오브젝트명@에니메이션명2.fbx 이와 같은 형태로 익스포트된 fbx를 사용하고 있다. * 하나의 fbx에 각 동작별로 프레임을 나눠 한번에 로드하고, 각 프레임별 에니메이션을 지정할 수 있다. 단 이럴경우 각 동작의 시작-끝 프레임번호를 알아야 한다. (unity3d에서 import 후 오브젝트의 prefab 객체에 Animations 컴포..
캐릭터 컨트롤 하기 캐릭터 컨트롤 unity3d 에서 Update() 시 키입력 처리를 통해 캐릭터를 이동할 수 있다. 각 키를 맵핑하고, 해당 이동 처리를 하고, 충돌 영역등을 설정해야 한다. 하늘에 떠있는 오브젝트는 키 입력에 따라 Translate를 해주면 되는데, 캐릭터의 경우 중력도 적용해야 하고, 이동 속도도 제어해야 한다. 이것저것 처리할게 많아지는데, unity3d 에서는 이와 관련한 컴포넌트를 제공하고 있다. 1. 캐릭터로 사용할 오브젝트(GameObject)를 하나 만든다. 큐브 오브젝트를 추가하고, 이름을 Player로 변경했다. 2. 라이트 추가 카메라 위치에 Directional light 오브젝트를 추가. 3. 스크립트 추가 Component > Physics > Character Controlle..
기본 클래스 정리 스크립트 주요 클래스 : 초기에 많이 사용되는 기본 클래스에 대해 정리. 상세한 내용은 Help > Scripting Reference 에서 찾아볼 수 있다. 속성은 소문자로 시작하고, 메쏘드는 대문자로 시작하는 룰을 따르고 있음. 스크립트의 속성을 public으로 설정하면, Inspector에서 드래그&드롭으로 그 값을 설정할 수 있다. Object unity3d 에서 씬에 사용되는 오브젝트,컴포턴트의 기본 클래스로 GameObject, Component 클래스는 이 클래스를 상속받아 구현되어 있다. name : 오브젝트명 Destroy() : 오브젝트 제거 GameObject unity3d의 씬(sence)에 사용되는 오브젝트는 GameObject 클래스의 파생 클래스이다. transform rigi..