求助如何实现在刚体上移动结束时自动移动到最近的空地



  • 我想实现飞行功能,在飞行时人物移到不碰撞的图层,结束时回到原来图层。
    但是如果结束的时候正好在刚体上,就卡在里面了。
    怎么才能让他自动移动到附近不是刚体的空地上?



  • @羊派大星 最直接粗暴的方法是给刚体的物体和人物都加上物理能力,然后场景开始时设置全局重力为0并禁用物理能力,等你移动结束再启用,两个物理能力对象就会互相挤开了(障碍物的那个物理能力可以勾选不可移动),如果不用物理能力的话,就比较麻烦了,如果“空地”本身是实例,还比较好选中,如果空地就是纯粹什么都没有,要定位一个附近的空地最直接的方法是在附近范围内不断随机目标点来判断目标点是否在刚体内,否则就要构造出前者说到的,也就是生成一堆判定用的“地点”实例再在其中选中最近的且不与刚体重叠的实例,才能确定这个“地点”是“最近的空地”。
    其实从你的描述来看,个人觉得更适合的应该是设计成“禁止把目标点定在刚体上”或者“在刚体上禁止结束飞行”,主要是飞到刚体上之后又自动往其他方向飞的表现个人感觉比较怪,如果是往跟来时的方向差得比较大的方向飞还好,恰好往回飞就很微妙,想了一下观感上有点多此一举的感觉。



  • 用物理能力成功了,谢谢。会自动移到最近的空地。


登录后回复