问题描述
我目前正在设计一个统一的迷宫游戏,并且有一些敌人 AI 会在迷宫周围追逐玩家。如果玩家到达迷宫上的某个方块,它会生成一个尺寸稍大的新迷宫。
我一直在使用 unity AI NavMeshSurface 类来实现这一点,并在生成关卡后调用 surface.BuildNavMesh()
来生成导航网格。
每次重新生成关卡时,当前关卡的迷宫游戏对象都会被销毁:
public void GenerateNewMaze(int rows,int columns) { mazeData = dataGenerator.FromDimensions(rows,columns); DisplayMaze(); surface.BuildNavMesh(); } public void DisposeOldMaze() { GameObject[] mazeObjects = GameObject.FindGameObjectsWithTag("Generated"); foreach (GameObject mazeObject in mazeObjects) { Destroy(mazeObject); } }
我第一次运行它时效果很好:
但是从第二个开始,我开始出现一些奇怪的差距:
我想,在进行了一些谷歌搜索后,表面上可能仍然有旧数据,我尝试了一些解决方案,例如 surface.RemoveData()
和 NavMesh.RemoveAllNavMeshData()
,然后再次构建导航网格,但我似乎得到了确切的相同的结果。
目前我只能考虑为每个迷宫生成创建一个新的 NavMeshSurface 但这似乎是过度和不必要的。
我遵循的教程是:https://www.youtube.com/watch?v=FkLJ45Pt-mY
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)