2017-11-24 A星 动态更新

这篇博客重点介绍了如何使用Unity中的A*寻路系统动态更新障碍物。通过挂载'DynamicGridObstacle.cs'脚本在障碍物上,实现障碍物移除后路径的正确更新。OnDestroy方法在障碍物销毁后依然保持其对路径的影响,而DoUpdateGraphs方法则允许在障碍物移动过程中实时更新其经过区域的可达性。
摘要由CSDN通过智能技术生成


今天主要讲了脚本:

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.
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值