Code improvements
This commit is contained in:
parent
ae7112de56
commit
80a5581054
@ -122,7 +122,7 @@ namespace Passer.Humanoid {
|
|||||||
EditorGUILayout.LabelField("Hmd", GUILayout.Width(120));
|
EditorGUILayout.LabelField("Hmd", GUILayout.Width(120));
|
||||||
if (GUILayout.Button("Show")) {
|
if (GUILayout.Button("Show")) {
|
||||||
//headTarget.unityXR.CheckSensor(headTarget);
|
//headTarget.unityXR.CheckSensor(headTarget);
|
||||||
headTarget.unityXR.GetSensorComponent();
|
headTarget.unityXR.CheckSensor(headTarget); //.GetSensorComponent();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -312,7 +312,7 @@ namespace Passer {
|
|||||||
new Hydra_Editor.TrackerProps(serializedObject, targetObjs, humanoid.hydra),
|
new Hydra_Editor.TrackerProps(serializedObject, targetObjs, humanoid.hydra),
|
||||||
#endif
|
#endif
|
||||||
#if hLEAP && (UNITY_STANDALONE_WIN || UNITY_WSA_10_0)
|
#if hLEAP && (UNITY_STANDALONE_WIN || UNITY_WSA_10_0)
|
||||||
new LeapMotion_Editor.TrackerProps(serializedObject, targetObjs, humanoid.leapTracker),
|
new LeapMotion_Editor.TrackerProps(serializedObject, targetObjs, humanoid.leap),
|
||||||
#endif
|
#endif
|
||||||
#if hKINECT1 && (UNITY_STANDALONE_WIN || UNITY_WSA_10_0)
|
#if hKINECT1 && (UNITY_STANDALONE_WIN || UNITY_WSA_10_0)
|
||||||
new Kinect1_Editor.TrackerProps(serializedObject, targetObjs, humanoid.kinect1),
|
new Kinect1_Editor.TrackerProps(serializedObject, targetObjs, humanoid.kinect1),
|
||||||
@ -1082,7 +1082,7 @@ namespace Passer {
|
|||||||
using (new EditorGUILayout.HorizontalScope()) {
|
using (new EditorGUILayout.HorizontalScope()) {
|
||||||
EditorGUILayout.LabelField("Tracker", GUILayout.Width(120));
|
EditorGUILayout.LabelField("Tracker", GUILayout.Width(120));
|
||||||
if (TrackerComponentShowButton())
|
if (TrackerComponentShowButton())
|
||||||
tracker.GetTrackerComponent();
|
tracker.CheckTracker(humanoid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -1136,7 +1136,7 @@ namespace Passer {
|
|||||||
|
|
||||||
private void RemoveControllers() {
|
private void RemoveControllers() {
|
||||||
foreach (HumanoidSensor sensor in tracker.sensors)
|
foreach (HumanoidSensor sensor in tracker.sensors)
|
||||||
RemoveTransform(sensor.sensorTransform);
|
RemoveSensor(sensor.sensorComponent);
|
||||||
|
|
||||||
if (tracker.headSensor != null)
|
if (tracker.headSensor != null)
|
||||||
tracker.headSensor.RemoveController(headSensorProp);
|
tracker.headSensor.RemoveController(headSensorProp);
|
||||||
@ -1152,11 +1152,16 @@ namespace Passer {
|
|||||||
tracker.rightFootSensor.RemoveController(rightFootSensorProp);
|
tracker.rightFootSensor.RemoveController(rightFootSensorProp);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RemoveTransform(Transform trackerTransform) {
|
private void RemoveSensor(Tracking.SensorComponent sensorComponent) {
|
||||||
if (trackerTransform != null)
|
if (sensorComponent != null)
|
||||||
DestroyImmediate(trackerTransform.gameObject, true);
|
DestroyImmediate(sensorComponent.gameObject, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//private void RemoveTransform(Transform trackerTransform) {
|
||||||
|
// if (trackerTransform != null)
|
||||||
|
// DestroyImmediate(trackerTransform.gameObject, true);
|
||||||
|
//}
|
||||||
|
|
||||||
private void SetSensors2Target() {
|
private void SetSensors2Target() {
|
||||||
foreach (HumanoidSensor sensor in tracker.sensors) {
|
foreach (HumanoidSensor sensor in tracker.sensors) {
|
||||||
sensor.SetSensor2Target();
|
sensor.SetSensor2Target();
|
||||||
|
@ -572,7 +572,7 @@ namespace Passer {
|
|||||||
|
|
||||||
public abstract class TargetProps {
|
public abstract class TargetProps {
|
||||||
public SerializedProperty enabledProp;
|
public SerializedProperty enabledProp;
|
||||||
public SerializedProperty sensorTransformProp;
|
public SerializedProperty sensorComponentProp;
|
||||||
public SerializedProperty sensor2TargetPositionProp;
|
public SerializedProperty sensor2TargetPositionProp;
|
||||||
public SerializedProperty sensor2TargetRotationProp;
|
public SerializedProperty sensor2TargetRotationProp;
|
||||||
|
|
||||||
@ -581,7 +581,7 @@ namespace Passer {
|
|||||||
|
|
||||||
public TargetProps(SerializedObject serializedObject, LegSensor _sensor, FootTarget _footTarget, string unitySensorName) {
|
public TargetProps(SerializedObject serializedObject, LegSensor _sensor, FootTarget _footTarget, string unitySensorName) {
|
||||||
enabledProp = serializedObject.FindProperty(unitySensorName + ".enabled");
|
enabledProp = serializedObject.FindProperty(unitySensorName + ".enabled");
|
||||||
sensorTransformProp = serializedObject.FindProperty(unitySensorName + ".sensorTransform");
|
sensorComponentProp = serializedObject.FindProperty(unitySensorName + ".sensorComponent");
|
||||||
sensor2TargetPositionProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetPosition");
|
sensor2TargetPositionProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetPosition");
|
||||||
sensor2TargetRotationProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetRotation");
|
sensor2TargetRotationProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetRotation");
|
||||||
|
|
||||||
@ -592,11 +592,11 @@ namespace Passer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public virtual void SetSensor2Target() {
|
public virtual void SetSensor2Target() {
|
||||||
if (sensor.sensorTransform == null)
|
if (sensor.sensorComponent == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
sensor2TargetRotationProp.quaternionValue = Quaternion.Inverse(sensor.sensorTransform.rotation) * footTarget.foot.target.transform.rotation;
|
sensor2TargetRotationProp.quaternionValue = Quaternion.Inverse(sensor.sensorComponent.transform.rotation) * footTarget.foot.target.transform.rotation;
|
||||||
sensor2TargetPositionProp.vector3Value = -footTarget.foot.target.transform.InverseTransformPoint(sensor.sensorTransform.position);
|
sensor2TargetPositionProp.vector3Value = -footTarget.foot.target.transform.InverseTransformPoint(sensor.sensorComponent.transform.position);
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract void Inspector();
|
public abstract void Inspector();
|
||||||
|
@ -721,7 +721,8 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
public abstract class TargetProps {
|
public abstract class TargetProps {
|
||||||
public SerializedProperty enabledProp;
|
public SerializedProperty enabledProp;
|
||||||
public SerializedProperty sensorTransformProp;
|
//public SerializedProperty sensorTransformProp;
|
||||||
|
public SerializedProperty sensorComponentProp;
|
||||||
public SerializedProperty sensor2TargetPositionProp;
|
public SerializedProperty sensor2TargetPositionProp;
|
||||||
public SerializedProperty sensor2TargetRotationProp;
|
public SerializedProperty sensor2TargetRotationProp;
|
||||||
|
|
||||||
@ -730,7 +731,8 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
public TargetProps(SerializedObject serializedObject, Humanoid.ArmSensor _sensor, HandTarget _handTarget, string unitySensorName) {
|
public TargetProps(SerializedObject serializedObject, Humanoid.ArmSensor _sensor, HandTarget _handTarget, string unitySensorName) {
|
||||||
enabledProp = serializedObject.FindProperty(unitySensorName + ".enabled");
|
enabledProp = serializedObject.FindProperty(unitySensorName + ".enabled");
|
||||||
sensorTransformProp = serializedObject.FindProperty(unitySensorName + ".sensorTransform");
|
//sensorTransformProp = serializedObject.FindProperty(unitySensorName + ".sensorTransform");
|
||||||
|
sensorComponentProp = serializedObject.FindProperty(unitySensorName + ".sensorComponent");
|
||||||
sensor2TargetPositionProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetPosition");
|
sensor2TargetPositionProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetPosition");
|
||||||
sensor2TargetRotationProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetRotation");
|
sensor2TargetRotationProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetRotation");
|
||||||
|
|
||||||
|
@ -507,7 +507,8 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
public abstract class TargetProps {
|
public abstract class TargetProps {
|
||||||
public SerializedProperty enabledProp;
|
public SerializedProperty enabledProp;
|
||||||
public SerializedProperty sensorTransformProp;
|
//public SerializedProperty sensorTransformProp;
|
||||||
|
public SerializedProperty sensorComponentProp;
|
||||||
public SerializedProperty sensor2TargetPositionProp;
|
public SerializedProperty sensor2TargetPositionProp;
|
||||||
public SerializedProperty sensor2TargetRotationProp;
|
public SerializedProperty sensor2TargetRotationProp;
|
||||||
|
|
||||||
@ -516,7 +517,7 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
public TargetProps(SerializedObject serializedObject, HeadSensor _sensor, HeadTarget _headTarget, string unitySensorName) {
|
public TargetProps(SerializedObject serializedObject, HeadSensor _sensor, HeadTarget _headTarget, string unitySensorName) {
|
||||||
enabledProp = serializedObject.FindProperty(unitySensorName + ".enabled");
|
enabledProp = serializedObject.FindProperty(unitySensorName + ".enabled");
|
||||||
sensorTransformProp = serializedObject.FindProperty(unitySensorName + ".sensorTransform");
|
sensorComponentProp = serializedObject.FindProperty(unitySensorName + ".sensorComponent");
|
||||||
sensor2TargetPositionProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetPosition");
|
sensor2TargetPositionProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetPosition");
|
||||||
sensor2TargetRotationProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetRotation");
|
sensor2TargetRotationProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetRotation");
|
||||||
|
|
||||||
@ -527,11 +528,11 @@ namespace Passer.Humanoid {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public virtual void SetSensor2Target() {
|
public virtual void SetSensor2Target() {
|
||||||
if (sensor.sensorTransform == null)
|
if (sensor.sensorComponent == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
sensor2TargetRotationProp.quaternionValue = Quaternion.Inverse(sensor.sensorTransform.rotation) * headTarget.head.target.transform.rotation;
|
sensor2TargetRotationProp.quaternionValue = Quaternion.Inverse(sensor.sensorComponent.transform.rotation) * headTarget.head.target.transform.rotation;
|
||||||
sensor2TargetPositionProp.vector3Value = -headTarget.head.target.transform.InverseTransformPoint(sensor.sensorTransform.position);
|
sensor2TargetPositionProp.vector3Value = -headTarget.head.target.transform.InverseTransformPoint(sensor.sensorComponent.transform.position);
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract void Inspector();
|
public abstract void Inspector();
|
||||||
|
@ -32,7 +32,7 @@ namespace Passer {
|
|||||||
|
|
||||||
private void InitEditors() {
|
private void InitEditors() {
|
||||||
allProps = new TargetProps[] {
|
allProps = new TargetProps[] {
|
||||||
#if hOPENVR && hVIVETRACKER && (UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX)
|
#if hVIVETRACKER
|
||||||
new ViveTracker_Editor.HipsTargetProps(serializedObject, hipsTarget),
|
new ViveTracker_Editor.HipsTargetProps(serializedObject, hipsTarget),
|
||||||
#endif
|
#endif
|
||||||
#if hKINECT1
|
#if hKINECT1
|
||||||
@ -297,7 +297,8 @@ namespace Passer {
|
|||||||
|
|
||||||
public abstract class TargetProps {
|
public abstract class TargetProps {
|
||||||
public SerializedProperty enabledProp;
|
public SerializedProperty enabledProp;
|
||||||
public SerializedProperty sensorTransformProp;
|
//public SerializedProperty sensorTransformProp;
|
||||||
|
public SerializedProperty sensorComponentProp;
|
||||||
public SerializedProperty sensor2TargetPositionProp;
|
public SerializedProperty sensor2TargetPositionProp;
|
||||||
public SerializedProperty sensor2TargetRotationProp;
|
public SerializedProperty sensor2TargetRotationProp;
|
||||||
|
|
||||||
@ -306,7 +307,8 @@ namespace Passer {
|
|||||||
|
|
||||||
public TargetProps(SerializedObject serializedObject, TorsoSensor _sensor, HipsTarget _hipsTarget, string unitySensorName) {
|
public TargetProps(SerializedObject serializedObject, TorsoSensor _sensor, HipsTarget _hipsTarget, string unitySensorName) {
|
||||||
enabledProp = serializedObject.FindProperty(unitySensorName + ".enabled");
|
enabledProp = serializedObject.FindProperty(unitySensorName + ".enabled");
|
||||||
sensorTransformProp = serializedObject.FindProperty(unitySensorName + ".sensorTransform");
|
//sensorTransformProp = serializedObject.FindProperty(unitySensorName + ".sensorTransform");
|
||||||
|
sensorComponentProp = serializedObject.FindProperty(unitySensorName + ".sensorComponent");
|
||||||
sensor2TargetPositionProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetPosition");
|
sensor2TargetPositionProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetPosition");
|
||||||
sensor2TargetRotationProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetRotation");
|
sensor2TargetRotationProp = serializedObject.FindProperty(unitySensorName + ".sensor2TargetRotation");
|
||||||
|
|
||||||
@ -317,11 +319,11 @@ namespace Passer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public virtual void SetSensor2Target() {
|
public virtual void SetSensor2Target() {
|
||||||
if (sensor.sensorTransform == null)
|
if (sensor.sensorComponent == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
sensor2TargetRotationProp.quaternionValue = Quaternion.Inverse(sensor.sensorTransform.rotation) * hipsTarget.hips.target.transform.rotation;
|
sensor2TargetRotationProp.quaternionValue = Quaternion.Inverse(sensor.sensorComponent.transform.rotation) * hipsTarget.hips.target.transform.rotation;
|
||||||
sensor2TargetPositionProp.vector3Value = -hipsTarget.hips.target.transform.InverseTransformPoint(sensor.sensorTransform.position);
|
sensor2TargetPositionProp.vector3Value = -hipsTarget.hips.target.transform.InverseTransformPoint(sensor.sensorComponent.transform.position);
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract void Inspector();
|
public abstract void Inspector();
|
||||||
|
@ -12,9 +12,9 @@ namespace Passer.Humanoid {
|
|||||||
set { }
|
set { }
|
||||||
}
|
}
|
||||||
|
|
||||||
public override SensorComponent GetSensorComponent() {
|
//public override SensorComponent GetSensorComponent() {
|
||||||
return null;
|
// return null;
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
[System.Serializable]
|
[System.Serializable]
|
||||||
@ -26,9 +26,9 @@ namespace Passer.Humanoid {
|
|||||||
set { }
|
set { }
|
||||||
}
|
}
|
||||||
|
|
||||||
public override SensorComponent GetSensorComponent() {
|
//public override SensorComponent GetSensorComponent() {
|
||||||
return null;
|
// return null;
|
||||||
}
|
//}
|
||||||
|
|
||||||
public bool armSwing;
|
public bool armSwing;
|
||||||
[HideInInspector]
|
[HideInInspector]
|
||||||
|
@ -8,10 +8,6 @@ namespace Passer.Humanoid {
|
|||||||
public bool headAnimation = true;
|
public bool headAnimation = true;
|
||||||
public bool faceAnimation = true;
|
public bool faceAnimation = true;
|
||||||
|
|
||||||
public override SensorComponent GetSensorComponent() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Update
|
#region Update
|
||||||
public override void Update() {
|
public override void Update() {
|
||||||
if (!headTarget.humanoid.animatorEnabled || !enabled || headTarget.humanoid.targetsRig.runtimeAnimatorController != null)
|
if (!headTarget.humanoid.animatorEnabled || !enabled || headTarget.humanoid.targetsRig.runtimeAnimatorController != null)
|
||||||
|
@ -8,10 +8,6 @@ namespace Passer.Humanoid {
|
|||||||
private Vector3 positionalVelocity;
|
private Vector3 positionalVelocity;
|
||||||
private Quaternion rotationalVelocity;
|
private Quaternion rotationalVelocity;
|
||||||
|
|
||||||
public override SensorComponent GetSensorComponent() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Start(HumanoidControl _humanoid, Transform targetTransform) {
|
public override void Start(HumanoidControl _humanoid, Transform targetTransform) {
|
||||||
base.Start(_humanoid, targetTransform);
|
base.Start(_humanoid, targetTransform);
|
||||||
}
|
}
|
||||||
|
@ -6,10 +6,6 @@ namespace Passer.Humanoid {
|
|||||||
[System.Serializable]
|
[System.Serializable]
|
||||||
public class LegAnimator : LegSensor {
|
public class LegAnimator : LegSensor {
|
||||||
|
|
||||||
public override SensorComponent GetSensorComponent() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private LegAnimator leftAnimator;
|
private LegAnimator leftAnimator;
|
||||||
private LegAnimator rightAnimator;
|
private LegAnimator rightAnimator;
|
||||||
|
|
||||||
|
@ -6,10 +6,6 @@ namespace Passer.Humanoid {
|
|||||||
[System.Serializable]
|
[System.Serializable]
|
||||||
public class TorsoAnimator : TorsoSensor {
|
public class TorsoAnimator : TorsoSensor {
|
||||||
|
|
||||||
public override SensorComponent GetSensorComponent() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum BodyRotation {
|
public enum BodyRotation {
|
||||||
HeadRotation = 1,
|
HeadRotation = 1,
|
||||||
HeadAndHandRotation = 2,
|
HeadAndHandRotation = 2,
|
||||||
|
@ -93,8 +93,8 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
Init(handTarget);
|
Init(handTarget);
|
||||||
|
|
||||||
SerializedProperty sensorTransformProp = sensorProp.FindPropertyRelative("sensorTransform");
|
//SerializedProperty sensorTransformProp = sensorProp.FindPropertyRelative("sensorTransform");
|
||||||
sensorTransformProp.objectReferenceValue = sensorTransform;
|
//sensorTransformProp.objectReferenceValue = sensorTransform;
|
||||||
|
|
||||||
SerializedProperty targetProp = sensorProp.FindPropertyRelative("target");
|
SerializedProperty targetProp = sensorProp.FindPropertyRelative("target");
|
||||||
targetProp.objectReferenceValue = target;
|
targetProp.objectReferenceValue = target;
|
||||||
@ -103,7 +103,7 @@ namespace Passer.Humanoid {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
CheckSensorTransform();
|
CheckSensorTransform();
|
||||||
sensorTransformProp.objectReferenceValue = sensorTransform;
|
//sensorTransformProp.objectReferenceValue = sensorTransform;
|
||||||
|
|
||||||
ShowSensor(handTarget.humanoid.showRealObjects && handTarget.showRealObjects);
|
ShowSensor(handTarget.humanoid.showRealObjects && handTarget.showRealObjects);
|
||||||
|
|
||||||
@ -114,18 +114,18 @@ namespace Passer.Humanoid {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveController(SerializedProperty sensorProp) {
|
public void RemoveController(SerializedProperty sensorProp) {
|
||||||
if (sensorProp == null)
|
//if (sensorProp == null)
|
||||||
return;
|
// return;
|
||||||
|
|
||||||
SerializedProperty sensorTransformProp = sensorProp.FindPropertyRelative("sensorTransform");
|
//SerializedProperty sensorTransformProp = sensorProp.FindPropertyRelative("sensorTransform");
|
||||||
sensorTransformProp.objectReferenceValue = null;
|
//sensorTransformProp.objectReferenceValue = null;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
public void CheckSensorTransform(Transform targetTransform, bool isLeft) {
|
public void CheckSensorTransform(Transform targetTransform, bool isLeft) {
|
||||||
if (enabled && sensorTransform == null)
|
if (enabled && sensorComponent == null)
|
||||||
CreateSensorTransform(targetTransform, isLeft);
|
CreateSensorTransform(targetTransform, isLeft);
|
||||||
else if (!enabled && sensorTransform != null)
|
else if (!enabled && sensorComponent != null)
|
||||||
RemoveSensorTransform();
|
RemoveSensorTransform();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -136,22 +136,22 @@ namespace Passer.Humanoid {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public override void SetSensor2Target() {
|
public override void SetSensor2Target() {
|
||||||
if (sensorTransform == null || target == null)
|
if (sensorComponent == null || target == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
sensor2TargetRotation = Quaternion.Inverse(sensorTransform.rotation) * target.transform.rotation;
|
sensor2TargetRotation = Quaternion.Inverse(sensorComponent.transform.rotation) * target.transform.rotation;
|
||||||
sensor2TargetPosition = -target.transform.InverseTransformPoint(sensorTransform.position);
|
sensor2TargetPosition = -target.transform.InverseTransformPoint(sensorComponent.transform.position);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void SetSensor2Target(Vector3 targetPosition, Quaternion targetRotation) {
|
public virtual void SetSensor2Target(Vector3 targetPosition, Quaternion targetRotation) {
|
||||||
if (sensorTransform == null)
|
if (sensorComponent == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
sensor2TargetRotation = Quaternion.Inverse(sensorTransform.rotation) * targetRotation;
|
sensor2TargetRotation = Quaternion.Inverse(sensorComponent.transform.rotation) * targetRotation;
|
||||||
//sensor2TargetPosition = -targetTransform.InverseTransformPoint(sensorTransform.position);
|
//sensor2TargetPosition = -targetTransform.InverseTransformPoint(sensorTransform.position);
|
||||||
|
|
||||||
var worldToLocalMatrix = Matrix4x4.TRS(targetPosition, targetRotation, Vector3.one).inverse;
|
var worldToLocalMatrix = Matrix4x4.TRS(targetPosition, targetRotation, Vector3.one).inverse;
|
||||||
sensor2TargetPosition = -worldToLocalMatrix.MultiplyPoint3x4(sensorTransform.position);
|
sensor2TargetPosition = -worldToLocalMatrix.MultiplyPoint3x4(sensorComponent.transform.position);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@ -248,11 +248,11 @@ namespace Passer.Humanoid {
|
|||||||
protected virtual void UpdateHandTargetTransform(Humanoid.Tracking.ArmSensor armSensor) {
|
protected virtual void UpdateHandTargetTransform(Humanoid.Tracking.ArmSensor armSensor) {
|
||||||
if (handTarget.hand.target.transform != null) {
|
if (handTarget.hand.target.transform != null) {
|
||||||
if (armSensor.hand.confidence.rotation > 0 && armSensor.hand.confidence.rotation >= handTarget.hand.target.confidence.rotation) {
|
if (armSensor.hand.confidence.rotation > 0 && armSensor.hand.confidence.rotation >= handTarget.hand.target.confidence.rotation) {
|
||||||
handTarget.hand.target.transform.rotation = sensorTransform.rotation * sensor2TargetRotation;
|
handTarget.hand.target.transform.rotation = sensorComponent.transform.rotation * sensor2TargetRotation;
|
||||||
handTarget.hand.target.confidence.rotation = armSensor.hand.confidence.rotation;
|
handTarget.hand.target.confidence.rotation = armSensor.hand.confidence.rotation;
|
||||||
}
|
}
|
||||||
if (armSensor.hand.confidence.position > 0 && armSensor.hand.confidence.position >= handTarget.hand.target.confidence.position) {
|
if (armSensor.hand.confidence.position > 0 && armSensor.hand.confidence.position >= handTarget.hand.target.confidence.position) {
|
||||||
handTarget.hand.target.transform.position = sensorTransform.position + handTarget.hand.target.transform.rotation * sensor2TargetPosition;
|
handTarget.hand.target.transform.position = sensorComponent.transform.position + handTarget.hand.target.transform.rotation * sensor2TargetPosition;
|
||||||
handTarget.hand.target.confidence.position = armSensor.hand.confidence.position;
|
handTarget.hand.target.confidence.position = armSensor.hand.confidence.position;
|
||||||
}
|
}
|
||||||
else if (handTarget.hand.target.confidence.position == 0) // Hmm. I could insert the arm model here when confidence.rotation > 0.5F for example!
|
else if (handTarget.hand.target.confidence.position == 0) // Hmm. I could insert the arm model here when confidence.rotation > 0.5F for example!
|
||||||
@ -370,19 +370,21 @@ namespace Passer.Humanoid {
|
|||||||
public abstract class ArmController : Humanoid.ArmSensor {
|
public abstract class ArmController : Humanoid.ArmSensor {
|
||||||
protected Humanoid.Tracking.Sensor.ID sensorID;
|
protected Humanoid.Tracking.Sensor.ID sensorID;
|
||||||
protected Controller controllerInput;
|
protected Controller controllerInput;
|
||||||
public Humanoid.Tracking.ArmController oldController;
|
//public Humanoid.Tracking.ArmController oldController;
|
||||||
public Passer.Tracking.ControllerComponent controller;
|
public Passer.Tracking.ControllerComponent controller => sensorComponent as Passer.Tracking.ControllerComponent;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public override Tracker.Status status {
|
public override Tracker.Status status {
|
||||||
get {
|
get {
|
||||||
if (oldController == null)
|
if (sensorComponent == null)
|
||||||
return Tracker.Status.Unavailable;
|
return Tracker.Status.Unavailable;
|
||||||
else
|
else
|
||||||
return oldController.status;
|
return sensorComponent.status;
|
||||||
}
|
}
|
||||||
set {
|
set {
|
||||||
if (oldController != null)
|
if (sensorComponent != null)
|
||||||
oldController.status = value;
|
sensorComponent.status = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -399,11 +401,11 @@ namespace Passer.Humanoid {
|
|||||||
if (tracker == null || !tracker.enabled || !enabled)
|
if (tracker == null || !tracker.enabled || !enabled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
oldController.Update();
|
//oldController.Update();
|
||||||
if (oldController.status != Tracker.Status.Tracking)
|
//if (oldController.status != Tracker.Status.Tracking)
|
||||||
return;
|
// return;
|
||||||
|
|
||||||
UpdateSensorTransform(oldController);
|
//UpdateSensorTransform(oldController);
|
||||||
UpdateTargetTransform();
|
UpdateTargetTransform();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,13 +7,13 @@ namespace Passer.Humanoid {
|
|||||||
using Passer.Tracking;
|
using Passer.Tracking;
|
||||||
|
|
||||||
public abstract class HeadSensor : HumanoidSensor {
|
public abstract class HeadSensor : HumanoidSensor {
|
||||||
protected HeadTarget headTarget {
|
protected HeadTarget headTarget => target as HeadTarget;
|
||||||
get { return target as HeadTarget; }
|
// get { return target as HeadTarget; }
|
||||||
}
|
//}
|
||||||
|
|
||||||
protected HumanoidControl humanoid => headTarget.humanoid;
|
protected HumanoidControl humanoid => headTarget.humanoid;
|
||||||
|
|
||||||
protected new Tracking.HeadSensor sensor;
|
//protected new Tracking.HeadSensor sensor;
|
||||||
|
|
||||||
|
|
||||||
#region Manage
|
#region Manage
|
||||||
@ -42,8 +42,8 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
Init(target);
|
Init(target);
|
||||||
|
|
||||||
SerializedProperty sensorTransformProp = sensorProp.FindPropertyRelative("sensorTransform");
|
//SerializedProperty sensorTransformProp = sensorProp.FindPropertyRelative("sensorTransform");
|
||||||
sensorTransformProp.objectReferenceValue = sensorTransform;
|
//sensorTransformProp.objectReferenceValue = sensorTransform;
|
||||||
|
|
||||||
SerializedProperty targetProp = sensorProp.FindPropertyRelative("target");
|
SerializedProperty targetProp = sensorProp.FindPropertyRelative("target");
|
||||||
targetProp.objectReferenceValue = base.target;
|
targetProp.objectReferenceValue = base.target;
|
||||||
@ -61,11 +61,11 @@ namespace Passer.Humanoid {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveController(SerializedProperty sensorProp) {
|
public void RemoveController(SerializedProperty sensorProp) {
|
||||||
if (sensorProp == null)
|
//if (sensorProp == null)
|
||||||
return;
|
// return;
|
||||||
|
|
||||||
SerializedProperty sensorTransformProp = sensorProp.FindPropertyRelative("sensorTransform");
|
//SerializedProperty sensorTransformProp = sensorProp.FindPropertyRelative("sensorTransform");
|
||||||
sensorTransformProp.objectReferenceValue = null;
|
//sensorTransformProp.objectReferenceValue = null;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -79,13 +79,13 @@ namespace Passer.Humanoid {
|
|||||||
if (tracker == null || !tracker.enabled || !enabled)
|
if (tracker == null || !tracker.enabled || !enabled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
status = sensor.Update();
|
//status = sensor.Update();
|
||||||
UpdateSensorTransform(sensor);
|
//UpdateSensorTransform(sensor);
|
||||||
|
|
||||||
if (status != Tracker.Status.Tracking)
|
//if (status != Tracker.Status.Tracking)
|
||||||
return;
|
// return;
|
||||||
|
|
||||||
UpdateHeadTargetTransform(sensor);
|
//UpdateHeadTargetTransform(sensor);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void UpdateHeadTargetTransform(Humanoid.Tracking.HeadSensor headTracker) {
|
protected virtual void UpdateHeadTargetTransform(Humanoid.Tracking.HeadSensor headTracker) {
|
||||||
|
@ -12,7 +12,7 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
public new virtual HumanoidTracker tracker => null;
|
public new virtual HumanoidTracker tracker => null;
|
||||||
|
|
||||||
protected Tracking.Sensor sensor;
|
//protected Tracking.Sensor sensor;
|
||||||
|
|
||||||
[System.NonSerialized]
|
[System.NonSerialized]
|
||||||
public const string _name = "";
|
public const string _name = "";
|
||||||
@ -30,9 +30,9 @@ namespace Passer.Humanoid {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public virtual void CheckSensorTransform() {
|
public virtual void CheckSensorTransform() {
|
||||||
if (enabled && sensorTransform == null)
|
if (enabled && sensorComponent == null)
|
||||||
CreateSensorTransform();
|
CreateSensorTransform();
|
||||||
else if (!enabled && sensorTransform != null)
|
else if (!enabled && sensorComponent != null)
|
||||||
RemoveSensorTransform();
|
RemoveSensorTransform();
|
||||||
|
|
||||||
if (sensor2TargetRotation.x + sensor2TargetRotation.y + sensor2TargetRotation.z + sensor2TargetRotation.w == 0)
|
if (sensor2TargetRotation.x + sensor2TargetRotation.y + sensor2TargetRotation.z + sensor2TargetRotation.w == 0)
|
||||||
@ -57,8 +57,9 @@ namespace Passer.Humanoid {
|
|||||||
sensorObject.name = resourceName;
|
sensorObject.name = resourceName;
|
||||||
}
|
}
|
||||||
|
|
||||||
sensorTransform = sensorObject.transform;
|
//sensorTransform = sensorObject.transform;
|
||||||
sensorTransform.parent = tracker.trackerComponent.transform;
|
//tracker.trackerComponent = tracker.GetTrackerComponent();
|
||||||
|
sensorObject.transform.parent = tracker.trackerComponent.transform;
|
||||||
|
|
||||||
sensor2TargetPosition = -_sensor2TargetPosition;
|
sensor2TargetPosition = -_sensor2TargetPosition;
|
||||||
sensor2TargetRotation = Quaternion.Inverse(_sensor2TargetRotation);
|
sensor2TargetRotation = Quaternion.Inverse(_sensor2TargetRotation);
|
||||||
@ -68,17 +69,17 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
protected void RemoveSensorTransform() {
|
protected void RemoveSensorTransform() {
|
||||||
if (Application.isPlaying)
|
if (Application.isPlaying)
|
||||||
Object.Destroy(sensorTransform.gameObject);
|
Object.Destroy(sensorComponent.gameObject);
|
||||||
else
|
else
|
||||||
Object.DestroyImmediate(sensorTransform.gameObject, true);
|
Object.DestroyImmediate(sensorComponent.gameObject, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void SetSensor2Target() {
|
public virtual void SetSensor2Target() {
|
||||||
if (sensorTransform == null || target == null)
|
if (sensorComponent == null || target == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
sensor2TargetRotation = Quaternion.Inverse(sensorTransform.rotation) * target.transform.rotation;
|
sensor2TargetRotation = Quaternion.Inverse(sensorComponent.transform.rotation) * target.transform.rotation;
|
||||||
sensor2TargetPosition = -InverseTransformPointUnscaled(target.transform, sensorTransform.position);
|
sensor2TargetPosition = -InverseTransformPointUnscaled(target.transform, sensorComponent.transform.position);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Vector3 InverseTransformPointUnscaled(Transform transform, Vector3 position) {
|
public static Vector3 InverseTransformPointUnscaled(Transform transform, Vector3 position) {
|
||||||
@ -92,28 +93,28 @@ namespace Passer.Humanoid {
|
|||||||
if (tracker == null || !tracker.enabled || !enabled)
|
if (tracker == null || !tracker.enabled || !enabled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (sensor == null)
|
//if (sensor == null)
|
||||||
return;
|
// return;
|
||||||
|
|
||||||
sensor.Update();
|
//sensor.Update();
|
||||||
if (sensor.status != Tracker.Status.Tracking)
|
//if (sensor.status != Tracker.Status.Tracking)
|
||||||
return;
|
// return;
|
||||||
|
|
||||||
UpdateSensorTransform(sensor);
|
//UpdateSensorTransform(sensor);
|
||||||
UpdateTargetTransform();
|
UpdateTargetTransform();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void UpdateSensorTransform(Tracking.Sensor sensor) {
|
protected void UpdateSensorTransform(Tracking.Sensor sensor) {
|
||||||
if (sensorTransform == null)
|
if (sensorComponent == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (status == Tracker.Status.Tracking) {
|
if (status == Tracker.Status.Tracking) {
|
||||||
sensorTransform.gameObject.SetActive(true);
|
sensorComponent.gameObject.SetActive(true);
|
||||||
sensorTransform.position = HumanoidTarget.ToVector3(sensor.sensorPosition);
|
sensorComponent.transform.position = HumanoidTarget.ToVector3(sensor.sensorPosition);
|
||||||
sensorTransform.rotation = HumanoidTarget.ToQuaternion(sensor.sensorRotation);
|
sensorComponent.transform.rotation = HumanoidTarget.ToQuaternion(sensor.sensorRotation);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
sensorTransform.gameObject.SetActive(false);
|
sensorComponent.gameObject.SetActive(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -124,11 +125,11 @@ namespace Passer.Humanoid {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sensorTransform == null)
|
if (sensorComponent == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
sensorTransform.position = TransformPointUnscaled(targetTransform, -sensor2TargetPosition);
|
sensorComponent.transform.position = TransformPointUnscaled(targetTransform, -sensor2TargetPosition);
|
||||||
sensorTransform.rotation = targetTransform.rotation * Quaternion.Inverse(sensor2TargetRotation);
|
sensorComponent.transform.rotation = targetTransform.rotation * Quaternion.Inverse(sensor2TargetRotation);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static Vector3 TransformPointUnscaled(Transform transform, Vector3 position) {
|
protected static Vector3 TransformPointUnscaled(Transform transform, Vector3 position) {
|
||||||
@ -137,8 +138,8 @@ namespace Passer.Humanoid {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void UpdateTargetTransform() {
|
protected virtual void UpdateTargetTransform() {
|
||||||
target.transform.rotation = sensorTransform.rotation * sensor2TargetRotation;
|
target.transform.rotation = sensorComponent.transform.rotation * sensor2TargetRotation;
|
||||||
target.transform.position = sensorTransform.position + target.transform.rotation * sensor2TargetPosition;
|
target.transform.position = sensorComponent.transform.position + target.transform.rotation * sensor2TargetPosition;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -39,8 +39,8 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
Init(footTarget);
|
Init(footTarget);
|
||||||
|
|
||||||
SerializedProperty sensorTransformProp = sensorProp.FindPropertyRelative("sensorTransform");
|
//SerializedProperty sensorTransformProp = sensorProp.FindPropertyRelative("sensorTransform");
|
||||||
sensorTransformProp.objectReferenceValue = sensorTransform;
|
//sensorTransformProp.objectReferenceValue = sensorTransform;
|
||||||
|
|
||||||
SerializedProperty targetProp = sensorProp.FindPropertyRelative("target");
|
SerializedProperty targetProp = sensorProp.FindPropertyRelative("target");
|
||||||
targetProp.objectReferenceValue = target;
|
targetProp.objectReferenceValue = target;
|
||||||
@ -49,7 +49,7 @@ namespace Passer.Humanoid {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
CheckSensorTransform();
|
CheckSensorTransform();
|
||||||
sensorTransformProp.objectReferenceValue = sensorTransform;
|
//sensorTransformProp.objectReferenceValue = sensorTransform;
|
||||||
|
|
||||||
ShowSensor(footTarget.humanoid.showRealObjects && footTarget.showRealObjects);
|
ShowSensor(footTarget.humanoid.showRealObjects && footTarget.showRealObjects);
|
||||||
|
|
||||||
|
@ -13,15 +13,9 @@ namespace Passer {
|
|||||||
|
|
||||||
public virtual string name { get { return ""; } }
|
public virtual string name { get { return ""; } }
|
||||||
|
|
||||||
public Transform sensorTransform;
|
//public Transform sensorTransform;
|
||||||
|
|
||||||
public SensorComponent sensorComponent;
|
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) {
|
public virtual void Start(Transform targetTransform) {
|
||||||
target = targetTransform.GetComponent<Target>();
|
target = targetTransform.GetComponent<Target>();
|
||||||
@ -33,13 +27,16 @@ namespace Passer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public virtual void ShowSensor(bool shown) {
|
public virtual void ShowSensor(bool shown) {
|
||||||
if (sensorTransform == null)
|
if (sensorComponent == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!Application.isPlaying)
|
//if (sensorTransform == null)
|
||||||
sensorTransform.gameObject.SetActive(shown);
|
// return;
|
||||||
|
|
||||||
Renderer[] renderers = sensorTransform.GetComponentsInChildren<Renderer>();
|
if (!Application.isPlaying)
|
||||||
|
sensorComponent.gameObject.SetActive(shown);
|
||||||
|
|
||||||
|
Renderer[] renderers = sensorComponent.GetComponentsInChildren<Renderer>();
|
||||||
for (int i = 0; i < renderers.Length; i++) {
|
for (int i = 0; i < renderers.Length; i++) {
|
||||||
if (!(renderers[i] is LineRenderer))
|
if (!(renderers[i] is LineRenderer))
|
||||||
renderers[i].enabled = shown;
|
renderers[i].enabled = shown;
|
||||||
|
@ -15,7 +15,7 @@ namespace Passer.Humanoid {
|
|||||||
protected HumanoidControl humanoid => hipsTarget.humanoid;
|
protected HumanoidControl humanoid => hipsTarget.humanoid;
|
||||||
|
|
||||||
//public SensorComponent sensorComponent;
|
//public SensorComponent sensorComponent;
|
||||||
protected new Tracking.TorsoSensor sensor;
|
//protected new Tracking.TorsoSensor sensor;
|
||||||
|
|
||||||
#region Manage
|
#region Manage
|
||||||
|
|
||||||
@ -43,8 +43,8 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
Init(hipsTarget);
|
Init(hipsTarget);
|
||||||
|
|
||||||
SerializedProperty sensorTransformProp = sensorProp.FindPropertyRelative("sensorTransform");
|
//SerializedProperty sensorTransformProp = sensorProp.FindPropertyRelative("sensorTransform");
|
||||||
sensorTransformProp.objectReferenceValue = sensorTransform;
|
//sensorTransformProp.objectReferenceValue = sensorTransform;
|
||||||
|
|
||||||
SerializedProperty targetProp = sensorProp.FindPropertyRelative("target");
|
SerializedProperty targetProp = sensorProp.FindPropertyRelative("target");
|
||||||
targetProp.objectReferenceValue = target;
|
targetProp.objectReferenceValue = target;
|
||||||
@ -53,7 +53,7 @@ namespace Passer.Humanoid {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
CheckSensorTransform();
|
CheckSensorTransform();
|
||||||
sensorTransformProp.objectReferenceValue = sensorTransform;
|
//sensorTransformProp.objectReferenceValue = sensorTransform;
|
||||||
|
|
||||||
ShowSensor(hipsTarget.humanoid.showRealObjects && hipsTarget.showRealObjects);
|
ShowSensor(hipsTarget.humanoid.showRealObjects && hipsTarget.showRealObjects);
|
||||||
|
|
||||||
|
@ -36,11 +36,12 @@ namespace Passer {
|
|||||||
/// The tracking device
|
/// The tracking device
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public TrackerComponent trackerComponent;
|
public TrackerComponent trackerComponent;
|
||||||
/// <summary>
|
|
||||||
/// Returns trackerComponent and creates a new TrackerComponent if it does not exist
|
///// <summary>
|
||||||
/// </summary>
|
///// Returns trackerComponent and creates a new TrackerComponent if it does not exist
|
||||||
/// <returns></returns>
|
///// </summary>
|
||||||
public abstract TrackerComponent GetTrackerComponent();
|
///// <returns></returns>
|
||||||
|
//public abstract TrackerComponent GetTrackerComponent();
|
||||||
|
|
||||||
#region SubTrackers
|
#region SubTrackers
|
||||||
|
|
||||||
|
@ -8,79 +8,61 @@ namespace Passer.Humanoid {
|
|||||||
#if pUNITYXR
|
#if pUNITYXR
|
||||||
public override string name => "Unity XR";
|
public override string name => "Unity XR";
|
||||||
|
|
||||||
#if hCUSTOM
|
|
||||||
public override HumanoidTracker tracker => humanoid.unityXR;
|
public override HumanoidTracker tracker => humanoid.unityXR;
|
||||||
#endif
|
// public override SensorComponent GetSensorComponent() {
|
||||||
public override SensorComponent GetSensorComponent() {
|
// if (sensorComponent != null)
|
||||||
if (sensorComponent != null)
|
// return sensorComponent;
|
||||||
return sensorComponent;
|
|
||||||
|
|
||||||
Vector3 position = handTarget.transform.TransformPoint(handTarget.isLeft ? -0.1F : 0.1F, -0.05F, 0.04F);
|
// Vector3 position = handTarget.transform.TransformPoint(handTarget.isLeft ? -0.1F : 0.1F, -0.05F, 0.04F);
|
||||||
Quaternion localRotation = handTarget.isLeft ? Quaternion.Euler(180, 90, 90) : Quaternion.Euler(180, -90, -90);
|
// Quaternion localRotation = handTarget.isLeft ? Quaternion.Euler(180, 90, 90) : Quaternion.Euler(180, -90, -90);
|
||||||
Quaternion rotation = handTarget.transform.rotation * localRotation;
|
// Quaternion rotation = handTarget.transform.rotation * localRotation;
|
||||||
#if hSTEAMVR
|
//#if hSTEAMVR
|
||||||
if (UnityXRDevice.xrDevice == UnityXRDevice.XRDeviceType.OpenVR) {
|
// if (UnityXRDevice.xrDevice == UnityXRDevice.XRDeviceType.OpenVR) {
|
||||||
SteamVR steamVR = unityXR.trackerComponent as SteamVR;
|
// SteamVR steamVR = unityXR.trackerComponent as SteamVR;
|
||||||
controller = steamVR.GetController(handTarget.isLeft, position, rotation);
|
// controller = steamVR.GetController(handTarget.isLeft, position, rotation);
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
#endif
|
//#endif
|
||||||
{
|
// {
|
||||||
UnityXR unityXRcomponent = unityXR.trackerComponent as UnityXR;
|
// UnityXR unityXRcomponent = unityXR.trackerComponent as UnityXR;
|
||||||
controller = unityXRcomponent.GetController(handTarget.isLeft, position, rotation);
|
// controller = unityXRcomponent.GetController(handTarget.isLeft, position, rotation);
|
||||||
}
|
// }
|
||||||
return controller as SensorComponent;
|
// return controller as SensorComponent;
|
||||||
}
|
// }
|
||||||
|
|
||||||
protected UnityXRTracker unityXR => humanoid.unityXR;
|
protected UnityXR unityXR => tracker.trackerComponent as UnityXR;
|
||||||
|
|
||||||
#region Manage
|
#region Manage
|
||||||
|
|
||||||
public override void CheckSensor(HandTarget handTarget) {
|
public override void CheckSensor(HandTarget handTarget) {
|
||||||
#if pUNITYXR
|
|
||||||
if (this.handTarget == null)
|
if (this.handTarget == null)
|
||||||
this.target = handTarget;
|
this.target = handTarget;
|
||||||
if (this.handTarget == null)
|
if (this.handTarget == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (unityXR.trackerComponent == null && enabled)
|
if (tracker.trackerComponent == null && enabled)
|
||||||
unityXR.CheckTracker(handTarget.humanoid);
|
tracker.CheckTracker(humanoid);
|
||||||
|
|
||||||
if (enabled && unityXR.trackerComponent != null && unityXR.trackerComponent.enabled) {
|
if (enabled && tracker.trackerComponent != null && tracker.trackerComponent.enabled) {
|
||||||
if (controller == null) {
|
if (sensorComponent == null) {
|
||||||
Vector3 position = handTarget.transform.TransformPoint(handTarget.isLeft ? -0.1F : 0.1F, -0.05F, 0.04F);
|
Vector3 position = handTarget.transform.TransformPoint(handTarget.isLeft ? -0.1F : 0.1F, -0.05F, 0.04F);
|
||||||
Quaternion localRotation = handTarget.isLeft ? Quaternion.Euler(180, 90, 90) : Quaternion.Euler(180, -90, -90);
|
Quaternion localRotation = handTarget.isLeft ? Quaternion.Euler(180, 90, 90) : Quaternion.Euler(180, -90, -90);
|
||||||
Quaternion rotation = handTarget.transform.rotation * localRotation;
|
Quaternion rotation = handTarget.transform.rotation * localRotation;
|
||||||
#if hSTEAMVR
|
sensorComponent = unityXR.GetController(handTarget.isLeft, position, rotation);
|
||||||
if (UnityXRDevice.xrDevice == UnityXRDevice.XRDeviceType.OpenVR) {
|
|
||||||
SteamVR steamVR = unityXR.trackerComponent as SteamVR;
|
|
||||||
controller = steamVR.GetController(handTarget.isLeft, position, rotation);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
UnityXR unityXRcomponent = unityXR.trackerComponent as UnityXR;
|
|
||||||
controller = unityXRcomponent.GetController(handTarget.isLeft, position, rotation);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (controller != null)
|
|
||||||
sensorTransform = controller.transform;
|
|
||||||
|
|
||||||
if (!Application.isPlaying)
|
if (!Application.isPlaying)
|
||||||
SetSensor2Target();
|
SetSensor2Target();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
if (!Application.isPlaying) {
|
if (!Application.isPlaying) {
|
||||||
if (controller != null)
|
if (sensorComponent != null)
|
||||||
Object.DestroyImmediate(controller.gameObject, true);
|
Object.DestroyImmediate(sensorComponent.gameObject, true);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
controller = null;
|
sensorComponent = null;
|
||||||
sensorTransform = null;
|
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Manage
|
#endregion Manage
|
||||||
@ -98,13 +80,13 @@ namespace Passer.Humanoid {
|
|||||||
Quaternion localRotation = handTarget.isLeft ? Quaternion.Euler(180, 90, 90) : Quaternion.Euler(180, -90, -90);
|
Quaternion localRotation = handTarget.isLeft ? Quaternion.Euler(180, 90, 90) : Quaternion.Euler(180, -90, -90);
|
||||||
Quaternion rotation = handTarget.transform.rotation * localRotation;
|
Quaternion rotation = handTarget.transform.rotation * localRotation;
|
||||||
|
|
||||||
UnityXR unityXRcomponent = unityXR.trackerComponent as UnityXR;
|
UnityXR unityXRcomponent = unityXR; //.trackerComponent as UnityXR;
|
||||||
if (unityXRcomponent != null)
|
if (unityXRcomponent != null)
|
||||||
controller = unityXRcomponent.GetController(handTarget.isLeft, position, rotation);
|
sensorComponent = unityXRcomponent.GetController(handTarget.isLeft, position, rotation);
|
||||||
|
|
||||||
if (controller != null) {
|
if (sensorComponent != null) {
|
||||||
controller.show = handTarget.humanoid.showRealObjects && handTarget.showRealObjects;
|
sensorComponent.show = handTarget.humanoid.showRealObjects && handTarget.showRealObjects;
|
||||||
sensorTransform = controller.transform;
|
//sensorTransform = controller.transform;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetSensor2Target();
|
SetSensor2Target();
|
||||||
|
@ -15,26 +15,26 @@ namespace Passer.Humanoid {
|
|||||||
public UnityXR unityXR => tracker.trackerComponent as UnityXR;
|
public UnityXR unityXR => tracker.trackerComponent as UnityXR;
|
||||||
//protected UnityXRTracker unityXR => humanoid.unityXR;
|
//protected UnityXRTracker unityXR => humanoid.unityXR;
|
||||||
|
|
||||||
public override SensorComponent GetSensorComponent() {
|
//public override SensorComponent GetSensorComponent() {
|
||||||
if (sensorComponent != null)
|
// if (sensorComponent != null)
|
||||||
return sensorComponent;
|
// return sensorComponent;
|
||||||
|
|
||||||
// Make sure the unityXR component exists
|
// // Make sure the unityXR component exists
|
||||||
humanoid.unityXR.GetTrackerComponent();
|
// humanoid.unityXR.CheckTracker(humanoid);
|
||||||
|
|
||||||
Vector3 position = headTarget.transform.TransformPoint(headTarget.head2eyes);
|
// Vector3 position = headTarget.transform.TransformPoint(headTarget.head2eyes);
|
||||||
Quaternion rotation = headTarget.transform.rotation;
|
// Quaternion rotation = headTarget.transform.rotation;
|
||||||
UnityXR unityXRtracker = tracker.trackerComponent as UnityXR;
|
// UnityXR unityXRtracker = tracker.trackerComponent as UnityXR;
|
||||||
sensorComponent = unityXRtracker.GetHmd(position, rotation);
|
// sensorComponent = unityXRtracker.GetHmd(position, rotation);
|
||||||
|
|
||||||
if (sensorComponent != null)
|
// //if (sensorComponent != null)
|
||||||
sensorTransform = sensorComponent.transform;
|
// // sensorTransform = sensorComponent.transform;
|
||||||
|
|
||||||
if (!Application.isPlaying)
|
// if (!Application.isPlaying)
|
||||||
SetSensor2Target();
|
// SetSensor2Target();
|
||||||
|
|
||||||
return sensorComponent;
|
// return sensorComponent;
|
||||||
}
|
//}
|
||||||
|
|
||||||
#region Manage
|
#region Manage
|
||||||
|
|
||||||
@ -44,19 +44,15 @@ namespace Passer.Humanoid {
|
|||||||
if (this.headTarget == null)
|
if (this.headTarget == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (tracker.trackerComponent == null) {
|
if (tracker.trackerComponent == null)
|
||||||
tracker.CheckTracker(humanoid);
|
tracker.CheckTracker(humanoid);
|
||||||
}
|
|
||||||
|
|
||||||
if (enabled && tracker.trackerComponent != null && tracker.trackerComponent.enabled) {
|
if (enabled && tracker.trackerComponent != null && tracker.trackerComponent.enabled) {
|
||||||
if (sensorComponent == null) {
|
if (sensorComponent == null) {
|
||||||
Vector3 position = headTarget.transform.TransformPoint(headTarget.head2eyes);
|
Vector3 position = headTarget.transform.TransformPoint(headTarget.head2eyes);
|
||||||
Quaternion rotation = headTarget.transform.rotation;
|
Quaternion rotation = headTarget.transform.rotation;
|
||||||
UnityXR unityXRtracker = tracker.trackerComponent as UnityXR;
|
sensorComponent = unityXR.GetHmd(position, rotation);
|
||||||
sensorComponent = unityXRtracker.GetHmd(position, rotation);
|
|
||||||
}
|
}
|
||||||
if (sensorComponent != null)
|
|
||||||
sensorTransform = sensorComponent.transform;
|
|
||||||
|
|
||||||
if (!Application.isPlaying)
|
if (!Application.isPlaying)
|
||||||
SetSensor2Target();
|
SetSensor2Target();
|
||||||
@ -69,7 +65,6 @@ namespace Passer.Humanoid {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
sensorComponent = null;
|
sensorComponent = null;
|
||||||
sensorTransform = null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -112,8 +107,8 @@ namespace Passer.Humanoid {
|
|||||||
UnityXR unityXRtracker = tracker.trackerComponent as UnityXR;
|
UnityXR unityXRtracker = tracker.trackerComponent as UnityXR;
|
||||||
sensorComponent = unityXRtracker.GetHmd(position, rotation);
|
sensorComponent = unityXRtracker.GetHmd(position, rotation);
|
||||||
}
|
}
|
||||||
if (sensorComponent != null)
|
//if (sensorComponent != null)
|
||||||
sensorTransform = sensorComponent.transform;
|
// sensorTransform = sensorComponent.transform;
|
||||||
|
|
||||||
SetSensor2Target();
|
SetSensor2Target();
|
||||||
CheckSensorTransform();
|
CheckSensorTransform();
|
||||||
|
@ -129,11 +129,6 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
#region Manage
|
#region Manage
|
||||||
|
|
||||||
public override TrackerComponent GetTrackerComponent() {
|
|
||||||
CheckTracker(humanoid, UnityXR.Get);
|
|
||||||
return trackerComponent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void CheckTracker(HumanoidControl humanoid) {
|
public override void CheckTracker(HumanoidControl humanoid) {
|
||||||
CheckTracker(humanoid, UnityXR.Get);
|
CheckTracker(humanoid, UnityXR.Get);
|
||||||
}
|
}
|
||||||
|
@ -688,6 +688,7 @@ namespace Passer.Humanoid {
|
|||||||
|
|
||||||
/// <summary>Checks the humanoid for presence of Targets and adds them if they are not found </summary>
|
/// <summary>Checks the humanoid for presence of Targets and adds them if they are not found </summary>
|
||||||
public void DetermineTargets() {
|
public void DetermineTargets() {
|
||||||
|
CheckTargetRig(this);
|
||||||
HeadTarget.DetermineTarget(this);
|
HeadTarget.DetermineTarget(this);
|
||||||
HandTarget.DetermineTarget(this, true);
|
HandTarget.DetermineTarget(this, true);
|
||||||
HandTarget.DetermineTarget(this, false);
|
HandTarget.DetermineTarget(this, false);
|
||||||
@ -762,7 +763,7 @@ namespace Passer.Humanoid {
|
|||||||
public void UpdateSensorsFromTargets() {
|
public void UpdateSensorsFromTargets() {
|
||||||
#if hLEAP
|
#if hLEAP
|
||||||
// temporary solution? Leap may need a Head Sensor Component for the camera tracker?
|
// temporary solution? Leap may need a Head Sensor Component for the camera tracker?
|
||||||
leapTracker.UpdateTrackerFromTarget(leapTracker.isHeadMounted);
|
leap.UpdateTrackerFromTarget(leap.isHeadMounted);
|
||||||
#endif
|
#endif
|
||||||
hipsTarget.UpdateSensorsFromTarget();
|
hipsTarget.UpdateSensorsFromTarget();
|
||||||
headTarget.UpdateSensorsFromTarget();
|
headTarget.UpdateSensorsFromTarget();
|
||||||
@ -1023,7 +1024,7 @@ namespace Passer.Humanoid {
|
|||||||
#endif
|
#endif
|
||||||
/// <summary>The Leap Motion tracker</summary>
|
/// <summary>The Leap Motion tracker</summary>
|
||||||
#if hLEAP
|
#if hLEAP
|
||||||
public LeapTracker leapTracker = new LeapTracker();
|
public LeapTracker leap = new LeapTracker();
|
||||||
#endif
|
#endif
|
||||||
/// <summary>The Intel RealSense tracker</summary>
|
/// <summary>The Intel RealSense tracker</summary>
|
||||||
#if hREALSENSE
|
#if hREALSENSE
|
||||||
@ -1119,7 +1120,7 @@ namespace Passer.Humanoid {
|
|||||||
neuronTracker,
|
neuronTracker,
|
||||||
#endif
|
#endif
|
||||||
#if hLEAP
|
#if hLEAP
|
||||||
leapTracker,
|
leap,
|
||||||
#endif
|
#endif
|
||||||
#if hREALSENSE
|
#if hREALSENSE
|
||||||
realsense,
|
realsense,
|
||||||
@ -1358,7 +1359,7 @@ namespace Passer.Humanoid {
|
|||||||
#region Stop
|
#region Stop
|
||||||
public void OnApplicationQuit() {
|
public void OnApplicationQuit() {
|
||||||
#if hLEAP
|
#if hLEAP
|
||||||
leapTracker.StopTracker();
|
leap.StopTracker();
|
||||||
#endif
|
#endif
|
||||||
#if hNEURON
|
#if hNEURON
|
||||||
neuronTracker.StopTracker();
|
neuronTracker.StopTracker();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user