需要局部变换,来自全局变换(C#)Unity 3d



我有一个导弹效果,当我向作为目标的全局游戏对象开火时,它工作得很好,但我向任何位于某个父对象中的游戏对象开火,它工作不好,它会到达未知位置。这是我将导弹移动到目标的代码。

m_target=是我的目标
m_targetOffset=如果需要添加任何偏移,默认情况下为(0,0,0(

protected override void goToTarget()
{       
m_direction = (m_target.position + m_targetOffset - transform.position).normalized * m_distanceInfluence.Evaluate(1 - (m_target.position + m_targetOffset - transform.position).magnitude / m_searchRange);
m_rigidbody.velocity = Vector3.ClampMagnitude(m_rigidbody.velocity + m_direction * m_guidanceIntensity, m_rigidbody.velocity.magnitude);
if (m_rigidbody.velocity != Vector3.zero)
transform.LookAt(m_rigidbody.velocity);
}

在您的代码中,它可能不起作用,因为m_target是游戏对象,而不是变换,因此它的m_target.transform.position不是m_target.position

最新更新