Ability

ScriptableObject 를 상속받은 오브젝트. IAbilitySpec을 생성하고 데이터를 저장함.

IAbilitySpec

AbilitySystemComponent에 저장되는 interface.

AbilitySystem

IAbilitySpec을 저장하는 Component. List<IAbilitySpec> 을 foreach 등으로 확인하여 Ability를 작동 시킴.

AbilitySystem에 Ability의 부여를 요청하면 부여 가능 여부를 확인하고 가능하면 부여함.

IAbilitySpec은 Interface 로 확장이 용이함. 현재 class, MonoBehavior, VisualScripting 으로 사용할 수 있고, 원하는 바에따라 IAbilitySpec을 상속받는 것으로 확장할 수 있음.

Ability가 부여 또는 제거가 되면 이벤트가 발생하고, IAbilitySpec이 활성화되면 이벤트가 발생됨.

Ability의 사용은 IAbilitySpec를 캐싱해놓고 사용하거나, Ability 를 캐싱하여 사용할 수 있음. 사용시 조건을 확인하고 조건이 만족하면 IAbilitySpec을 작동시킴. 이 때, 작동 상황에 따라 각종 이벤트가 발생함. 작동되는 타이밍은 아래와 같음.

◀ 이전 페이지 돌아가기