override public void OnInspectorGUI() { if (needsReset) { component.Reset(); component.DoUpdate(); needsReset = false; SceneView.RepaintAll(); } serializedObject.Update(); // FindRenderer() if (skeletonRenderer.objectReferenceValue == null) { SkeletonRenderer parentRenderer = BoneFollowerInspector.GetInParent <SkeletonRenderer>(component.transform); if (parentRenderer != null) { Debug.Log("Inspector automatically assigned BoneFollower.SkeletonRenderer"); skeletonRenderer.objectReferenceValue = parentRenderer; } } EditorGUILayout.PropertyField(skeletonRenderer); if (component.valid) { EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(boneName); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); needsReset = true; serializedObject.Update(); } EditorGUILayout.PropertyField(followBoneRotation); EditorGUILayout.PropertyField(followZPosition); } else { GUILayout.Label("INVALID"); } if (serializedObject.ApplyModifiedProperties() || (UnityEngine.Event.current.type == EventType.ValidateCommand && UnityEngine.Event.current.commandName == "UndoRedoPerformed") ) { component.Reset(); } }
override public void OnInspectorGUI() { if (needsReset) { component.Reset(); component.DoUpdate(); needsReset = false; SceneView.RepaintAll(); } serializedObject.Update(); FindRenderer(); EditorGUILayout.PropertyField(skeletonRenderer); if (component.valid) { EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(boneName); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); needsReset = true; serializedObject.Update(); } EditorGUILayout.PropertyField(followBoneRotation); EditorGUILayout.PropertyField(followZPosition); } else { GUILayout.Label("INVALID"); } if (serializedObject.ApplyModifiedProperties() || (Event.current.type == EventType.ValidateCommand && Event.current.commandName == "UndoRedoPerformed") ) { component.Reset(); } }
override public void OnInspectorGUI() { serializedObject.Update(); FindRenderer(); EditorGUILayout.PropertyField(skeletonRenderer); if (component.valid) { String[] bones = new String[1]; try{ bones = new String[component.skeletonRenderer.skeleton.Data.Bones.Count + 1]; } catch { } bones[0] = "<None>"; for (int i = 0; i < bones.Length - 1; i++) { bones[i + 1] = component.skeletonRenderer.skeleton.Data.Bones[i].Name; } Array.Sort <String>(bones); int boneIndex = Math.Max(0, Array.IndexOf(bones, boneName.stringValue)); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Bone"); EditorGUIUtility.LookLikeControls(); boneIndex = EditorGUILayout.Popup(boneIndex, bones); EditorGUILayout.EndHorizontal(); boneName.stringValue = boneIndex == 0 ? null : bones[boneIndex]; EditorGUILayout.PropertyField(followBoneRotation); EditorGUILayout.PropertyField(followZPosition); EditorGUILayout.PropertyField(offset); } else { GUILayout.Label("INVALID"); } if (serializedObject.ApplyModifiedProperties() || (Event.current.type == EventType.ValidateCommand && Event.current.commandName == "UndoRedoPerformed") ) { component.Reset(); } }