123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- #if ENABLE_VR || ENABLE_AR
- using UnityEngine.XR.LegacyInputHelpers;
- namespace UnityEditor.XR.LegacyInputHelpers
- {
- [CustomEditor(typeof(SwingArmModel))]
- internal class SwingArmModelEditor : ArmModelEditor
- {
- protected static class SwingArmModelStyles
- {
- public static GUIContent rotationRatioLabel = EditorGUIUtility.TrTextContent("Rotation Ratio");
- public static GUIContent shoulderRotationRatioLabel = EditorGUIUtility.TrTextContent("Shoulder", "Portion of controller rotation applied to the shoulder joint");
- public static GUIContent elbowRotationRatioLabel = EditorGUIUtility.TrTextContent("Elbow", "Portion of controller rotation applied to the elbow joint");
- public static GUIContent wristRotationRatioLabel = EditorGUIUtility.TrTextContent("Wrist", "Portion of controller rotation applied to the wrist joint");
- public static GUIContent shiftedRotationRatioLabel = EditorGUIUtility.TrTextContent("Shifted Rotation Ratio");
- public static GUIContent shiftedShoulderRotationRatioLabel = EditorGUIUtility.TrTextContent("Shifted Shoulder","Portion of controller rotation applied to the shoulder joint when the controller is backwards");
- public static GUIContent shiftedElbowRotationRatioLabel = EditorGUIUtility.TrTextContent("Shifted Elbow", "Portion of controller rotation applied to the elbow joint when the controller is backwards");
- public static GUIContent shiftedWristRotationRatioLabel = EditorGUIUtility.TrTextContent("Shifted Wrist", "Portion of controller rotation applied to the wrist joint when the controller is backwards");
- public static GUIContent jointShiftAngleLabel = EditorGUIUtility.TrTextContent("Joint Shift Angle", "The min/max angle of the controller before starting to lerp towards the shifted joint ratios");
- public static GUIContent jointShiftExponentLabel = EditorGUIUtility.TrTextContent("Joint Shift Exponent", "Exponent applied to the joint shift ratio to control the curve of the shift");
- }
- SerializedProperty m_ShoulderRotationRatioProp = null;
- SerializedProperty m_EblowRotationRatioProp = null;
- SerializedProperty m_WristRotationRatioProp = null;
- SerializedProperty m_ShiftedShoulderRotationRatioProp = null;
- SerializedProperty m_ShiftedEblowRotationRatioProp = null;
- SerializedProperty m_ShiftedWristRotationRatioProp = null;
- SerializedProperty m_JointShiftAngleProp = null;
- SerializedProperty m_JointShiftExponentProp = null;
- bool m_ExpandShoulder = false;
- bool m_ExpandShiftedShoulder = false;
- protected override void OnEnable()
- {
- base.OnEnable();
- m_ShoulderRotationRatioProp = this.serializedObject.FindProperty("m_ShoulderRotationRatio");
- m_EblowRotationRatioProp = this.serializedObject.FindProperty("m_ElbowRotationRatio");
- m_WristRotationRatioProp = this.serializedObject.FindProperty("m_WristRotationRatio");
- m_ShiftedShoulderRotationRatioProp = this.serializedObject.FindProperty("m_ShiftedShoulderRotationRatio");
- m_ShiftedEblowRotationRatioProp = this.serializedObject.FindProperty("m_ShiftedElbowRotationRatio");
- m_ShiftedWristRotationRatioProp = this.serializedObject.FindProperty("m_ShiftedWristRotationRatio");
- m_JointShiftAngleProp = this.serializedObject.FindProperty("m_JointShiftAngle");
- m_JointShiftExponentProp = this.serializedObject.FindProperty("m_JointShiftExponent");
- }
- public override void OnInspectorGUI()
- {
- serializedObject.Update();
- EditorGUILayout.PropertyField(m_PoseSourceProp, ArmModelStyles.poseSourceLabel);
- EditorGUILayout.PropertyField(m_HeadGameObjectProp, ArmModelStyles.headPositionSourceLabel);
- EditorGUILayout.PropertyField(m_ArmExtensionOffsetProp, ArmModelStyles.armExtensionOffsetLabel);
- EditorGUILayout.PropertyField(m_JointShiftAngleProp, SwingArmModelStyles.jointShiftAngleLabel);
- EditorGUILayout.PropertyField(m_JointShiftExponentProp, SwingArmModelStyles.jointShiftExponentLabel);
- EditorGUILayout.PropertyField(m_ElbowBendRatioProp, ArmModelStyles.elbowBendRatioLabel);
- EditorGUILayout.PropertyField(m_IsLockedToNeckProp, ArmModelStyles.isLockedToNeckLabel);
-
- m_ExpandRestPosition = EditorGUILayout.Foldout(m_ExpandRestPosition, ArmModelStyles.restPositionLabel);
- if (m_ExpandRestPosition)
- {
- using (EditorGUI.IndentLevelScope indent = new EditorGUI.IndentLevelScope())
- {
- EditorGUILayout.PropertyField(m_EblowRestPositionProp, ArmModelStyles.elbowRestPositionLabel);
- EditorGUILayout.PropertyField(m_WristRestPositionProp, ArmModelStyles.wristRestPositionLabel);
- EditorGUILayout.PropertyField(m_ControllerRestPositionProp, ArmModelStyles.controllerRestPositionLabel);
- }
- }
- m_ExpandShoulder = EditorGUILayout.Foldout(m_ExpandShoulder, SwingArmModelStyles.rotationRatioLabel);
- if (m_ExpandShoulder)
- {
- using (EditorGUI.IndentLevelScope indent = new EditorGUI.IndentLevelScope())
- {
- EditorGUILayout.PropertyField(m_ShoulderRotationRatioProp, SwingArmModelStyles.shoulderRotationRatioLabel);
- EditorGUILayout.PropertyField(m_EblowRotationRatioProp, SwingArmModelStyles.elbowRotationRatioLabel);
- EditorGUILayout.PropertyField(m_WristRotationRatioProp, SwingArmModelStyles.wristRotationRatioLabel);
- }
- }
- m_ExpandShiftedShoulder = EditorGUILayout.Foldout(m_ExpandShiftedShoulder, SwingArmModelStyles.shiftedRotationRatioLabel);
- if (m_ExpandShiftedShoulder)
- {
- using (EditorGUI.IndentLevelScope indent = new EditorGUI.IndentLevelScope())
- {
- EditorGUILayout.PropertyField(m_ShiftedShoulderRotationRatioProp, SwingArmModelStyles.shiftedShoulderRotationRatioLabel);
- EditorGUILayout.PropertyField(m_ShiftedEblowRotationRatioProp, SwingArmModelStyles.shiftedElbowRotationRatioLabel);
- EditorGUILayout.PropertyField(m_ShiftedWristRotationRatioProp, SwingArmModelStyles.shiftedWristRotationRatioLabel);
- }
- }
-
- serializedObject.ApplyModifiedProperties();
- }
- }
- }
- #endif
|