📝 24.03.20
'delegate', 'event', 'action', 'func' 간의 차이를 설명해주세요.
delegate, action, func, event 모두 메소드에 대한 참조 변수를 만들기 위해 존재하는 대리자입니다. 이 중 delegate가 가장 기본적인 형태입니다. action과 func은 C#에서 미리 정의된 delegate 유형들로, action은 그 중 매개변수를 받지 않고 값도 반환하지 않는 메서드를 나타냅니다. 그리고 func은 action과 달리 값을 반환하는 메서드를 나타냅니다. 그리고 event는 델리게이트와 거의 유사하지만 delegate와 달리 interface 내부에서 선언할 수 있고, delegate는 interface 내부에서 선언할 수 없습니다.
프로젝트에 적용해 본 경험이 있다면 설명해주세요.
답변 : 유니티 프로젝트에서 action을 많이 사용하였습니다. 그 중 한 예시로 TimeKeeper라는 프로젝트에서 스테이지를 클리어하였을 때의 action을 만들어 스테이지 클리어 보상을 받고 게임 진행이 멈추는 메소드를 구독하여 사용한 경험이 있습니다.
스킬 구현을 플레이어 하위 오브젝트의 애니메이션으로 구성했었다.
하지만 이 경우 캐릭터가 이동하면 스킬도 따라 이동한다는 문제점이 생긴다. 따라서 외부의 Skill 오브젝트를 생성시켜 공격을 주는 방향으로 수정해야하는데 구상이 잘 안되어 여러 자료 조사만 하다 시간이 지났다. 내일부터 본격적으로 구현에 착수해봐야 할 것 같다.