Advertisement
crescentfresh

Untitled

Mar 25th, 2025
407
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.46 KB | None | 0 0
  1. public class NodeCanvasCustomBT : MonoBehaviour
  2.     {
  3.         private NodeCanvas.BehaviourTrees.BehaviourTree _bt;
  4.         private NodeCanvas.Framework.Blackboard _blackboard;
  5.         private BehaviourTreeOwner _behaviourTreeOwner;
  6.         private Action _btFinished;
  7.         [SerializeField] private bool debug;
  8.      
  9.         public bool IsRunning { get; private set; }
  10.  
  11.         public void SetBehaviourTree(NodeCanvas.BehaviourTrees.BehaviourTree bt)
  12.         {
  13.             _bt = bt;
  14.             _behaviourTreeOwner.repeat = false;
  15.             _behaviourTreeOwner.enabled = false;
  16.         }
  17.        
  18.         public void StartBehaviourTree(Action btFinished)
  19.         {
  20.             _btFinished = btFinished;
  21.             //_behaviourTreeOwner.blackboard = _blackboard;
  22.             _behaviourTreeOwner.StartBehaviour(_bt, Callback);
  23.             _behaviourTreeOwner.enabled = true;
  24.             IsRunning = true;
  25.         }
  26.  
  27.         private void Callback(bool obj)
  28.         {
  29.             if (debug) Debug.Log($"BT Finished {obj}");
  30.             IsRunning = false;
  31.             _btFinished?.Invoke();
  32.         }
  33.  
  34.         private void Awake()
  35.         {
  36.             _behaviourTreeOwner = GetComponent<BehaviourTreeOwner>();
  37.             _blackboard = GetComponent<NodeCanvas.Framework.Blackboard>();
  38.         }
  39.  
  40.         public void SetVariable(string variable, object value)
  41.         {
  42.             _blackboard.SetVariableValue(variable, value);
  43.         }
  44.        
  45.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement