먼저 Asset Store 에서 탱크 3D 모델을 다운받아줍니다.
Asset Store 오른쪽 메뉴 > 3D 모델 > 탈것 > 지상
정렬 > 가격
Panzerkampfwagen II Ausf. F 이란 탱크 모델이 있습니다.
저는 이것을 사용해 보도록 하겠습니다.
다운로드 받으시면
이러한 창이 뜹니다. Import 시켜주세요!
이렇게 프로젝트에 추가됩니다.
Panze_II_Ausf_F > Prefabs > Panzer_II_Ausf_F 를 Hierarchy(계층 리스트) 에 드래그하면 탱크가 추가됩니다.
이제 탱크를 추가하였으니 포의 움직임을 적용하여 봅시다.
포구 (2cm_kwk38) 을
마운트 (weapon_mount) 에 드래그 하여 종속시켜줍니다.
종속시킨후 바로 회전을 시켜보면 저런식으로 탱크와 따로놀게 됩니다.
그래서 빈 껍데기를 하나 만들어서 껍데기에 종속시켜 주어야 합니다.
Hierarchy > Create > Create Empty 를 하나 만들어줍니다.
저 위치에 위치시켜주시고 포구와 마운트를 새 오브젝트에 종속시켜주세요.
그러면 이제 자연스럽게 움직이게 됩니다.
새로 만들었던 빈 껍데기를 터렛(turret) 에 종속시켜주시면 저렇게 따로 자연스럽게 움직여지게 됩니다.
이제 움직이는 소스를 작성하여 봅시다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | public float MoveSpeed = 10f; public Transform Turret; public Transform po; void Update () { float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); transform.Translate(new Vector3(0, 0, v) * MoveSpeed * Time.deltaTime); transform.Rotate(new Vector3(0, h, 0)); // 탱크 전체의 움직임 float y = 0f; if (Input.GetKey(KeyCode.Q)) y = -2; if (Input.GetKey(KeyCode.E)) y = 2; Turret.transform.Rotate(new Vector3(0, y, 0)); // 탱크 터렛의 움직임 float x = 0f; if (Input.GetKey(KeyCode.R)) x = -1; if (Input.GetKey(KeyCode.T)) x = 1; po.transform.Rotate(new Vector3(x, 0, 0)); // 탱크 포구의 움직임 } |
소스 작성 후 탱크에 터렛과 새로 만든 빈 오브젝트를 드래그해서 추가해줍니다.
잘 적용된 영상입니다.
'프로그래밍 > Unity3D' 카테고리의 다른 글
포(총알) 발사하기 (0) | 2016.06.20 |
---|---|
Rigid Body (0) | 2016.06.20 |
간단한 움직임 표현하기 (0) | 2016.06.15 |
apk 마켓에 등록하기 (0) | 2016.06.15 |
개발자 등록하기 (0) | 2016.06.15 |
트랙백 , 댓글 가 달렸습니다.