public bool DoesTargetImplementsEvent(FsmEventSetup fsmEventSetup) { string eventName = fsmEventSetup.EventString; if (fsmEventSetup.target == PlayMakerProxyEventTarget.BroadCastAll) { return(FsmEvent.IsEventGlobal(eventName)); } if (fsmEventSetup.target == PlayMakerProxyEventTarget.FsmComponent) { return(PlayMakerUtils.DoesFsmImplementsEvent(fsmEventSetup.fsmComponent, eventName)); } if (fsmEventSetup.target == PlayMakerProxyEventTarget.GameObject) { return(PlayMakerUtils.DoesGameObjectImplementsEvent(fsmEventSetup.gameObject, eventName)); } if (fsmEventSetup.target == PlayMakerProxyEventTarget.Owner) { return(PlayMakerUtils.DoesGameObjectImplementsEvent(this.gameObject, eventName)); } return(false); }
void FirePlayMakerEvent(FsmEventSetup fsmEventSetup, FsmEventTarget fsmEventTarget, FsmEventData eventData) { if (eventData != null) { HutongGames.PlayMaker.Fsm.EventData = eventData; } fsmEventTarget.excludeSelf = false; if (PlayMakerCurvySceneProxy.fsm == null) { Debug.LogError("Missing 'PlayMaker Curvy' prefab in scene"); return; } Fsm _fsm = PlayMakerCurvySceneProxy.fsm.Fsm; if (fsmEventSetup.debug) { Debug.Log("Fire event: " + fsmEventSetup.EventString); } _fsm.Event(fsmEventTarget, fsmEventSetup.EventString); }
void setupEventTarget(FsmEventSetup fsmEventSetup, ref FsmEventTarget fsmEventTarget) { if (fsmEventTarget == null) { fsmEventTarget = new FsmEventTarget(); } // BROADCAST if (fsmEventSetup.target == PlayMakerProxyEventTarget.BroadCastAll) { fsmEventTarget.target = FsmEventTarget.EventTarget.BroadcastAll; fsmEventTarget.excludeSelf = false; } // FSM COMPONENT else if (fsmEventSetup.target == PlayMakerProxyEventTarget.FsmComponent) { fsmEventTarget.target = FsmEventTarget.EventTarget.FSMComponent; fsmEventTarget.fsmComponent = fsmEventSetup.fsmComponent; } // GAMEOBJECT else if (fsmEventSetup.target == PlayMakerProxyEventTarget.GameObject) { fsmEventTarget.target = FsmEventTarget.EventTarget.GameObject; fsmEventTarget.gameObject = new FsmOwnerDefault(); fsmEventTarget.gameObject.OwnerOption = OwnerDefaultOption.SpecifyGameObject; fsmEventTarget.gameObject.GameObject.Value = fsmEventSetup.gameObject; } // OWNER else if (fsmEventSetup.target == PlayMakerProxyEventTarget.Owner) { fsmEventTarget.ResetParameters(); fsmEventTarget.target = FsmEventTarget.EventTarget.GameObject; fsmEventTarget.gameObject = new FsmOwnerDefault(); fsmEventTarget.gameObject.OwnerOption = OwnerDefaultOption.SpecifyGameObject; fsmEventTarget.gameObject.GameObject.Value = this.gameObject; } }