怎么在unity中实现船移动有轨迹
1个回答
展开全部
(1) 你的预定轨道有没有 具体的模型。比如,基于函数的数学模型如:曲线、直线等,或基于三维空间的模型,一个轨道模型或一条spline线等。
(2)可以用碰撞检测的方式测算你的飞机是否跑出预定的轨道空间。无论是数学模型的轨道还是实体的轨道,都可以想办法间距一定距离设置碰撞体如Box Collider 或Sphere Collider,记得碰撞体点要选is Trigger设置成触发模式, 尽量沿着轨道覆盖上碰撞体。
(3)飞机上要绑定Collider和一个Rigidbody(这样才能检测碰撞),假设你已经设定好控制飞机飞行移动的程序(没有使用物理引擎Physics的方法),这样的话应该把飞机上的rigidbody的is Kinematic 打勾点选,确保飞机不受物理运算影响(绑定rigidbody的物体你无法通过物理引擎以外的方式改变其Transform变换。)
(4)飞机上绑定一个用于检测飞机出轨的脚本代码。用 function OnTriggerExit(){}检测飞机飞离轨道碰撞体。function OnTriggerEnter(){ } 检测飞机飞回轨道碰撞。
对于OnTriggerExit 和 OnTriggerEnter 的应用你可以去看一下unity 官方的脚本参考script reference。
(2)可以用碰撞检测的方式测算你的飞机是否跑出预定的轨道空间。无论是数学模型的轨道还是实体的轨道,都可以想办法间距一定距离设置碰撞体如Box Collider 或Sphere Collider,记得碰撞体点要选is Trigger设置成触发模式, 尽量沿着轨道覆盖上碰撞体。
(3)飞机上要绑定Collider和一个Rigidbody(这样才能检测碰撞),假设你已经设定好控制飞机飞行移动的程序(没有使用物理引擎Physics的方法),这样的话应该把飞机上的rigidbody的is Kinematic 打勾点选,确保飞机不受物理运算影响(绑定rigidbody的物体你无法通过物理引擎以外的方式改变其Transform变换。)
(4)飞机上绑定一个用于检测飞机出轨的脚本代码。用 function OnTriggerExit(){}检测飞机飞离轨道碰撞体。function OnTriggerEnter(){ } 检测飞机飞回轨道碰撞。
对于OnTriggerExit 和 OnTriggerEnter 的应用你可以去看一下unity 官方的脚本参考script reference。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询