Question: 角色移動用FixedUpdate 相機跟隨用Update,相機會在跟隨主角的過程中抖動,為何?
//相機跟隨 m_target為跟隨的目標
private void Update()
{
Vector3 targetPos = m_target.position + m_offset;
transform.position = Vector3.Lerp(transform.position, targetPos, Time.deltaTime * m_smoothing);
if(Vector3.Distance(transform.position, targetPos) <= 0.02f)
{
transform.position = targetPos;
}
transform.LookAt(m_target);
}
此處相機的跟隨用的是插值運算,理論原因就是插值的跟隨會導致相機跟角色有位置差,所以lookat會一直搖擺跟隨,簡單粗暴就是直接賦值
private void Update()
{
transform.position = m_target.position + m_offset;
transform.LookAt(m_target);
}
如果對效果不滿意…我們可以嘗試使用官方的虛擬相機插件…那個封裝好了跟隨,平滑等等操作,Assets Store上搜關鍵詞是Cinemachine
image.png