Unity3d UNITY\u ARCore:localEulerAngles始终提供0值

Unity3d UNITY\u ARCore:localEulerAngles始终提供0值,unity3d,Unity3d,与ARCore合作在UNITY中创建指南针。 播放器是AR核心设备:第一人称摄像头。 任何人都可以解决始终获得0的问题。 您的播放器的父对象是什么?它是AR Core设备的父对象。这表明您的播放器不是独立于AR Core设备移动的,而是有了它,所以它总是0。那么我能做些什么呢?您需要让它独立移动-从父对象开始。。。所以改变它的运动方式 using UnityEngine.UI; using UnityEngine; public class Compass : MonoBehaviour {

与ARCore合作在UNITY中创建指南针。 播放器是AR核心设备:第一人称摄像头。 任何人都可以解决始终获得0的问题。


您的播放器的父对象是什么?它是AR Core设备的父对象。这表明您的播放器不是独立于AR Core设备移动的,而是有了它,所以它总是0。那么我能做些什么呢?您需要让它独立移动-从父对象开始。。。所以改变它的运动方式
using UnityEngine.UI;
using UnityEngine;
public class Compass : MonoBehaviour
{
    public RawImage CompassImage;
    public Transform Player;
    public Text CompassDirectionText;

    public void Update()
    {
        CompassImage.uvRect = new Rect(Player.localEulerAngles.y / 360, 0, 1, 1);

        Vector3 forward = Player.transform.forward;

        forward.y = 0;

        float headingAngle = Quaternion.LookRotation(forward).eulerAngles.y;
        headingAngle = 5 * (Mathf.RoundToInt(headingAngle / 5.0f));

        int displayangle;
        displayangle = Mathf.RoundToInt(headingAngle);

        CompassDirectionText.text = headingAngle.ToString ();
    }
}