* 큐브로 바닥, 빨강,파랑,녹색 박스 만들기.
바닥에 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도 사이에서만 회전하게 제한.
|