unity 斥力_unity物体能否按照已经用line renderer画好的线条来运动?

能。

我把你的问题理解为两部分:1. 沿轨迹运动。2. 离散地。

第一个问题

最简单的实现方式就是把linerender中的顶点数组拿出来,在这一串点上做线性插值,来作为单个物体的轨迹。更具体一点,先计算总路程长度,根据给定的时间计算出运动速度(或者直接指定速度),然后从第一个点开始,朝向第二个点,每帧移动deltaTime * 速度,到达第二个点后,变为朝向第三个点,以此类推,直到到达最后一个点。

如果你的linerender在运动过程中是变化的。那就需要你在发生变化后更新上面的顶点数组,具体处理取决于你的需求(我正在朝向的点突然跑到我身后了怎么办?少了或者多了几个点怎么办?)

第二个问题

要把你的若干个物体分离开,而不是挤在一块。假设一种最坏情况,每个物体定的速度都不一样,开始的时间也不固定,如何让他们不撞在一起?

考虑到你的物体必须吸附在轨迹上,简单根据相对位置去算一个斥力应该是不行。可以在速度上做文章。

当发生碰撞时(不管你是用collission还是数学运算来检测),处在比较后方的物体速度暂时为0,这个“后方”可以用两物体连线向量与当前运动方向的点积来判断(但也不总是正确的,需要一些特殊处理),直到前面的物体走出范围就再把速度恢复。

当然你也可以做复杂一点,把将要碰撞的物体的距离作为参数,给速度一个增量(可正可负),让变化平滑一点。

这两个都做好后,就是一个比较基础的效果了,可以根据你的需求再改进。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值