using System; using HurricaneVR.Framework.Core; using HurricaneVR.Framework.Core.HandPoser; using HurricaneVR.Framework.Core.Utils; using HurricaneVR.Framework.Shared; using HurricaneVR.Framework.Shared.Utilities; using UnityEditor; using UnityEditor.UIElements; using UnityEngine; using UnityEngine.UIElements; namespace HurricaneVR.Editor { //[CustomEditor(typeof(HVRPosableHand))] //public class HVRPosableHandEditor : UnityEditor.Editor //{ // private SerializedProperty SP_IsLeft; // private SerializedProperty SP_HandPreview; // private SerializedProperty SP_DoPreview; // private SerializedProperty SP_SelectedPose; // private PropertyField PropertyField_IsLeft; // private VisualElement HandContainer; // public HVRPosableHand ThisHand; // private VisualElement _editorContainer; // private VisualElement _root; // public ObjectField SelectedPoseField { get; set; } // public bool IsLeft => SP_IsLeft.boolValue; // protected GameObject PreviewInstance // { // get // { // if (SP_HandPreview == null || SP_HandPreview.objectReferenceValue == null) return null; // return SP_HandPreview.objectReferenceValue as GameObject; // } // set // { // if (SP_HandPreview != null) SP_HandPreview.objectReferenceValue = value; // } // } // public HVRHandPose SelectedPose // { // get // { // return SP_SelectedPose.objectReferenceValue as HVRHandPose; // } // set // { // if (SP_SelectedPose == null) return; // SP_SelectedPose.objectReferenceValue = value; // } // } // private void OnEnable() // { // try // { // SP_IsLeft = serializedObject.FindProperty("IsLeft"); // SP_HandPreview = serializedObject.FindProperty("Preview"); // SP_DoPreview = serializedObject.FindProperty("DoPreview"); // SP_SelectedPose = serializedObject.FindProperty("SelectedPose"); // ThisHand = target as HVRPosableHand; // } // catch (Exception e) // { // Debug.LogException(e); // } // } // public bool FullBody => HVRSettings.Instance.InverseKinematics; // public override VisualElement CreateInspectorGUI() // { // _root = new VisualElement(); // var defaultUI = new VisualElement(); // var iterator = serializedObject.GetIterator(); // if (iterator.NextVisible(true)) // { // do // { // var propertyField = new PropertyField(iterator.Copy()) { name = "PropertyField:" + iterator.propertyPath }; // if (iterator.propertyPath == "m_Script" && serializedObject.targetObject != null) // propertyField.SetEnabled(value: false); // defaultUI.Add(propertyField); // } // while (iterator.NextVisible(false)); // } // var folder = new Foldout(); // folder.Add(defaultUI); // folder.text = "Default Inspector"; // _root.Add(folder); // _editorContainer = new VisualElement(); // var editorTree = UnityEngine.Resources.Load("HVRHandPoseEditor"); // editorTree.CloneTree(_editorContainer); // _editorContainer.Q("SelectedPose").objectType = typeof(HVRHandPose); // _root.Add(_editorContainer); // PropertyField_IsLeft = _root.Q("PropertyField:IsLeft"); // PropertyField_IsLeft.RegisterCallback(new EventCallback>(OnIsLeftChanged)); // HandContainer = _editorContainer.Q("HandContainer"); // PreviewToggle = HandContainer.Q("Preview"); // PreviewToggle.BindProperty(SP_DoPreview); // PreviewToggle.RegisterValueChangedCallback(OnPreviewChanged); // UpdatePreview(SP_DoPreview.boolValue, true); // SetupSelectedPose(); // SetupNewButton(); // SetupSaveAsButton(); // SetupSaveButton(); // SetupPreviewButton(); // return _root; // } // private void SetupNewButton() // { // var button = _root.Q