旋转一个团结游戏物体(Rotate a gameobject in Unity)

2019-10-22 12:11发布

试图写为统一一个脚本,需要游戏对象A的位置和旋转,并为其指派使用C#到游戏对象B。

调试日志显示,我希望得到正确的旋转角度,但我不知道如何在值实际上分配给其他游戏对象。

我是全新的,以C#作为今天的,所以它很可能是我的语法,但我也相当新的统一。

提前致谢!

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
        );
    }
}

我得到以下错误:

资产/ MoveArrow.cs(24,53):错误CS0119:表达式表示type', where a可变”, value' or方法组”预期

Answer 1:

尝试:

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

那是你正在试图做的是不工作的原因是transform.rotation是四元,而transform.eularAngles是的Vector3。



文章来源: Rotate a gameobject in Unity