diff --git a/Editor/HumanoidControl/HumanoidControl_Editor.cs b/Editor/HumanoidControl/HumanoidControl_Editor.cs
index 1140007..e315275 100644
--- a/Editor/HumanoidControl/HumanoidControl_Editor.cs
+++ b/Editor/HumanoidControl/HumanoidControl_Editor.cs
@@ -1082,7 +1082,7 @@ namespace Passer {
using (new EditorGUILayout.HorizontalScope()) {
EditorGUILayout.LabelField("Tracker", GUILayout.Width(120));
if (TrackerComponentShowButton())
- tracker.CheckTracker(humanoid);
+ tracker.GetTrackerComponent();
}
}
else {
diff --git a/Runtime/HumanoidControl/Scripts/Extensions/HumanoidSensor.cs b/Runtime/HumanoidControl/Scripts/Extensions/HumanoidSensor.cs
index 3678988..a6e6f37 100644
--- a/Runtime/HumanoidControl/Scripts/Extensions/HumanoidSensor.cs
+++ b/Runtime/HumanoidControl/Scripts/Extensions/HumanoidSensor.cs
@@ -16,7 +16,7 @@ namespace Passer.Humanoid {
public SensorComponent sensorComponent;
///
- /// Returns sensorComponent and creates a new sensorComponent if it does not exist
+ /// Returns sensorComponent and creates a new SensorComponent if it does not exist
///
///
public abstract SensorComponent GetSensorComponent();
diff --git a/Runtime/HumanoidControl/Scripts/Extensions/HumanoidTracker.cs b/Runtime/HumanoidControl/Scripts/Extensions/HumanoidTracker.cs
index a8136fa..33c2d24 100644
--- a/Runtime/HumanoidControl/Scripts/Extensions/HumanoidTracker.cs
+++ b/Runtime/HumanoidControl/Scripts/Extensions/HumanoidTracker.cs
@@ -8,7 +8,7 @@ namespace Passer.Humanoid {
///
/// A %Humanoid tracker
///
- public class HumanoidTracker : Tracker {
+ public abstract class HumanoidTracker : Tracker {
///
/// The humanoid for this tracker
///
diff --git a/Runtime/HumanoidControl/Scripts/Extensions/Tracker.cs b/Runtime/HumanoidControl/Scripts/Extensions/Tracker.cs
index 66881c5..14a6888 100644
--- a/Runtime/HumanoidControl/Scripts/Extensions/Tracker.cs
+++ b/Runtime/HumanoidControl/Scripts/Extensions/Tracker.cs
@@ -7,7 +7,7 @@ namespace Passer {
///
/// A tracker
///
- public class Tracker {
+ public abstract class Tracker {
///
/// The tracking status
///
@@ -36,6 +36,11 @@ namespace Passer {
/// The tracking device
///
public TrackerComponent trackerComponent;
+ ///
+ /// Returns trackerComponent and creates a new TrackerComponent if it does not exist
+ ///
+ ///
+ public abstract TrackerComponent GetTrackerComponent();
#region SubTrackers
diff --git a/Runtime/HumanoidControl/Scripts/Extensions/UnityXR/UnityXRTracker.cs b/Runtime/HumanoidControl/Scripts/Extensions/UnityXR/UnityXRTracker.cs
index 0ce3d29..2828921 100644
--- a/Runtime/HumanoidControl/Scripts/Extensions/UnityXR/UnityXRTracker.cs
+++ b/Runtime/HumanoidControl/Scripts/Extensions/UnityXR/UnityXRTracker.cs
@@ -129,6 +129,11 @@ namespace Passer.Humanoid {
#region Manage
+ public override TrackerComponent GetTrackerComponent() {
+ CheckTracker(humanoid, UnityXR.Get);
+ return trackerComponent;
+ }
+
public override void CheckTracker(HumanoidControl humanoid) {
CheckTracker(humanoid, UnityXR.Get);
}