public void HandleGameplayCue(GameObject Target, GameplayCueParameters Parameters, EGameplayCueEvent Event) { switch (Event) { case EGameplayCueEvent.OnExecute: if (ExecuteAction == null) { break; } ExecuteAction.Action(Target, Parameters); break; case EGameplayCueEvent.OnActive: if (OnActiveAction == null) { break; } OnActiveAction.Action(Target, Parameters); break; case EGameplayCueEvent.WhileActive: if (WhileActiveAction == null) { break; } WhileActiveAction.Action(Target, Parameters); break; case EGameplayCueEvent.OnRemove: if (OnRemoveAction == null) { break; } OnRemoveAction.Action(Target, Parameters); break; } }
public virtual void Action(GameObject Target, GameplayCueParameters Parameters) { }
public abstract void HandleGameplayCue(GameObject Target, EGameplayCueEventTypes EventType, GameplayCueParameters Parameters);
public override async void HandleGameplayCue(GameObject Target, EGameplayCueEventTypes EventType, GameplayCueParameters Parameters) { Time.timeScale = 0.5f; await UniTask.DelayFrame(5); Time.timeScale = 1; var gameObject = Instantiate(ObjectToSpawn); gameObject.transform.SetParent(Target.transform); gameObject.transform.localPosition = Position; gameObject.transform.localRotation = Rotation; gameObject.transform.localScale = Scale; if (DestroyInSeconds > 0) { await UniTask.Delay(TimeSpan.FromSeconds(DestroyInSeconds)); GameObject.DestroyImmediate(gameObject); } }
public override void Execute(GameObject Target, EGameplayCueEventTypes EventType, GameplayCueParameters Parameters) { GameplayCueImplementation.HandleGameplayCue(Target, EventType, Parameters); }
public abstract void Execute(GameObject Target, GameplayCueParameters Parameters);