[2025/06/23]TIL

오수호·2025년 6월 23일

TIL

목록 보기
29/60

3D 턴제 RPG게임에서 캐릭터의 원거리/근거리 공격 구분 구현

플레이어의 공격이 턴제 RPG에서 원거리/근거리에 따라 다르게 구현되어야 한다.

예를들어, 근거리 캐릭터는 상대의 캐릭터에 근접하여 공격을 하여야 하고 원거리 캐릭터는 투사체를 상대에게 맞추었을 때 데미지가 들어가야 한다.

어떤 식으로 구현하여야 할까??

1. 직업 별로 클래스 구분 후 메서드를 각각 따로 구현

PlayerUnitController를 상속받은 각각의 직업들의 내부에 있는 Attack()메서드 내부를 동작에 맞게 따로 구현해준다.

장점 : 클래스에 맞는 동작들을 상세하게 기술가능

단점 : 중복되는 코드가 반복해서 나타나서 코드의 재사용성이 떨어짐

2. SO를 통해서 일반공격을 구현

ScriptableObject를 통해서 근접공격과 원거리 공격 혹은 다른 특수한 공격들에 대한 공격을 정의해준다.

장점 : 똑같은 동작에 대해서 재사용가능

단점 : ScriptableObject라는 클래스를 따로 구현하여 만들어 주어야함.

해결방법

스크립터블 오브젝트를 사용하는 방법을 선택했다.
코드의 재사용성적인 측면이나, Attack이라는 동작을 Skill의 형태로 정의하여 사용하면 유지보수 측면에서도 이로울 것 같기 때문이다.

profile
게임개발자 취준생입니다

0개의 댓글