티스토리 뷰

반응형



안녕하세요. 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;
    }
}

- 이 코드를 작성하시면 밑에와 같이, W,A,S,D 키로 이동이 가능합니다.

- 그런데 이동이 좀 이상하게 되죠? 회전축 때문에, 이동이 좀 이상하게 되는데요. 다음 7장에서, Material을 추가해서 오브젝트의 색깔을 추가하면서, 같이 수정을 해보도록 하겠습니다.


지금까지 Base Of Coding이였습니다. 7장에서 Material과 함께 현재 코드를 같이 수정해보도록 하겠습니다.


감사합니다.


- 이 글에 도움이 되셨다면, 공감(♡) 버튼과 댓글 부탁드리겠습니다. - 




반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
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
글 보관함