IAbilitySpec을 관리하는 Component.
Ability로 IAbilitySpec을 생성하여 관리함.
IAbilitySpec은 List<T> 형태로 저정함. Ability를 사용할 때는 IAbilitySpec에서 일치하는 Ability를 Foreach를 통해 확인하여 사용됨.
Ability가 추가되거나 제거될 때, 어떤 어빌리티든 발동하거나 발동이 끝났을때 이벤트가 발생함.
Update, Fixed Update 마다 Abilities 를 foreach로 Update를 실행시킴. 이부분은 사용하기에 따라서 제거하고 코루틴 등으로 대체할 수 있음. 그 경우 Abilities의 형태를 Dictionary<Ability, IAbilitySpec> 으로 바꾸는 것도 괜찮을 수 있음.
Name | Value | Summary |
---|---|---|
Abilities | IReadOnlyList<IAbilitySpec> | 현재 부여되어 있는 IAbilitySpec List. |
Name | Value | Summary |
---|---|---|
Setup() | void | AbilitySystem의 초기 설정을 실시함. 이미 설정되어 있으면 무시함. |
ResetAbilitySystem ( ) | void | AbilitySystem 을 리셋시킴. |
TryGetAbilitySpec ( Ability, out IAbilitySpec) | bool | Ability로 IAbilitySpec을 가져옴. 없으면 return false; |
TryGetAbilitySpec ( Type, out IAbilitySpec) | bool | Type으로 IAbilitySpec을 가져옴. 없으면 return false; |
GetAbilitySpec ( Ability) | IAbilitySpec | Ability로 IAbilitySpec을 가져옴. |
GetAbilitySpec ( Type ) | IAbilitySpec | Type으로 IAbilitySpec을 가져옴 |
HasAbility ( Ability) | bool | Ability로 IAbilitySpec 보유 여부를 확인함. |
HasAbility ( Type ) | bool | Type으로 IAbilitySpec 보유 여부를 확인함. |
CanActivateAbility ( Ability) | bool | Ability 로 IAbilitySpec 활성화 가능 여부를 확인함. |
CanActivateAbility ( Type ) | bool | Type으로 IAbilitySpec 활성화 가능 여부를 확인함. |
IsPlayingAbility ( Ability) | bool | Ability 로 IAbilitySpec 활성화 상태를 확인함. |
IsPlayingAbility ( Type ) | bool | Type으로 IAbilitySpec 활성화 상태를 확인함. |
TryActivateAbility ( Ability) | bool | Ability 로 IAbilitySpec 활성화를 시도함. 활성화 성공 여부를 return. |
TryActivateAbilityAsInputBuffer ( Ability) | void | Ability 로 IAbilitySpec 찾아서 AbilityInputBuffer로 활성화를 시도함. |
ForceActivateAbility ( Ability) | void | Ability 로 IAbilitySpec을 강제로 활성화함. |
OnReleasedAbility ( Ability) | void | Ability 로 IAbilitySpec를 Release함. |
CancelAllAbility ( ) | void | 모든 활성화된 IAbilitySpec를 취소함. |
TryGrantAbility ( Ability, int ) | bool | Ability의 IAbilitySpec을 int Level로 부여를 시도함. 성공여부를 return. |
CanGrantAbility ( Ability, int ) | bool | Ability의 IAbilitySpec를 부여할 수 있는지 확인함. 가능 여부를 return. |
ForceGrantAbility ( Ability, int ) | void | Ability를 강제로 부여함. 만약 Ability가 같은 IAbilitySpec이 이미 있으면 Override 시키고 return. |
TryRemoveAbility ( Ability) | bool | Ability의 IAbilitySpec의 제거를 시도함. 성공 여부 return. |
CanRemoveAbility ( Ability) | bool | Ability의 IAbilitySpec을 제거할 수 있는지 확인함. 가능 여부 return. |
ForceRemoveAbility ( Ability) | void | Ability의 IAbilitySpec이 있다면 제거함. |
RemoveAllAbility ( ) | void | 보유하고 있는 모든 IAbilitySpec 을 제거함. |
Name | Value | Summary |
---|---|---|
OnGrantedAbility | AbilitySystem, IAbilitySpec | Ability가 새로 부여된 후 호출함. |
OnRemovedAbility | AbilitySystem, IAbilitySpec | Ability를 제거했을 때 호출함. |
OnActivateAbility | AbilitySystem, IAbilitySpec | Ability가 활성화되면 호출함. |
OnFinishedAbility | AbilitySystem, IAbilitySpec | Ability가 종료되면 호출함. |
Name | Value | Summary |
---|---|---|
_InitAbilities | FInitAbility[] | 초기화시 부여될 Ability. |
_Abilities | List<IAbilitySpec> | 보유하고 있는 IAbilitySpec의 List. |
_AbilityInputBuffer | AbilityInputBuffer | 어빌리티를 일정 시간동안 활성화를 시도함. |
_BufferDuration | float | AbilityInputBuffet 의 유지 시간. |
Name | Value | Summary |
---|---|---|
RemoveAbility (IAbilitySpec) | void | IAbilitySpec을 제거함. |
Spec_OnActivatedAbility (IAbilitySpec) | void | IAbilitySpec을 부여한 뒤 활성화 이벤트에 할당됨. |
Callback_OnActivatedAbility() 를 호출함. | ||
Spec_OnFinishedAbility (IAbilitySpec) | void | IAbilitySpec을 부여한 뒤 종료 이벤트에 할당도 |
Callback_OnFinishedAbility() 를 호출함. | ||
Callback_OnGrantedAbility (IAbilitySpec) | void | 새로운 IAbilitySpec가 부여되면 호출함. |
Callback_OnRemovedAbility (IAbilitySpec) | void | IAbilitySpec이 제거되면 호출함. |
Callback_OnActivatedAbility (IAbilitySpec) | void | 부여된 IAbilitySpec가 실행되면 호출함 |
Callback_OnFinishedAbility (IAbilitySpec) | void | 부여된 IAbilitySpec가 실행되면 호출함 |