在 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 a
variable', value' or
method 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。
尝试为 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 a
variable',value' or
method 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。