6. 유니티 3D 큐브를 생성하고 이동 및 회전해보기
안녕하세요. Base Of Coding입니다.
이번엔, 큐브를 생성하고, 회전하는 큐브를 만들고, 키보드를 이용해서 그 큐브를 움직여도 보도록 하겠습니다.
지금까지 작성된 이전 글들 모음입니다.
아 그리고, Scene View나, Game View에 대해서는 알아봤는데, Hierarchy나 Project, Inspector창은 천천히 하나하나씩 알아보도록 하겠습니다.
1 ) 프로젝트 생성
- 저는 그냥 Unity_Cube_Pos 라는 이름의 Project를 생성 하겠습니다. 꼭 저 이름으로 하진 않으셔도 되기 때문에, 편하신대로 프로젝트를 생성하시면 됩니다.
2 ) 큐브 생성 및 스크립트 생성
- 큐브를 생성한 뒤, Add Component 라는 것을 클릭한 뒤, 빈 칸에 CubeMovePos 라는 이름으로 스크립트를 만들어서 사용하도록 하겠습니다.
3 ) 큐브를 회전 시키는 코드 작성하고, 플레이해보기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMovePos : MonoBehaviour { private Quaternion rotateVector; private float plusRotate = 0.5f; private void Update() { rotateVector = Quaternion.Euler(new Vector3(plusRotate, plusRotate, plusRotate)); gameObject.GetComponent<Transform>().localRotation = rotateVector; plusRotate += 0.5f; } } |
일단 기본적으로 간단하게 코드를 이렇게 짰습니다. 실행 결과는 밑에 사진과 같아야 합니다.
이렇게 x,y,z축으로 같은 값으로 돌게 된다면 지금까지 작성해오신 글을 잘 따라오신겁니다. 이렇게 안되시거나, 오류가 나오신다면, 다시 한번 천천히 글을 보시면서 틀린점은 없는 지를 확인해보시면 좋을 것 같습니다.
아 또한, position값이 0,0,0인지를 잘 확인해주세요.
3 ) 이동 코드 추가
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 31 32 33 34 35 36 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMovePos : MonoBehaviour { private Quaternion rotateVector; private float plusRotate = 0.5f , speed = 5f; private void FixedUpdate() { if (Input.GetKey(KeyCode.A)) { transform.Translate(Vector3.left * Time.deltaTime * speed); } if (Input.GetKey(KeyCode.D)) { transform.Translate(Vector3.right * Time.deltaTime * speed); } if (Input.GetKey(KeyCode.W)) { transform.Translate(Vector3.up * Time.deltaTime * speed); } if (Input.GetKey(KeyCode.S)) { transform.Translate(Vector3.down * Time.deltaTime * speed); } } private void Update() { rotateVector = Quaternion.Euler(new Vector3(plusRotate, plusRotate, plusRotate)); gameObject.GetComponent<Transform>().localRotation = rotateVector; plusRotate += 0.5f; } } |
- 그런데 이동이 좀 이상하게 되죠? 회전축 때문에, 이동이 좀 이상하게 되는데요. 다음 7장에서, Material을 추가해서 오브젝트의 색깔을 추가하면서, 같이 수정을 해보도록 하겠습니다.
지금까지 Base Of Coding이였습니다. 7장에서 Material과 함께 현재 코드를 같이 수정해보도록 하겠습니다.
감사합니다.