Game Dev Study Log

by ricale

취미로 하는 게임 개발 공부

강의 38,39강 수강

강의 수강: Unity Turn-Based Strategy Game: Intermediate C# Coding

38. Base Action Class (13:37)

테스트를 위해 SpinAction 을 추가, 유닛이 회전할 수 있는 함수 추가. MoveAction 도 움직이는 방향을 향해 유닛을 회전시키므로 두 액션이 충돌. 따라서 우리는 (어차피 턴베이스 게임이므로) 한번에 한 액션만 할 수 있게 해서 이 충돌을 막는다.

충돌을 막기 전에 코드를 정리한다. BaseAction 이라는 추상 부모 클래스를 만들어서 이 클래스에서 공통 로직을 관리하고 SpinActionMoveAction 이 이 로직을 상속받게 한다.

아직 BaseAction 에 별 코드가 없기 한데, 이후 강의에서 점점 더 많아질 듯.

39. Single Active Action (11:50)

동시에 두 액션이 실행되는 걸 막기 위해 UnitActionSystem 에 플래그를 세우고, 각 액션에는 액션 성공 delegate (= 콜백) 를 전달해서 액션 시작/종료 시에 플래그 값을 변경하도록 한다.

delegate 를 직접 선언할 수도 있지만

    public delegate void SpinCompleteDelegate();
    private SpinCompleteDelegate onSpinComplete;

c# 에서 제공하는 delegate 클래스를 가져다 쓸 수도 있다.

using System;

    private Action onSpinComplete;

onSpinCompleteonActionComplete 라고 이름 바꿔서 BaseAction 클래스에 일반화.