C# 유니티 공부 29 - 2D Undead Suvivor 예제 진행. (Static 변수 설정, 무한맵 이동)
(골드메탈님 유투브 참고)
* 플레이어 이동.
* 무한맵 구현.
1) Static 정적 변수
- GameManager에서 static(정적) 변수 선언.
Awake에서 메모리를 한 번 할당해주면, 그 메모리를 다시 할당하지 않고도 어디서든 사용 가능.
- GameManger에서 Player 스크립트을 선언하고, instance로 선언한 stacti 변수의 메모리를 할당하여 사용.
2) 무한맵 구현
- GroundMovement 스크립트 작성.
- 4개의 타일맵을 그려주고, 플레이어가 이동함에 따라 타일맵이 이동하는 형태로 무한맵 구현.
- 플레이어에 empty 자식 오브젝트를 생성하여, Box Collider를 만들어줌.
해당 Collider와 Tilemap의 Coliider와 반응하여 OnTriggerExit2D 실행. (IsTrigger 체크.)
- 플레이어와 각 타일맵의 x,y 각 좌표의 차이를 절대값 변수로 생성.
x축의 차이가 크다면 수평(x축방향)으로 타일맵이 이동하고, y축의 차이가 크다면 수직(y축방향)으로 이동하게 됨.
- Static 변수로 선언한 GameManager.instance를 통하여 player의 이동 Vector3 데이터를 가져옴.
player 이동방향에 따라 Tile맵이 왼쪽(-), 오른쪽(+), 아래쪽(-), 위쪽(+)로 이동할지 확인시켜주는데에 필요함.
- Switch 문을 통하여, 해당 스크립트가 삽입되어 있는 transform의 태그가 Ground라면 로직 실행.
(추후 적 이동에서도 해당 로직을 사용해야 하는데.. 스크립트 이름을 잘못 지음....)