using System; namespace BehaviorTreeSlayer { public class EventCaller : ConditionalNode { [OutField] public string Event; public override void Enter(object args) { BehaviorTree tree = (BehaviorTree)args; if (!string.IsNullOrEmpty(Event)) tree.Regist(Event, OnEvent); } public override void Exit(object args) { } private void OnEvent(object obj) { IsConditionOK = true; } public override TaskResult Tick(double dt, object args = null) { return IsConditionOK ? TaskResult.Running : TaskResult.None; } } }