Unity Web Player. Install now! Restart your browser after install. <created with Unity>

Unity 5로 '따라하면서 배우는 유니티 3D 입문' 4장 액션 퍼즐 게임 따라하기.

가장 위에 있는 녹색 박스를 부서뜨리지 않고 안전하게 바닥까지 옮기는 게임.
* 빨간 박스는 클릭하면 사라진다.
* 파란 박스는 클릭하면 90도 회전하고 사라진다.
* 녹색 박스는 한 칸 이상의 높이에서 떨어져 충격을 받으면 부서진다.
* 게임 중 화면을 마우스로 클릭하고 드래그 하면 화면의 각도를 바꿀 수 있다.

15/11/3 화

* 큐브로 바닥, 빨강,파랑,녹색 박스 만들기.
바닥에 Physic Material 만들어 적용하고 Bounciness 1로 변경.

* 스크립트로 빨간 박스는 클릭시 제거, 파란 박스는 클릭시 90도 회전뒤 제거, 녹색 박스는 충돌시 속도가 경도를 넘어서면 파티클 폭파 효과 붙이고 제거하게 처리. 폭파 파티클은 Duration: 1, Looping: 체크 해제, Start Lifetime: 1, Start Speed: 10, Start Size: 0.5, Gravity Multiplier: 2, Emission-Rate: 8 적용. Renderer-RenderMode: Mesh-Cube, material: BlockGreenMat을 적용.

* 빈 게임오브젝트 만들고 DropZone이라 이름 붙인 뒤 위치를 y:-5로 하고 Component-Physics-Box Collider 적용, Size를 x:50, y:1, z:50로 설정.
DropZone에 녹색 박스 닿을시 실패 처리.

* '실패', '성공' 글자 png 불러들이고 TextureType: Editor GUI and Legacy GUI로 변경, 빈 게임오브젝트 만든 뒤 GuiClear, GuiFailed로 이름 짓고 Component-Rendering-GUITexture 적용한 뒤 GUITexture-Texture에 각각 png 파일들 연결.

* Floor에서 레이어를 클릭, 8번째에 Floor란 새 레이어 추가하고 Floor 적용.
* 녹색 박스 스크립트 추가-속도 체크하여 정지했는지 여부Physics.Raycast로 Floor 위에 정지했는지 여부 판단하여 게임의 성공여부 판단, 게임 메인루프의 성공 함수 호출.
if (Physics.Raycast(transform.position, -Vector3.up, collider.bounds.extents.y, layerMaskFloor)){
부분에 에러가 발생, 헤메다.
if (Physics.Raycast(transform.position, -Vector3.up, GetComponent<Collider>().bounds.extents.y, layerMaskFloor)){
로 바꿔주자 해결.

* Physics.Raycast(Vector3 빛의 발사위치, Vector3 빛의 방향, float 빛의 길이, int 빛이 닿은 레이어의 비트 마스크): 빛을 발사하여 해당 레이어와 충돌하면 true, 아니면 false를 리턴한다.
- 레이어를 1 << 8로 계산, 변환하여 int로 저장하는 것이 특이했다. 8번째 레이어의 경우 쉬프트 연산을 하면 100,000,000가 된다. 2번째 레이어일 경우 100, 5번째 레이어일 경우 100,000.

* 빈 게임오브젝트 만들고 CameraPivot으로 이름짓기. Main Camera를 CameraPivot의 자식으로 설정. 메인카메라의 Position을 X:0, Y:2, Z:-9로 설정.
화면을 마우스로 클릭하고 드래그 하는 것에 따라 카메라 각도 변경하기, x축 회전의 경우 0~50도 사이에서만 회전하게 제한.