Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要局部变换,来自全局变换(C#)Unity 3d_C#_Unity3d - Fatal编程技术网

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

需要局部变换,来自全局变换(C#)Unity 3d,c#,unity3d,C#,Unity3d,我有一个导弹效果,当我向全局游戏对象作为目标射击时,效果很好,但我向某个父对象中的任何游戏对象射击时,效果都不好,它会飞到一个未知的位置。这是我将导弹移动到目标的代码 m_target=是我的目标 m_targetOffset=如果需要添加任何偏移,默认为(0,0,0) 在您的代码中,它可能不起作用,因为m_target是游戏对象,而不是变换,因此,它不是m_target.position,而是m_target.transform.position当您获得m_target时,这将是您的关键。.我

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

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


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

当您获得m_target时,这将是您的关键。.我通过光线投射if(Physics.raycast(光线原点,光线方向*1000,命中率,1500.0f,layerMask))获得目标{bullet_target=hit.point;hit_game_object=hit.transform.gameObject;hit_transform=hit.transform;}所以m_target应该有一个m_target.transform.position,而不仅仅是.position..是的,谢谢,它解决了..-),我们能得到这个答案,这样我们就可以把它标记为解决了吗?
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);
}