게임 오브젝트
게임오브젝트는 컨테이너
오브젝트에 컴포넌트를 추가함으로써 실제 기능을 하게 된다.
게임오브젝트-스크립트 연관
스크립트는 컴포넌트처럼 나타난다.
스크립트 내에서 선언한 public 변수는 오브젝트의 인스펙터에서 수정 / 연결 가능한 형태로 나타남.
스크립트에서 다른 컴포넌트로 직접 접근 가능(해당 컴포넌트의 이름으로)
this : 작성중인 스크립트의 컴포넌트에 접근
컴포넌트 사용하기
게임 오브젝트가 그릇이면 컴포넌트는 밥, 국, 김치 등에 해당된다.
컴포넌트들을 추가하고 삭제할 때, 인스펙터에서 모든 것을 하게 된다.
서로 조합을 이룰 때 잘 동작하는 컴포넌트들이 있다.
컴포넌트
속성(Properties)
값(Values)
마우스 우클릭으로 빠르게 바꿀 수 있음
참조(Reference)
컴포넌트 / 파일 / 오브젝트 넣을 수 있음
플레이 모드 중에도 속성 변경 가능
플레이 모드가 끝나면 속성은 이전 상태로 되돌아옴
스크립트 컴포넌트
transform.Translate()
gameObject.transform.Translate()
직접 접근 불가능한 컴포넌트인 경우
component name = GetComponent("component name")
프리팹
에셋의 한 종류
프리팹을 장면에 추가한다 : 프리팹 인스턴스를 생성한다(복제물)
프리팹을 변경하면 장면에 추가되어 있는 인스턴스 또한 변경사항이 적용됨
인스턴스 하나만 속성을 변경할 수도 있음
인스턴스와 원본 간의 링크
인스턴스와 원본 간의 링크를 단절시키는 동작
컴포넌트 추가 / 제거
자식 게임오브젝트 추가 / 제거
Apply
원본 업데이트 및 모든 인스턴스에 반영
Revert
반영된 값 무시
Reconnect
원본과의 차이점을 반영하지 않고 끊어진 링크를 재연결만 한다.
에셋(Asset)
재사용 가능한 게임 오브젝트.
프로젝트 뷰에 저장되어 있음.
게임오브젝트로 인스턴스화 될 수 있고, 원본 에셋과 링크도 되어 있음
에셋 자체는 변경할 수 없고, 변경되지도 않는다.
Eidt 버튼으로 에셋을 편집할 수 있는 마야나 맥스를 실행시킬 수 있다.
광원
모든 장면에 있어서 핵심적인 부분
환경의 컬러와 분위기를 결정
다수의 라이트를 사용하는 것은 연습이 필요하나 결과는 확실함
카메라
월드를 갈무리해서 보여주는 장치
속성(Properties)
Clear Flags
스크린 상에서 지워질 부분 결정
Background color
Normalized View Port Rect
스크린 상의 어느 위치에 카메라 뷰가 그려질지 결정
스크린 좌표계 상에서 0-1 사이의 값
ex) 자동차의 미러
X
Y
Width
Height
Near clip plane
Far clip plane
Field of view
뷰 앵글의 y축 각도
값을 높임으로써 속도감을 높일 수 있음
Orthographic
원근감 제거
2D 게임 / 3D User Interface 등에 쓰임
Orthographic size
Depth
카메라끼리의 그려지는 순서. 높을 수록 우선순위를 지님.
Culling Mask
레이어에 포함된 레이어만 보여줌
보통 UI 레이어를 따로 만들어서 UI를 보여주는 Camera를 지정한다
Render Target(Render Texture)
Pro 라이선스에서만 가능
카메라의 뷰를 텍스쳐위에 띄운다.
거울 반사, 경기장 모니터 등에 쓰임
카메라 스크립트
Components -> Camera Control
파티클 시스템
3D 공간에 뿌려지는 2D 이미지
연기, 불, 물방울, 나뭇잎 등 효과
컴포넌트
Particle Emiiter
파티클을 만들어냄
Ellipsoid(타원) Particle Emitter
구 내부에서 파티클 생성
Mesh Particle Emitter
메쉬 주변에 파티클 발생
Particle Animator
파티클을 시간에 따라 움직임
Particle Renderer
파티클을 화면에 그림
Particle Collider
장면 내에 있는 다른 Collider에 파티클을 충돌시킬 때 사용
1~2개의 텍스쳐를 여러 번 그려 효과를 만들어 내는 형태를 이용
많은 메모리를 소요하므로 최대한 적게 쓰도록 노력해야 함
지형