Code improvement

This commit is contained in:
Pascal Serrarens 2022-06-03 17:59:07 +02:00
parent 59f4add2ac
commit ae7112de56
5 changed files with 27 additions and 12 deletions

View File

@ -104,7 +104,7 @@ namespace Passer.Humanoid {
public HeadTargetProps(SerializedObject serializedObject, HeadTarget headTarget)
: base(serializedObject, headTarget.unityXR, headTarget, nameof(HeadTarget.unityXR)) {
hmdProp = serializedObject.FindProperty(nameof(HeadTarget.unityXR) + ".hmd");
hmdProp = serializedObject.FindProperty(nameof(HeadTarget.unityXR) + ".sensorComponent");
}
public override void Inspector() {
@ -121,7 +121,8 @@ namespace Passer.Humanoid {
using (new EditorGUILayout.HorizontalScope()) {
EditorGUILayout.LabelField("Hmd", GUILayout.Width(120));
if (GUILayout.Button("Show")) {
headTarget.unityXR.CheckSensor(headTarget);
//headTarget.unityXR.CheckSensor(headTarget);
headTarget.unityXR.GetSensorComponent();
}
}
}

View File

@ -13,7 +13,6 @@ namespace Passer.Humanoid {
protected HumanoidControl humanoid => headTarget.humanoid;
//public SensorComponent sensorComponent;
protected new Tracking.HeadSensor sensor;

View File

@ -14,13 +14,6 @@ namespace Passer.Humanoid {
protected Tracking.Sensor sensor;
public SensorComponent sensorComponent;
/// <summary>
/// Returns sensorComponent and creates a new SensorComponent if it does not exist
/// </summary>
/// <returns></returns>
public abstract SensorComponent GetSensorComponent();
[System.NonSerialized]
public const string _name = "";
public override string name { get { return _name; } }
@ -125,6 +118,12 @@ namespace Passer.Humanoid {
}
public virtual void UpdateSensorTransformFromTarget(Transform targetTransform) {
if (sensorComponent != null) {
sensorComponent.transform.position = TransformPointUnscaled(targetTransform, -sensor2TargetPosition);
sensorComponent.transform.rotation = targetTransform.rotation * Quaternion.Inverse(sensor2TargetRotation);
return;
}
if (sensorTransform == null)
return;

View File

@ -1,6 +1,7 @@
using UnityEngine;
namespace Passer {
using Tracking;
[System.Serializable]
public abstract class Sensor {
@ -14,6 +15,14 @@ namespace Passer {
public Transform sensorTransform;
public SensorComponent sensorComponent;
/// <summary>
/// Returns sensorComponent and creates a new SensorComponent if it does not exist
/// </summary>
/// <returns></returns>
public abstract SensorComponent GetSensorComponent();
public virtual void Start(Transform targetTransform) {
target = targetTransform.GetComponent<Target>();
}

View File

@ -19,13 +19,20 @@ namespace Passer.Humanoid {
if (sensorComponent != null)
return sensorComponent;
if (tracker.trackerComponent == null)
tracker.CheckTracker(humanoid);
// Make sure the unityXR component exists
humanoid.unityXR.GetTrackerComponent();
Vector3 position = headTarget.transform.TransformPoint(headTarget.head2eyes);
Quaternion rotation = headTarget.transform.rotation;
UnityXR unityXRtracker = tracker.trackerComponent as UnityXR;
sensorComponent = unityXRtracker.GetHmd(position, rotation);
if (sensorComponent != null)
sensorTransform = sensorComponent.transform;
if (!Application.isPlaying)
SetSensor2Target();
return sensorComponent;
}