Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class NodeCanvasCustomBT : MonoBehaviour
- {
- private NodeCanvas.BehaviourTrees.BehaviourTree _bt;
- private NodeCanvas.Framework.Blackboard _blackboard;
- private BehaviourTreeOwner _behaviourTreeOwner;
- private Action _btFinished;
- [SerializeField] private bool debug;
- public bool IsRunning { get; private set; }
- public void SetBehaviourTree(NodeCanvas.BehaviourTrees.BehaviourTree bt)
- {
- _bt = bt;
- _behaviourTreeOwner.repeat = false;
- _behaviourTreeOwner.enabled = false;
- }
- public void StartBehaviourTree(Action btFinished)
- {
- _btFinished = btFinished;
- //_behaviourTreeOwner.blackboard = _blackboard;
- _behaviourTreeOwner.StartBehaviour(_bt, Callback);
- _behaviourTreeOwner.enabled = true;
- IsRunning = true;
- }
- private void Callback(bool obj)
- {
- if (debug) Debug.Log($"BT Finished {obj}");
- IsRunning = false;
- _btFinished?.Invoke();
- }
- private void Awake()
- {
- _behaviourTreeOwner = GetComponent<BehaviourTreeOwner>();
- _blackboard = GetComponent<NodeCanvas.Framework.Blackboard>();
- }
- public void SetVariable(string variable, object value)
- {
- _blackboard.SetVariableValue(variable, value);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement