티스토리 뷰

목차

1. 큐브가 없으니 큐브를 먼저 만들자

  1.1 Unity로 1x1 큐브 만들기

    1.1.1 Cube에 Color 입히기

  1.2 Rotation 구현

  1.3 2x2 큐브로 확장

  1.4 Random Shuffle 구현

  1.5 3x3 큐브로 확장

 

2. 큐브가 있으니 강화학습으로 맞춰보자

 

-------------------------------------------------------------------

Rotation 구현하기

 

이번 포스팅에서는 Cube의 Rotation을 구현해보겠습니다.

 

이전 포스팅에서 우리는 하나의 Cube를 만들고 색을 입혀봤습니다.

이전 포스팅 결과 - 아름다운 큐브!

1.2.1 Resources 폴더를 활용한 GameObject 생성

 

Rotation을 구현하기 전에 이전에는 GameObject를 Instantiate로 생성할 때, 미리 만들어 놓은 Prefab Cube를 유니티에서 Drag & Drop으로 설정해준 뒤 생성했었죠! 그걸 이제 코드로 불러올 수 있도록 해보겠습니다!! (자동 쵝오!)

그전에 해야할건 Asset 폴더에 Resources 폴더를 만들어줘야합니다. 반드시 이름이 Resources이어야 합니다. 그래야 유니티에서 자동으로 인식을 하거든요(대소문자 상관없음).

Resources 폴더 안에 Object 폴더를 옮긴 모습

그 뒤에 코드를 수정해줍시다! Resources.Load<GameObject>(경로) 를 사용해주시면 쉽게 Prefab들을 불러올 수 있습니다. 이전에 Public으로 선언해줬던 Cube들을 CubeInit 함수안에 넣고 Resoruces 폴더에서 Load해줍니다.

Resources 폴더를 활용한 CubeInit

이 코드로 실행해보면 이전과 똑같이 결과가 나오는 것을 확인할 수 있습니다.

 

1.2.2 Direction 설정

이제 드디어 본론으로 들어가서 Cube를 돌려봅시다! Cube는 총 4방향으로 Rotation 할 수 있습니다. 오른쪽 왼쪽 위 아래 다들 아시죠??..... 무시한건 아니에요 ㅎ

그렇다면 키보드 입력으로 방향을 설정해주고 그 방향으로 90도 Rotation 하게 코드를 짜주면 간단하게 해결될 것 같습니다! 먼저 Keyboard 입력에 따라서 방향을 Print 해주고 rotationAxis를 설정해주는 Code를 입력합니다.

키보드 입력에 따른 Direction 프린트 및 Axis 설정

그 뒤에 실행해서 키보드 화살표를 눌러보면 Print가 잘 되는 것을 확인할 수 있습니다!

키보드 입력에 따른 값 Print

1.2.2 Rotation 설정

자 이제 방향 설정을 해줬으니 진짜진짜 Rotation을 구현해주면 될 것 같습니다!  Rotation 함수는 아래와 같이 구현할 수 있습니다. 처음 Cube를 만들때 하나로 묶어주는 과정이 있었기 때문에 GetChild 함수를 통해 모든 Cube들에 접근이 가능합니다.

Rotation 함수

우리는 Cube를 키보드가 입력됐을 때, 90도 만큼 돌려야 합니다. 그러면 이 Rotation 함수를 어떻게 사용해야 90도를 돌릴 수 있을까요? 아래 코드처럼 angle 값을 주어서 angle이 90 / speed 가 됐을 때까지 돌려줍니다!

angle 값을 활용한 Rotation 제어

1.2.3 전체 Code

전체코드 스크린샷을 올려드릴테니 그주석을 보고 이해하신 뒤 그대로 따라서 해보시면 더 편할 것 같습니다.

전체 Code

이 코드를 제대로 작성하셨다면 키보드 화살표가 입력될 때 마다 90도씩 Rotation 하는 Cube를 볼 수 있게 됩니다! 축하합니다~!!!

OnebyOneRubiksPuzzle - SampleScene - PC, Mac &amp; Linux Standalone - Unity 2019.3.6f1 Personal _DX11_ 2020-06-19 00-55-37.mp4
3.84MB

 

다음시간에는 1x1 Cube를 2x2로 확장시켜보도록 하겠습니다.

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