繁体   English   中英

在Unity中旋转游戏对象

[英]Rotate a gameobject in Unity

尝试为Unity编写脚本,该脚本获取游戏对象A的位置和旋转并将其使用C#分配给游戏对象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):错误CS0119:表达式表示type', where a应有变量', value' or方法组'

尝试:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM