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

c# Unity 유니티 튜토리얼 테트리스 만들기 05. 블럭 회전 제한 및 블럭 스폰

by 지나팩 2023. 9. 22.

블럭이 회전시 왼쪽 위를 기준으로 회전하므로 블럭이 왼쪽 끝에 위치해 있을 경우는 상관이 없지만 오른쪽 끝일 경우 회전시 블럭이 보드 영역 밖으로 나가게 되는 상황이 발생합니다. 더불어 회전시 해당 위치에 다른 블럭이 있다면 회전이 되면 안되기에 회전 시 보드를 체크하여 회전이 가능한지 판단하여 가능하다면 회전을 하도록 합니다. 

1. TetrominoMoveComponent 스크립트에 아래 코드를 작성합니다.

 

 

더불어 각 블럭의 rcp를 에디터에서 입력합니다. 만약 아래 이미지 처럼 블럭이 회전되기전에 블럭이 회전시 놓이게 될 위치를 rcp 배열들에 입력해둡니다.

 

 

분홍색 블럭의 각도에 따른 rcp 위치들. 다른 블럭들도 입력해줍니다. 차례대로 0도 90도 180도 270도

 

2. BoardComponent에 아래 스크립트를 추가합니다. 회전이 가능한지 판단하여 가능하면 true 불가능하면 false를 리턴합니다.

 

 

3. TetrominoMoveComponent의 회전 함수를 수정합니다.

 

 

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

 

골든 에그 - Google Play 앱

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

play.google.com

 

 

4.  BlockSpawner 오브젝트를 생성하고 BlockSpawnComponent를 추가합니다. 블럭의 스폰 위치 오브젝트 역시 생성합니다.

5. TetrominoMoveComponent에 초기 위치에 따른 블럭의 보드 상의 위치를 초기화 할 수 있는 함수를 하나 만듭니다.

6. BlockSpawnComponent에 코드를 작성합니다.

 

 

6. TetrominoMoveComponent에서 블럭이 좌표에 고정되면 새로운 블럭을 생성하는 함수를 호출합니다.

7. 유니티 에디터에서 스폰 컴포넌트의 배열에 프리팹 파일을 연결합니다.

8. 스폰이 잘 되는지 테스트합니다.

다음 튜토리얼에서...

댓글