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(); } }
public void BindToTargetUnit(FormationUnit unit, SkeletonAnimation animation, string boneName) { followUnit = unit; followBoneName = boneName; gameObject.SetActive(true); follower.SkeletonRenderer = animation; currentTransform.SetParent(unit.RectTransform, false); follower.followBoneRotation = false; follower.followZPosition = true; follower.bone = animation.Skeleton.FindBone(boneName); follower.DoUpdate(); follower.enabled = false; Destroy(follower); skeletonAnimation.MeshRenderer.sortingOrder = animation.MeshRenderer.sortingOrder + 1; }
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(); } }