transform.Translate来控制物体移动的一个坏处,无法实现真正的物理施力、碰撞反弹等状况

笔者本来是想对发射出去的子弹实现一个功能,不断向前运动,在接触到墙壁的时候进行反弹
首先笔者是已经将Bounciness为0.8的Physic Material 赋给了子弹的collider身上
但反弹仍然是不成功,可以看下图。在这里插入图片描述
如上图所示,在蓝色墙壁上的子弹一直停留在那,不会进行反弹
为此笔者最初以为是自己的rigidbody和collider设置有问题
但后来发现无论怎么测试都不成功
直到后来输出了一下子弹的速度后(看下图)
在这里插入图片描述
才想起来使用transform.Translate来控制物体的移动
物体是不会有速度,更加不会有收到力的情况
既然没有力,那物体的碰撞反弹又怎么可能可以实现呢?
于是后来换用
rb.velocity = transform.up * BulletSpeed;//给子弹附加速度
接着子弹便能实现碰到墙壁后实现反弹

总结‘:transform.Translate的确能实现物体移动,但和真正的物体受到力进而实现的移动是不同的。最初的情况下子弹不会反弹因为子弹本身没有力也没有速度的同时,transform.Translate一直控制着子弹向上运动,于是乎便会一直停留在墙壁边上

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值