unity—刚体碰撞产生颤抖解决方法
带刚体的物体在发生碰撞时候的抖动,可以查看如下原因:
一、是刚体物体可能与其他碰撞体有持续的接触,刚体在接触面上移动,比如说刚体在一个带有boxcolider的地面上移动,这个时候你就会发现有些地方会导致刚体位置的变化,应为boxcolider有一定厚度,你人物的colider可能会由于重力等原因进入这个碰撞体,从而导致碰撞体挤压。
二、 查看人物自己的子物体下面是不是还有其他的刚体
三、移动的代码要放在fixedUpdate里面,而不是Update。
四、摄像机的跟随代码要放在LateUpdate里面,而不是Update。
void FixedUpdate()
{
Move();
}
void LateUpdate()
{
transform.position = playerTransform.position + offset;
if (Input.GetMouseButton(1))
{
rotationY = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityHor;
_rotationX -= Input.GetAxis("Mouse Y") * sensitivityVert;
_rotationX = Mathf.Clamp(_rotationX, minimumVert, maximumVert);
transform.localEulerAngles = new Vector3(_rotationX, rotationY, 0);
}
}
原文链接:https://blog.csdn.net/www1501766557/article/details/90755411
本文作者:云鲸啊
本文链接:https://www.cnblogs.com/yunjing/p/15992797.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步