Getting Error After Updating

willij

New member
After updating BD I'm getting this error:

NullReferenceException: Object reference not set to an instance of an object
BehaviorDesigner.Runtime.BehaviorManager.AddToTaskList (BehaviorDesigner.Runtime.BehaviorManager+BehaviorTree behaviorTree, BehaviorDesigner.Runtime.Tasks.Task task, System.Boolean& hasExternalBehavior, BehaviorDesigner.Runtime.BehaviorManager+TaskAddData data) (at <8273d6b105784beab3b1f76a8d030c0c>:0)
BehaviorDesigner.Runtime.BehaviorManager.AddToTaskList (BehaviorDesigner.Runtime.BehaviorManager+BehaviorTree behaviorTree, BehaviorDesigner.Runtime.Tasks.Task task, System.Boolean& hasExternalBehavior, BehaviorDesigner.Runtime.BehaviorManager+TaskAddData data) (at <8273d6b105784beab3b1f76a8d030c0c>:0)
BehaviorDesigner.Runtime.BehaviorManager.AddToTaskList (BehaviorDesigner.Runtime.BehaviorManager+BehaviorTree behaviorTree, BehaviorDesigner.Runtime.Tasks.Task task, System.Boolean& hasExternalBehavior, BehaviorDesigner.Runtime.BehaviorManager+TaskAddData data) (at <8273d6b105784beab3b1f76a8d030c0c>:0)
BehaviorDesigner.Runtime.BehaviorManager.AddToTaskList (BehaviorDesigner.Runtime.BehaviorManager+BehaviorTree behaviorTree, BehaviorDesigner.Runtime.Tasks.Task task, System.Boolean& hasExternalBehavior, BehaviorDesigner.Runtime.BehaviorManager+TaskAddData data) (at <8273d6b105784beab3b1f76a8d030c0c>:0)
BehaviorDesigner.Runtime.BehaviorManager.AddToTaskList (BehaviorDesigner.Runtime.BehaviorManager+BehaviorTree behaviorTree, BehaviorDesigner.Runtime.Tasks.Task task, System.Boolean& hasExternalBehavior, BehaviorDesigner.Runtime.BehaviorManager+TaskAddData data) (at <8273d6b105784beab3b1f76a8d030c0c>:0)
BehaviorDesigner.Runtime.BehaviorManager.AddToTaskList (BehaviorDesigner.Runtime.BehaviorManager+BehaviorTree behaviorTree, BehaviorDesigner.Runtime.Tasks.Task task, System.Boolean& hasExternalBehavior, BehaviorDesigner.Runtime.BehaviorManager+TaskAddData data) (at <8273d6b105784beab3b1f76a8d030c0c>:0)
BehaviorDesigner.Runtime.BehaviorManager.AddToTaskList (BehaviorDesigner.Runtime.BehaviorManager+BehaviorTree behaviorTree, BehaviorDesigner.Runtime.Tasks.Task task, System.Boolean& hasExternalBehavior, BehaviorDesigner.Runtime.BehaviorManager+TaskAddData data) (at <8273d6b105784beab3b1f76a8d030c0c>:0)
BehaviorDesigner.Runtime.BehaviorManager.AddToTaskList (BehaviorDesigner.Runtime.BehaviorManager+BehaviorTree behaviorTree, BehaviorDesigner.Runtime.Tasks.Task task, System.Boolean& hasExternalBehavior, BehaviorDesigner.Runtime.BehaviorManager+TaskAddData data) (at <8273d6b105784beab3b1f76a8d030c0c>:0)
BehaviorDesigner.Runtime.BehaviorManager.AddToTaskList (BehaviorDesigner.Runtime.BehaviorManager+BehaviorTree behaviorTree, BehaviorDesigner.Runtime.Tasks.Task task, System.Boolean& hasExternalBehavior, BehaviorDesigner.Runtime.BehaviorManager+TaskAddData data) (at <8273d6b105784beab3b1f76a8d030c0c>:0)
BehaviorDesigner.Runtime.BehaviorManager.AddToTaskList (BehaviorDesigner.Runtime.BehaviorManager+BehaviorTree behaviorTree, BehaviorDesigner.Runtime.Tasks.Task task, System.Boolean& hasExternalBehavior, BehaviorDesigner.Runtime.BehaviorManager+TaskAddData data) (at <8273d6b105784beab3b1f76a8d030c0c>:0)
BehaviorDesigner.Runtime.BehaviorManager.AddToTaskList (BehaviorDesigner.Runtime.BehaviorManager+BehaviorTree behaviorTree, BehaviorDesigner.Runtime.Tasks.Task task, System.Boolean& hasExternalBehavior, BehaviorDesigner.Runtime.BehaviorManager+TaskAddData data) (at <8273d6b105784beab3b1f76a8d030c0c>:0)
BehaviorDesigner.Runtime.BehaviorManager.AddToTaskList (BehaviorDesigner.Runtime.BehaviorManager+BehaviorTree behaviorTree, BehaviorDesigner.Runtime.Tasks.Task task, System.Boolean& hasExternalBehavior, BehaviorDesigner.Runtime.BehaviorManager+TaskAddData data) (at <8273d6b105784beab3b1f76a8d030c0c>:0)
BehaviorDesigner.Runtime.BehaviorManager.AddToTaskList (BehaviorDesigner.Runtime.BehaviorManager+BehaviorTree behaviorTree, BehaviorDesigner.Runtime.Tasks.Task task, System.Boolean& hasExternalBehavior, BehaviorDesigner.Runtime.BehaviorManager+TaskAddData data) (at <8273d6b105784beab3b1f76a8d030c0c>:0)
BehaviorDesigner.Runtime.BehaviorManager.AddToTaskList (BehaviorDesigner.Runtime.BehaviorManager+BehaviorTree behaviorTree, BehaviorDesigner.Runtime.Tasks.Task task, System.Boolean& hasExternalBehavior, BehaviorDesigner.Runtime.BehaviorManager+TaskAddData data) (at <8273d6b105784beab3b1f76a8d030c0c>:0)
BehaviorDesigner.Runtime.BehaviorManager.AddToTaskList (BehaviorDesigner.Runtime.BehaviorManager+BehaviorTree behaviorTree, BehaviorDesigner.Runtime.Tasks.Task task, System.Boolean& hasExternalBehavior, BehaviorDesigner.Runtime.BehaviorManager+TaskAddData data) (at <8273d6b105784beab3b1f76a8d030c0c>:0)
BehaviorDesigner.Runtime.BehaviorManager.EnableBehavior (BehaviorDesigner.Runtime.Behavior behavior) (at <8273d6b105784beab3b1f76a8d030c0c>:0)
BehaviorDesigner.Runtime.Behavior.EnableBehavior () (at <8273d6b105784beab3b1f76a8d030c0c>:0)
 
What version did you update from? If you import the runtime source and insert a breakpoint within AddToTaskList what line/task does it get caught up on?

 
Huh, I had reverted to a previous version of my game so I could work on it while I waited for you to respond but I updated it again now and there's no error. Thanks.

Anyway, I updated behavior designer because one of my aborts was not working for some reason (it's not reevaluating the condition).

1463

The node the Pickup sequence is connected to is a selector with lower priority tasks.

I know Within Distance should be true because when the selector gets aborted and run again, Within Distance returns true.
Sorry, I just realized that this screenshot is not a running one but what happens is that Within Distance has an X with a circular arrow on it when it should have turned true.

The update didn't fix this issue.
 
Chances are the abort is working but Within Distance is returning false when you think that it should return true. When you think that it should return true you can place a breakpoint within OnUpdate to see the value of it and trace where things are going wrong.
 
But the object is right there - I can see it. It has the correct tag. And if I force the selector to be aborted, Within Distance becomes true because it's reevaluated when the selector runs again. I have a similar abort somewhere else that works fine.

I placed the break point and I can see all of the other Within Distances evaluating every frame but not this one. It's not doing the tag search method in Start and there's nothing in the list in Update. I copied and pasted this task from another one that's working and just changed the tag so it should work.

Edit: I edited the script to include Debug Logs as well to double check. I said if the tag == "objectI'mLookingFor" to print out these messages (to filter out the other Within Distance calls.

I confirmed the tag search in Start only gets called once. So when the object it's looking for is spawned, it's not calling GameObject.FindGameObjectsWithTag(targetTag.Value) to update the list. But the Update method is getting called once per frame (though there's nothing in the object list.

The other Within Distance script I has runs Start every frame - why not this one?

Edit 2: Nevermind, I have a repeater on those within distance tasks. I'll put one on this one as well. Thanks
 
Last edited:
It's extremely tough to say just from that screenshot, but it doesn't sound like Within Distance is being reevaluated. Try to reduce the branch to a smaller set just to get something working, and then build up from there.
 
Top