今天主要讲了脚本:
DynamicGridObstacle.cs
它是挂在障碍物上的,可以用此脚本实现动态更新路点;
主要讲了2个方法:
1.OnDestroy方法:它会声明一个guo变量,当障碍被清除,guo变量仍然使得障碍阻挡的路点,继续阻挡住;
这时AstarPath.active.UpdateGraphs(guo),变量用guo
此效果,可以考虑用于移动中,留下脚印或印记
2.DoUpdateGraphs方法:
它也和动态更新路点有关,讲师改写了一下,就获得了这样的效果:
拖动障碍物,障碍物经过的区域,都变成不可通过的路点了;
if (!coll.enabled) {
AstarPath.active.UpdateGraphs(prevBounds);
} else {
Bounds newBounds = coll.bounds;
var guo = new GraphUpdateObject(newBounds);
guo.modifyWalkability = true;
guo.setWalkability = false;
Bounds merged = newBounds;
merged.