Unity3D 4.2 Base Setting
- Layout - 2by3 가 일반적인 레이아웃
- Unity - Preferences - General - Always Show Project Wizard Check (동시 프로젝트 오픈가능)
- Unity - Preferences - External Tools - External Script Editor 에서 다른 편집기 툴로 변경 가능. (Ex - Microsoft VisualStudio 등)
- 다른 툴로 변경시 Assets - Sync MonoDevelop Project 로 선택해서 실행해야 자동완성이 적용됨.
- Unity - Preferences - External Tools - Image application 을 이용하여 이미지 편집 가능. (Ex - Photoshop 등)
- Assets - 메인창에 있는 프로젝트 메뉴와 같음.
- GameObject - 유니티에서 제공하는 오브젝트 생성 및 관리. (간단한 오브젝트만 생성가능)
- 좌표설정시 Y가 위 / X가 오른쪽/ Z가 뒤
3D 모델링 및 축 관련
- 3DMAX와 AutoCAD를 제외하고 모든 3D툴은 유니티와 같은 좌표를 가짐
- Unity3D는 왼손좌표계를 사용함.
- 일반적으로 디자이너가 3D모델링을 할때 오른손좌표계로 받음. - Z축이 앞으로 보도록 개발자가 디자이너에게 요청해야함.
- X : RED / Y : GREEN / Z : BLUE - 좌표축과 색상을 매치시켜서 본다.
- fbx, 3dx(MAX이전 버젼 확장자), obj, dea 등의 확장자만 Unity3D에 불러올수 있음. (y축이 위, z축이 전방으로 파일을 받아야함)
Unity3D 회전축
- 오브젝트가 앞으로 기우는것은 X축 회전
- 오브젝트 중심으로 뱅글뱅글 도는 것 (캐릭터 회전, 자동차회전) Y축 회전
- 오브젝트가 화투짝처럼 돌때, 주사위 굴릴때, 바람개비 도는 형식은 Z축 회전
Unity3D 스케일링
- 각 축대로 확대 및 축소됨.
- 외부 3D 오브젝트를 가져왔을경우 사이즈 줄이는법
- Object파일 Inspector에서 Scale Factor에서 단위를 줄임.
- Hierarchy로 Object를 가져와서 기본 1m짜리 Cube와 구분하면서 적용한다.
- 절대 Transform에서 사이즈를 줄이면 안됨.(Scale이 1:1:1 을 유지해야 함).
Unity3D 버튼설명
- Global 좌표버튼
- 기즈모가 바뀜.
- 게임을 기준으로 하는 절대좌표.
- World 좌표라고도 불름.
- Local 좌표버튼
- 나를 기준으로 하는 좌표.
- 오브젝트가 바라보는 방향에서 좌표를 계산.
- Global/Local 좌표버튼들은 실제 게임에는 아무 영향이 없고 개발중에서만 영향을 끼침.
- Center 버튼
- 한개 오브젝트 선택시 전혀 영향없음.
- 두개 이상 선택했을때 오브젝트간 중간에 중심좌표가 나타남.
- Command+Shift 누른상태에서 기즈모를 누르고 바닥으로 내리면 자석효과
- Pivot 버튼
- 두개 이상 오브젝트 선택시 마지막으로 선택된 오브젝트 중심으로 좌표가 나타남.
- Persp 모드
- 일명 투시도 모드
- 원근이 있는 모드
- ISO 모드
- isometric의 약자
- 직교투영방식, 등각투영방식이라고 함.
- 오브젝트가 멀리있던 작게 있던 같은 크기로 보임.
- 원근방식이 무시됨.
- Persp / ISO 모드중에서 좌표맞추기가 ISO가 쉬움. 일반적으로 ISO사용.
- Scene에 Gizmos 콤보버튼
- Gizmos(기즈모)의 사이즈를 조정할 수 있음.
Unity3D Object 설명
- Plane
- 눈금하나당 1m 로 계산.
- plane은 솔리드모드가 아닌 서피스모드를 사용 - 사용자에게 보이는 부분만 신경씀.
- plane을 뒤집어버리면 오브젝트가 보이지를 않음. (개념이해필요)
- Inspector에 있는 진한글씨들을 Component라고 함.
- Inspector에 있는 작은글씨들은 Property 및 속성이라고 불림.
- 일반적으로 화면의 중심은, 좌표 0,0,0으로 일반적으로 정하고, 이것은 항상 상대적임.
- Directional Light
- 햇빛처럼 거리는 없고 방향만 있는 빛(Light).
- 물체와 가까워진다고 해서 밝아지지도, 멀어진다고 어두워지지 않음.
- 기즈모를 가지고 작업하는데 불편하지 않게 구석에 쳐박으면 됨.
- Inspector에서 Intensity로 밝기 조정 및 Color로 빛 색상 조정가능 (밝기 기본은 0.5)
- Sphere
- 오브젝트 좌표가 0,0,0으로 안될수 있기에 톱니바퀴 버튼에서 'Reset Position'을 하면 0,0,0으로 설정됨.
- Component - Rigidbody 선택시 중력이 적용됨.
- Rigidbody - Use Gravity는 지구의 중력을 사용함. / 미체크시 '원'오브젝트가 굴러가지 않음.
- Main Camera
- 원하는 좌표에 두고 사용하면 됨.
- 일반적으로 X좌표는 0으로 맞춰놓고 사용함.
- Rotation 을 건드린 카메라는 Global좌표상태에서 움직여야 좌표들이 안깨짐.
- 화면비율은 멀티플랫폼으로 만들어야 하기때문에 'Free Aspect'로 맞춰놓고 사용.
- Sound Clip (Audio Source)
- 소리는 Main Camera가 들음.
- Play On Awake 체크시 시작과 동시에 소리가 발생.
- Hierarchy Object
- 각 Object끼리는 겹칠 수 있으며, 자식과 부모관계를 가진다.
- Object가 겹치면 움직일때 같이 움직임.
- Transform
- 위치정보만 가지고 있음.
- prefab으로 선언된 것은 무조건 Transform으로 선언해야함.
- GameObject
- 모든 정보를 가져올 때 사용.
Unity3D Assets 설명
- Physic Material
- Bounciness - 반사정도
- Friction Combine, Bounce Combine - 반사되었을때 반응설정.
- 원하는 오브젝트에 끌어서 넣어야함.
- Material
- 색상 및 텍스쳐 적용가능.
- 오브젝트에 비쥬얼을 주기위한 기능.
- Image
- Material에 Image를 적용할 수 있음.
- 적용 확장자는 PNG, JPG, BMP, PSD 등을 사용할 수 있음.
- 단, AI등 벡터이미지파일들은 적용할 수 없음. (비트맵파일만 사용가능)
- 이미지를 오브젝트에 적용시 Inspector에서 Material 속성에서 Tiling x, y 를 -1로 변경
- 적당한 이미지 사이즈 확인하려면 RGB - Mipmaps로 변경후 색상으로 확인.
- Import Package - Script - SmoothFollow
- 카메라가 자연스럽게 Target을 쫓아다니는 스크립트.
- 카메라에 Script를 적용하고 Target을 끌어다가 넣어주면 됨.
- Import Package - Skyboxes
- 하늘에 관한 Assets Package들.
- 각 날씨, 시간마다 하늘의 대한 데이터들이 있음.
- 메인카메라에게 그냥 주면 안들어가짐 - 메인카메라에서 Component - Rendering - Skybox 추가후 적용.
Unity3D Method 설명
- Event 함수는 모두 On으로 시작함.
- Start() : 최초 파일로드시 실행. Init역할.
- Update() : 게임이 실행되는동안 반복적으로 실행되는 함수. Loop됨.
- Update함수는 실시간으로 실행되는 것이 아니라 함수가 끝난후 한꺼번에 실행함.
- OnCollisionEnter(coll : Collision) : Collision 충돌시 자동으로 함수호출. 이벤트함수. 인자값으로 충돌된 오브젝트를 가져옴. - 둘중 한 오브젝트는 Rigidbody가 있어야함.
- audio.Play() : 오브젝트에 들어있는 Audio Clip 소리 실행.
- Time.deltaTime : 현재프레임과 직전프레임간 사이. (사이의 절대적. 물리적인 시간)
- 모든 시간계산관련만 deltaTime을 사용함.
- transform.Translate(Vector3) : transform은 스크립트파일을 가지고 있는 객체. Translate는 객체를 이동하는 함수. (Vector3(x,y,z)는 공간객체. 공간을 표기하기도 하지만, 이동할때 어느 좌표로 이동할 것인지도 정하기도 함.)
- Vector3(x, y, z)를 써야하지만 Unity3D에서는 Vector3.forward, back, left, right, up, down을 이용하여 더 쉽게 사용할 수 있음.
- transform.Translate(Vector3.forward * speed, Space.World) 사용시 Global(World)좌표로 적용됨.
- Input.GetAxis(String keyType) : 키보드 입력값을 받아올때 사용.
- "Vertical", "Horizontal" 등 타입을 넣으면 -1.0 ~ +1.0 값을 리턴해줌.
- "Vertical", "Horizontal" 등 타입을 넣으면 -1.0 ~ +1.0 값을 리턴해줌.
- Time.smoothDeltaTime : 현재프레임과 직전프레임간 사이의 평균적인 시간.
- Object 움직임이 부드러워짐.
- 움직임을 구현할때 smoothDeltaTime을 사용.
- Input.GetKeyDown(KeyCode.key) : KeyCode에 해당하는 키가 눌렸을때 Bool 값으로 반환
- Input.GetButtonDown(String keyType) : Insfector - InputManager에 있는 Type으로 사용가능.
- AudioSource.PlayClipAtPoint(soundObject, position) : 원하는 위치에서 사운드오브젝트 재생
- soundObject : AudioClip 파일을 선택.
- position : 일반적으로 transform.localPosition 으로 현재오브젝트의 현위치를 선택함.
- transform.eulerAngles : Inspector에 있는 Rotation에 있는 x, y, z를 각도로 변환하여 Vector3로 반환 (60분법 각도 읽기)
- Mathf.Clamp(float Angle, maxAng, minAng) : 실수형 반환. 최소값, 최대값으로 제한하여 넘어갈경우, max, min으로 변환하여 반환함.
- Instantiate(prefab, position, rotation) : 객체 생성하여 화면에 보여줌.
- prefab - 원하는 오브젝트를 생성.
- position - 원하는 위치 지정.
- rotation - 생성시 회전각도 지정.
- (Transform object).rigidbody.AddForce(transform.forward * power) : rigidbody적용과 함께 원하는 방향으로 원하는 힘과 함께 적용.
- power : 힘. 질량에 따라 달라짐.
- OnTriggerEnter(Collider coll) : 충돌판정 Event. 충동시 자동 호출됨.
- 두물체중에 어느 하나가 "Is Trigger" 가 체크 되어 있을때 호출됨.
- Destroy(GameObject) : 인자값에 해당하는 GameObject를 삭제시킴. (메모리 해제)
- Destroy(GameObject, 2); : Start함수에 정의시 2초후에 GameObject가 제거됨.
- Tag : Inspector에서 Tag를 지정하여 Object를 관리 및 접근할 수 있음.
- Ex) coll.tag == "WALL" 이렇게 쓰면 BOOL값으로 반환하여 처리할 수 있음.
Unity3D Move 관련
- 기존 이동 관련은 매 프레임마다 이동할 거리를 넣음.
- Unity3D에서는 이동할때에 속도(m/s)를 지정하여 처리함.
- Inspector - InputManager 에서 Gravity와 Sensitivity 수치를 높이면 반응속도가 엄청 빨라짐.
Unity3D 관련사이트 소개
- http://foxmann.blog.me - 유니티3D 강좌
- http://soundbible.com - 데모사운드 다운로드 사이트
- http://afterglow.co.kr - 저녁노을 유니티 강좌 블로그
- http://archive3d.net - 3D모델링 무료 사이트
'NOTE > Unity' 카테고리의 다른 글
[Unity] 고급과정 3일차 필기내용 (펌) (0) | 2016.10.17 |
---|---|
[Unity] 고급과정 2일차 필기내용 (펌) (0) | 2016.10.17 |
[Unity] Mobile Touch (펌) (0) | 2016.10.13 |
[Unity] 짧은 개념 정리2 (0) | 2016.10.07 |
[Unity] Unity Script 정리 (0) | 2016.10.06 |