카드 게임을 만들고 있는데 이벤트 처리를 어떻게 하면 깔끔하게 작성할 수 있을지 궁금합니다.
카드를 선택 > 사용 가능한 필드 선택 > 해당 카드를 필드에 소환
예시로 마스터 듀얼(유희왕) 게임인데 이렇게 카드를 선택하고
이렇게 낼 수 있는 필드가 선택되고, 이 필드를 선택하면 카드가 내지는 걸 구현하고 싶습니다
그래서 PlacementTest / GridSystem / GridCell 이라는 클래스를 작성했습니다.
그리고 아래 순서대로
1. PlacementTest에서 Action Invoke
2. GridSystem에서 이를 받고 GridCell에게 이벤트를 생성
3. GridCell이 클릭되면 GridSystem으로 callback
4. 이를 다시 PlacementTest로 callback 후 카드 소환
와 같이 생각하고 있는데 이렇게 진행해도 괜찮을까요?
여러분이라면 어떻게 코드 작성하실지 궁금해서 글 올려봅니다.
그럭케 하십쇼..
나였으면 대충 1. 카드를 객체로 생성, OnCardSelected(Card card) 이벤트 만들어두고 2. 핸드 드로우 시점에, OnCardSelected에 DisplayPlayableGrid(Card card) 이런식으로 카드를 낼 수 있는 공간을 표시하는 함수를 등록, 해당 델리게이트를 이용하여 카드 플레이 관리자에서 플레이할 카드를 담는 필드 갱신. 3. 그리드 선택 시, PlayCard(Card card)를 통해 해당 카드 객체의 효과 발동 및 핸드에서 빼내기 이런식으로 짤듯?