Support Forum

SimulatorBurst.AddObstacle not implemented

Hi!

I am trying the latest version (4.3.34) with the 2020.1.4f1 Unity version, and I am using the package manager to update the plugin. I come from the latest stable version, so I had to delete all the old files for it, and then reimporting it through the package manager. The thing now is that the RVO Squared Obstacle doesn’t work, I am adding it as always, and also tried through code, but I am getting this error when I hit play:

NotImplementedException: The method or operation is not implemented.
Pathfinding.RVO.SimulatorBurst.AddObstacle (UnityEngine.Vector3[] vertices, System.Single height, UnityEngine.Matrix4x4 matrix, Pathfinding.RVO.RVOLayer layer, System.Boolean cycle) (at PackageCache/com.arongranberg.astar@4.3.34/Core/RVO/RVOCoreSimulatorBurst.cs:903)
Pathfinding.RVO.RVOObstacle.AddObstacleInternal (UnityEngine.Vector3[] vertices, System.Single height) (at Library/PackageCache/com.arongranberg.astar@4.3.34/RVO/RVOObstacle.cs:265)
Pathfinding.RVO.RVOObstacle.AddObstacle (UnityEngine.Vector3[] vertices, System.Single height) (at Library/PackageCache/com.arongranberg.astar@4.3.34/RVO/RVOObstacle.cs:257)
Pathfinding.RVO.RVOSquareObstacle.CreateObstacles () (at Library/PackageCache/com.arongranberg.astar@4.3.34/RVO/RVOSquareObstacle.cs:52)
Pathfinding.RVO.RVOObstacle.Start () (at Library/PackageCache/com.arongranberg.astar@4.3.34/RVO/RVOObstacle.cs:201)

Is it an error, a missing implementation, or something that I could be doing wrong when importing the plugin?

Also, I am getting this other error, before, but I am not sure that it’s related:

NullReferenceException: Object reference not set to an instance of an object
UnityEditor.GameObjectInspector.ClearPreviewCache () (at <3b1af5075b0340cfb428dfcef292b2ea>:0)
UnityEditor.GameObjectInspector.ReloadPreviewInstances () (at <3b1af5075b0340cfb428dfcef292b2ea>:0)
UnityEditor.GameObjectInspector.OnForceReloadInspector () (at <3b1af5075b0340cfb428dfcef292b2ea>:0)
UnityEditor.AssetDatabase:Refresh()
Pathfinding.Drawing.DrawingData:LoadMaterials(DetectedRenderPipeline) (at Library/PackageCache/com.arongranberg.astar@4.3.34/Drawing/DrawingData.cs:920)
Pathfinding.Drawing.DrawingData:.ctor() (at Library/PackageCache/com.arongranberg.astar@4.3.34/Drawing/DrawingData.cs:938)
Pathfinding.Drawing.DrawingManager:OnEnable() (at Library/PackageCache/com.arongranberg.astar@4.3.34/Drawing/DrawingManager.cs:247)
UnityEngine.GameObject:AddComponent()
Pathfinding.Drawing.DrawingManager:Init() (at Library/PackageCache/com.arongranberg.astar@4.3.34/Drawing/DrawingManager.cs:180)

Any clue about it?

Thanks! :smiley:

@aron_granberg any help with this? Specially the first error, for the second one I watched the other thread already :smiley:

Hi

The beta currently doesn’t support RVO obstacles I’m afraid.

I’m not quite sure I will implement support for them anyway. RVO obstacles have never really added much imo. They usually create more behavior problems than they solve.

Oh I see, then what would be the approach for steering movements or dynamic obstacles in the beta version?

Thanks!

1 Like

I am also curious about a solution here. Currently, I am not using physics bodies, for obvious performance reasons at large scale, and trying to determine an efficient way to handle wall collisions.

One option is to implement a job that clamps the units inside of the graph. I believe this is what AIPath does. This isn’t ideal in my use case because units can be thrown around with explosions, off of cliffs and such, so it wouldn’t work by itself without implementing something to disable the graph clamp when it is expected to be outside of the graph.

Obstacle implementation seem like they would do well, but obviously, you would know much better about problematic issues. Was it implemented in the previous version of RVOSimulator or a legacy class? and if so is it possible to get that as an example of its implementation?

You can find the previous implementation in the non-beta version (latest 4.2.x).
I’m not sure you want it though since you are using a lot of agents and that implementation was kinda slow with a lot of obstacles.