Files
VIVE-OpenXR-Unity/com.htc.upm.vive.openxr/Samples~/Samples/Samples/Commons/Script/Debug/DebugPoseData.cs
2025-01-08 10:28:35 +08:00

137 lines
4.1 KiB
C#

// Copyright HTC Corporation All Rights Reserved.
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.UI;
using UnityEngine.XR;
using VIVE.OpenXR;
[RequireComponent(typeof(Text))]
public class DebugPoseData : MonoBehaviour
{
public string PoseName = "";
public InputActionReference isTracked = null;
public InputActionReference trackingState = null;
public InputActionReference position = null;
public InputActionReference rotation = null;
public InputActionReference pose = null;
private Text m_Text = null;
private void Start()
{
m_Text = GetComponent<Text>();
}
void Update()
{
if (m_Text == null) { return; }
m_Text.text = PoseName + " ----";
if (isTracked != null)
{
m_Text.text += "\nisTracked: ";
{
if (OpenXRHelper.GetButton(isTracked, out bool value, out string msg))
{
m_Text.text += value;
}
else
{
m_Text.text += msg;
}
}
}
if (trackingState != null)
{
m_Text.text += "\ntrackingState: ";
{
if (OpenXRHelper.GetInteger(trackingState, out InputTrackingState value, out string msg))
{
m_Text.text += value;
}
else
{
m_Text.text += msg;
}
}
}
if (position != null)
{
m_Text.text += "\nposition: ";
{
if (OpenXRHelper.GetVector3(position, out Vector3 value, out string msg))
{
m_Text.text += "(" + value.x.ToString("N3") + ", " + value.y.ToString("N3") + ", " + value.z.ToString("N3") + ")";
}
else
{
m_Text.text += msg;
}
}
}
if (rotation != null)
{
m_Text.text += "\nrotation: ";
{
if (OpenXRHelper.GetQuaternion(rotation, out Quaternion value, out string msg))
{
m_Text.text += "(" + value.x.ToString("N3") + ", " + value.y.ToString("N3") + ", " + value.z.ToString("N3") + ", " + value.w.ToString("N3") + ")";
}
else
{
m_Text.text += msg;
}
}
}
if (pose != null)
{
m_Text.text += "\npose.isTracked: ";
{
if (OpenXRHelper.GetPoseIsTracked(pose, out bool value, out string msg))
{
m_Text.text += value;
}
else
{
m_Text.text += msg;
}
}
m_Text.text += "\npose.trackingState: ";
{
if (OpenXRHelper.GetPoseTrackingState(pose, out InputTrackingState value, out string msg))
{
m_Text.text += value;
}
else
{
m_Text.text += msg;
}
}
m_Text.text += "\npose.position: ";
{
if (OpenXRHelper.GetPosePosition(pose, out Vector3 value, out string msg))
{
m_Text.text += "(" + value.x.ToString("N3") + ", " + value.y.ToString("N3") + ", " + value.z.ToString("N3") + ")";
}
else
{
m_Text.text += msg;
}
}
m_Text.text += "\npose.rotation: ";
{
if (OpenXRHelper.GetPoseRotation(pose, out Quaternion value, out string msg))
{
m_Text.text += "(" + value.x.ToString("N3") + ", " + value.y.ToString("N3") + ", " + value.z.ToString("N3") + ", " + value.w.ToString("N3") + ")";
}
else
{
m_Text.text += msg;
}
}
}
}
}