在 Unity 中旋转游戏对象

Rotate a gameobject in Unity

尝试为 Unity 编写脚本,使用 C# 获取游戏对象 A 的位置和旋转并将其分配给游戏对象 B。

调试日志显示了我想要获得的正确旋转角度,但我不知道如何将该值实际分配给其他游戏对象。

我今天是 C# 的新手,所以它很可能是我的语法,但我也是 Unity 的新手。

提前致谢!

using UnityEngine;
using System.Collections;

public class MoveArrow : MonoBehaviour {

    void Start () {
    }

    void Update () {
        var playerMapPos = GameObject.FindWithTag ("Player");
        var playerWorldPos = GameObject.FindWithTag ("PlayerCube");

        Debug.Log ("x: " + playerMapPos.transform.eulerAngles.x ); 
        Debug.Log ("y: " + playerMapPos.transform.eulerAngles.y );
        Debug.Log ("z: " + playerMapPos.transform.eulerAngles.z );

        playerWorldPos.transform.rotation = Vector3(
            playerMapPos.transform.eulerAngles.x,
            playerMapPos.transform.eulerAngles.y,
            playerMapPos.transform.eulerAngles.z
        );
    }
}

我收到以下错误:

Assets/MoveArrow.cs(24,53): error CS0119: Expression denotes a type', where avariable', value' ormethod group' was expected

尝试:

void Update()
{
    var playerMapPos = GameObject.FindWithTag ("Player");
    var playerWorldPos = GameObject.FindWithTag ("PlayerCube");
    playerWorldPos.transform.rotation = playerMapPos.transform.rotation;
}

您尝试执行的操作不起作用的原因是 transform.rotation 是四元数,而 transform.eularAngles 是 Vector3。