C# 如何以一定角度移动对象?

C# 如何以一定角度移动对象?,c#,unity3d,C#,Unity3d,我写了这段代码。它被放置在一个名为ballers的对象中,当按下空格键时,另一个玩家会实例化该对象。它应该以玩家面对的相同角度移动,X是玩家唯一改变的旋转值,Y始终为90,Z始终为0 我的逻辑是令人难以置信的混乱,虽然,我在这里只是我最成功的尝试,使这项工作的预期。这不应该起作用,但我不知道什么会起作用。当transform.Translate被放置在Update中时,它将以偏移量拍摄自身,但在其他方面接近播放器的角度。在开始时,它不会移动,因为我没有给它一个速度。虽然现在还不清楚以一个角度移动

我写了这段代码。它被放置在一个名为ballers的对象中,当按下空格键时,另一个玩家会实例化该对象。它应该以玩家面对的相同角度移动,X是玩家唯一改变的旋转值,Y始终为90,Z始终为0


我的逻辑是令人难以置信的混乱,虽然,我在这里只是我最成功的尝试,使这项工作的预期。这不应该起作用,但我不知道什么会起作用。当transform.Translate被放置在Update中时,它将以偏移量拍摄自身,但在其他方面接近播放器的角度。在开始时,它不会移动,因为我没有给它一个速度。

虽然现在还不清楚以一个角度移动对象的确切含义是什么,它的类型有4个值x,y,z,w。所以用它们来

public class moveball : MonoBehaviour
{
    public GameObject player;

    // Start is called before the first frame update
    void Start()
    {
        player = GameObject.Find("Whyareyoulikethis");
        transform.Translate(player.transform.rotation.x, player.transform.rotation.y, 0);
    }

    // Update is called once per frame
    void Update()
    {
    }
}
将永远不会返回您期望的值

你想要的可能是一个矢量

然而,你说它应该以球员所面对的相同角度移动,所以也许它应该是这样的

transform.Translate(player.transform.rotation.x, player.transform.rotation.y, 0);

使用指向玩家所面临方向的向量

使用transform.forward解决问题,谢谢!这是非常有用的知识。@David如果能解决你的问题,别忘了接受答案。我的错,我想是的。谢谢你的通知
transform.Translate(player.transform.forward);