티스토리 뷰

반응형

< 이 내용은 PC버전에 최적화 되어 있습니다. >




안녕하세요. Base Of Coding입니다.


이번에 배워 볼 7장 내용. Material을 생성하고, 그 생성한 머터리얼을 가지고, 색을 변경해보고, 6장에서 이상하게 되어있는 이동하는 법을 수정하도록 하겠습니다.


지금까지 배워 본 내용들 모음입니다.



그럼 시작해보도록 하겠습니다.




1 ) Material 생성하기

- 일단 머터리얼을 생성하기에 앞서, 폴더를 만들어, 하나하나 정리를 해보도록 하겠습니다.


Scenes라는 폴더와 Scripts, Materials 폴더를 생성했습니다. 폴더 복사는 Ctrl + D 키를 누르시면 됩니다.


이제 본격적으로 머터리얼을 생성하도록 하겠습니다.


Materials 폴더를 더블 클릭해주시구요. 폴더에서 오른쪽 클릭 후 -> Create -> Material을 클릭합니다. 



저는 Test라는 이름의 Material을 생성하겠습니다.


2 ) Material 생성 후, 색 변경 하고, 큐브에 Material 지정.

- Test를 클릭 한 뒤, Inspector 창을 보시게 되면, Albedo라는 것이 있습니다. 저는 빨간색으로 변경하겠습니다. 원하시는 색상으로 변경하시면 됩니다.



< 빨간색으로 변경 된 Albedo의 값입니다. >


그리고, 해당 머터리얼을, 큐브에 집어넣어보도록 하겠습니다.



- Test 머터리얼을, 드래그 앤 드롭해서, 큐브에 가져가면 Albedo 값으로 변경이 되는 것을 보실 수 있습니다.


머터리얼의 상세한 정보는 나중에 더 알아보도록 하겠습니다.


3 ) 이동 및 회전 스크립트 수정.

- 일단 빈 게임 오브젝트를 하나 만들어서, 그 자식 오브젝트로 큐브를 지정하도록 하겠습니다.



- 위와 같은 방법으로 빈 게임 오브젝트를 만들어주시고, Cube를 밑에 놓게 만들어주시구요. 주의하실 점은!! 빈 게임 오브젝트의 Inspector 창에서, position값이 0,0,0이여야 합니다.


그리고, 코드를 이렇게 수정해주세요.


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
37
38
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class CubeMovePos : MonoBehaviour 
{
    public GameObject moveObject;            // 이거 추가.
 
    private Quaternion rotateVector;
    private float plusRotate = 0.5f , speed = 5f;
 
    private void FixedUpdate()
    {
        if (Input.GetKey(KeyCode.A))
        {
            moveObject.transform.Translate(Vector3.left * Time.deltaTime * speed);        // 여기 수정
        }
        if (Input.GetKey(KeyCode.D))
        {
            moveObject.transform.Translate(Vector3.right * Time.deltaTime * speed);        // 여기 수정
        }
        if (Input.GetKey(KeyCode.W))
        {
            moveObject.transform.Translate(Vector3.up * Time.deltaTime * speed);        // 여기 수정
        }
        if (Input.GetKey(KeyCode.S))
        {
            moveObject.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;
    }
}


- public과 private의 차이점을 모르시는 분이 계시다면, 일단 이렇게 하는 거구나 하고 넘어가시길 바랍니다. 10장쯤에 하나하나씩 천천히 알아가보도록 하겠습니다.


이렇게 코드를 수정해주신 다음,


cube에 붙어있는 CubeMovePos 스크립트에 빈 게임 오브젝트를 드래그 앤 드롭해주셔야 합니다.



- Cube를 클릭하신 상태에서, Move Object라는 빈 칸에, 빈 게임 오브젝트를 드래그 앤 드롭해서, 넣어주시고 실행을 한번 해보도록 하겠습니다.



- 아주 잘 작동이 되네요. 원래는 회전하는 값 덕분에, 이동하는 것이 분리되지 않고, 회전하는 쪽으로 이동이 되었지만, 지금은 빈 오브젝트를 이동하는 것과, 큐브는 그냥 돌아가게 하는 것으로 분리를 시켜서, 잘 작동이 되게끔 만들어주는 방식으로 만들어 보았습니다.


이렇게, 머터리얼 생성 및 사용 그리고, 이동 코드를 수정해서 잘 되도록 만들어봤습니다.


일단 쉬운 것부터 차근차근 하나하나씩 올린 뒤 난이도를 조금씩 올려보도록 하겠습니다ㅎㅎ


지금까지 Base Of Coding이였습니다. 다음엔 어떤 강의를 올려야 할 지 한번 고민을 하고 올려봐야겠네요ㅎㅎㅎ


다음에 뵙겠습니다! 감사합니다.


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




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