【坑】GetComponent返回的null不是真null。
var rb = GetComponent<rigidbody>();
if(rb is null) //物体不论是否有刚体都返回false,因为rb拿到的是一个假null
{
//Do something
}
参考链接:www.coder.work/article/295…
【坑】math.lerp和Mathf.lerp的区别
尽管两者都是做线性插值,通过源码发现。
math.lerp的公式是: a+ t * (b - a)
Mathf.lerp的公式是: a + (b - a) * Mathf.Clamp01(t)。
也就是说使用math.lerp,差值的结果会随着t的增大而增大,且可以超过b。同样的,math.lerp的差值结果也可以小于a。
【坑】投掷的武器会穿过玩家,不触发碰撞的原因
在Unity中,FixedUpdate是一个非常重要的函数,在每个固定的时间间隔内被调用,用于物理模拟和更新。
检查发现,游戏的fixedUpdateTime被设置成了1/15,降低了物理模拟的帧率,影响了物理检测的效果。导致了武器可能会穿过玩家。