강의 35,36,37강 수강
강의 수강: Unity Turn-Based Strategy Game: Intermediate C# Coding
35. Move Action (05:01~, 12:27)
어제 해결 못한 에러를 간신히 해결. GridDebugObject 가 prefab 이외에도 객체로 씬에 존재하고 있어서 생긴 문제였는데, 정확한 이유는 모르겠다. 여튼 해당 객체를 삭제해서 에러 해결.
이동과 관련된 구현을 별도의 스크립트로 나누고, 해당 스크립트에서 이동 가능한 GridPosition 을 값 검증 없이 디버깅 로그로 찍어보는 것까지 진행.
값 검증을 해서 유효한 GridPosition 을 뽑아서 실제로 GridPosition 으로 이동시키는 건 다음 강의에서 할 듯.
36. Move Action Validate (10:49)
유효한 GridPosition 을 찾아내는 코드를 작성. 유효한 GridPosition 이라 함은
GridSystem안에 위치하는지- 지정된 범위 안에 위치하는지
- 현재 해당
Unit이 머무르는 위치는 아닌 것인지 - 다른
Unit이 머무르는 위치는 아닌 것인지.
를 체크하는 것.
LevelGrid, GridSystem, GridObject, GridPosition, Unit, UnitActionSystem, MoveAction 각 클래스의 역할과, 클래스를 분리하고 메서드를 만드는 컨벤션에 익숙해질 필요가 있어보인다.
37. Grid Visual (15:05)
Unit 의 이동 가능한 GridPosition 을 강조하는 UI 구현. 필요한 GridPosition 마다 동적으로 생성하는 게 가장 효율적이지만, 해당 구현은 다소 복잡하기 때문에 (성능 개선은 나중에 하기로 하고) 당장은 쉬운 방법으로 구현.
GridSystemVisualSingle이라는 빈 객체 생성.- 해당 객체에
Quad객체 생성- Mesh COllider 컴포넌트는 삭제
- 텍스쳐를 강의 페이지에서 다운받아서 프로젝트에 추가하고
- Material 을 새로 만들어서
- 해당 Material 의 Subface Inputs - Base Map 으로 텍스쳐 지정
- Surface Options - Surface Type 을 Transparent 로
- 해당 Material 을 아까 만든
Quad의 Mesh Renderer - Materials - Element 0 에 지정 - 모양(회전,크기)은
Quad객체에서 관리. 위치는GridSystemVisualSingle에서 관리 - 해당 객체를 Prefabs 폴더에 드래그앤드랍 해서 Prefab 으로 만들자.
- 해당 객체에
GridSystemVisual 이 현재 보여줘야할 grid UI 를 선택하고, 각 GridSystemVisualSingle 을 Show/Hide 한다.
이번 강의에서는 단순히 UnitActionSystem 의 selectedUnit 기준으로 움직일 수 있는 칸을 표시하게끔 했지만 이후 강의에서는 좀 더 많은 조건에 대응 가능하도록 한다.