【问题标题】:Rotate a gameobject in Unity在 Unity 中旋转游戏对象
【发布时间】:2016-01-13 05:28:07
【问题描述】:

尝试为 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 avariable',value' ormethod 组'是预期的

【问题讨论】:

    标签: c# unity3d unityscript


    【解决方案1】:

    试试:

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

    您尝试做的事情不起作用的原因是 transform.rotation 是四元数,而 transform.eularAngles 是 Vector3。

    【讨论】:

    • 哈哈哈 - 谢谢!谢谢你! - 这对我来说很有趣,因为当它如此简单时,我只是“从鼹鼠山上造了一座山”。 :) :) 大声笑
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-14
    相关资源
    最近更新 更多