본문 바로가기
게임 튜토리얼/테트리스(완)

c# Unity 유니티 튜토리얼 테트리스 만들기 04. 블럭 보드 생성 및 블럭

by 지나팩 2023. 9. 21.

테트로미노 블럭의 현재 위치에 따른 보드 상에서의 위치를 추가해보도록 합시다.

20x10의 보드 판위를 블럭이 이동하며 배치가 됩니다.

블럭이 이동 시 보드를 체크하여 다른 블럭이 이미 있다면 해당 위치에 블럭이 고정되고 보드에 해당 위치에 블럭이 있는 상태로 변경해줍니다.

1. TetrominoMoveComponent 스크립트를 열어 블럭이 보드 상 어디에 위치하는지 알 수 있도록 Vecto2 변수를 추가합니다.

2. 좌우 이동 시 pos.x 아래로 이동 시 pos.y의 값을 변경합니다.

 

 

3. 유니티 에디터에서 임시로 블럭의 초기 위치와 보드상에서의 위치를 입력합니다.

4. ㅜ 의 경우 네 개의 블럭이 하나로 이루어져있습니다. 현재의 블럭은 한개의 포지션만을 가지고 있는데 블럭 갯수만큼 실제 오브젝트를 구성해서 각 위치에 맞게끔 수정하여 추가를 해줍니다.

 

 

https://play.google.com/store/apps/details?id=com.goldenegg

 

골든 에그 - Google Play 앱

수박 게임류의 머지 게임입니다.

play.google.com

 

 

5. TetrominoMoveComponent에 자식 오브젝트로 추가한 Block들을 담아둘 배열을 작성하고, 그 배열의 블럭 위치들을 담아둘 리스트 역시 작성합니다.

 

6. 에디터로 넘어와서 각 블럭들을 배열에 연결해줍시다. 다른 블럭들도 똑같이 작업을 해줍니다.

 

그 후 아래 코드도 작성합니다.

 

 

7. 보드 오브젝트를 생성하고 BoardComponent 스크립트를 추가합니다.

 

9. 그리드 좌표에 블럭이 놓여있는지 아닌지 판단할 보드 배열을 추가합니다.

 

10. 좌우측 이동이 가능한지 아닌지 판단할 보드 체크함수를 작성합니다. 

 

 

11.아래쪽 이동이 가능한지 아닌지 판단할 보드 체크함수를 작성합니다.

 

12. TetrominoMoveComponent에 배열에 담아둔 각 블럭들의 위치를 보드상의 위치와 맞도록 보정치를 입력합니다. 그  좌우측과 아래측 이동 함수에 BoardComponent에 작성한 함수를 호출하여 이동가능한지 판단 후에 이동하도록 수정합니다. 

 

 

13. 좌우 이동과 하단 이동 테스트 합니다.

다음 튜토리얼에서 계속...

댓글