[unity] Fix BoneFollower inspector.

This commit is contained in:
pharan 2017-02-09 07:46:57 +08:00
parent 1650b2bd20
commit 30fcad4718

View File

@ -74,6 +74,13 @@ namespace Spine.Unity.Editor {
targetBoneFollower = (BoneFollower)target; targetBoneFollower = (BoneFollower)target;
if (targetBoneFollower.SkeletonRenderer != null) if (targetBoneFollower.SkeletonRenderer != null)
targetBoneFollower.SkeletonRenderer.Initialize(false); targetBoneFollower.SkeletonRenderer.Initialize(false);
if (!targetBoneFollower.valid || needsReset) {
targetBoneFollower.Initialize();
targetBoneFollower.LateUpdate();
needsReset = false;
SceneView.RepaintAll();
}
} }
public void OnSceneGUI () { public void OnSceneGUI () {
@ -114,7 +121,7 @@ namespace Spine.Unity.Editor {
return; return;
} }
if (needsReset) { if (needsReset && UnityEngine.Event.current.type == EventType.Layout) {
targetBoneFollower.Initialize(); targetBoneFollower.Initialize();
targetBoneFollower.LateUpdate(); targetBoneFollower.LateUpdate();
needsReset = false; needsReset = false;
@ -143,11 +150,8 @@ namespace Spine.Unity.Editor {
if (targetBoneFollower.valid) { if (targetBoneFollower.valid) {
EditorGUI.BeginChangeCheck(); EditorGUI.BeginChangeCheck();
EditorGUILayout.PropertyField(boneName); EditorGUILayout.PropertyField(boneName);
if (EditorGUI.EndChangeCheck()) { needsReset |= EditorGUI.EndChangeCheck();
serializedObject.ApplyModifiedProperties();
needsReset = true;
serializedObject.Update();
}
EditorGUILayout.PropertyField(followBoneRotation); EditorGUILayout.PropertyField(followBoneRotation);
EditorGUILayout.PropertyField(followZPosition); EditorGUILayout.PropertyField(followZPosition);
EditorGUILayout.PropertyField(followLocalScale); EditorGUILayout.PropertyField(followLocalScale);
@ -169,8 +173,10 @@ namespace Spine.Unity.Editor {
var current = UnityEngine.Event.current; var current = UnityEngine.Event.current;
bool wasUndo = (current.type == EventType.ValidateCommand && current.commandName == "UndoRedoPerformed"); bool wasUndo = (current.type == EventType.ValidateCommand && current.commandName == "UndoRedoPerformed");
if (serializedObject.ApplyModifiedProperties() || wasUndo) if (wasUndo)
targetBoneFollower.Initialize(); targetBoneFollower.Initialize();
serializedObject.ApplyModifiedProperties();
} }
} }