|
@@ -41,7 +41,8 @@ namespace Spine.Unity.Editor {
|
|
|
|
|
|
[CustomEditor(typeof(BoundingBoxFollowerGraphic))]
|
|
[CustomEditor(typeof(BoundingBoxFollowerGraphic))]
|
|
public class BoundingBoxFollowerGraphicInspector : UnityEditor.Editor {
|
|
public class BoundingBoxFollowerGraphicInspector : UnityEditor.Editor {
|
|
- SerializedProperty skeletonGraphic, slotName, isTrigger, clearStateOnDisable;
|
|
|
|
|
|
+ SerializedProperty skeletonGraphic, slotName,
|
|
|
|
+ isTrigger, usedByEffector, usedByComposite, clearStateOnDisable;
|
|
BoundingBoxFollowerGraphic follower;
|
|
BoundingBoxFollowerGraphic follower;
|
|
bool rebuildRequired = false;
|
|
bool rebuildRequired = false;
|
|
bool addBoneFollower = false;
|
|
bool addBoneFollower = false;
|
|
@@ -60,6 +61,8 @@ namespace Spine.Unity.Editor {
|
|
skeletonGraphic = serializedObject.FindProperty("skeletonGraphic");
|
|
skeletonGraphic = serializedObject.FindProperty("skeletonGraphic");
|
|
slotName = serializedObject.FindProperty("slotName");
|
|
slotName = serializedObject.FindProperty("slotName");
|
|
isTrigger = serializedObject.FindProperty("isTrigger");
|
|
isTrigger = serializedObject.FindProperty("isTrigger");
|
|
|
|
+ usedByEffector = serializedObject.FindProperty("usedByEffector");
|
|
|
|
+ usedByComposite = serializedObject.FindProperty("usedByComposite");
|
|
clearStateOnDisable = serializedObject.FindProperty("clearStateOnDisable");
|
|
clearStateOnDisable = serializedObject.FindProperty("clearStateOnDisable");
|
|
follower = (BoundingBoxFollowerGraphic)target;
|
|
follower = (BoundingBoxFollowerGraphic)target;
|
|
}
|
|
}
|
|
@@ -118,18 +121,23 @@ namespace Spine.Unity.Editor {
|
|
using (new SpineInspectorUtility.LabelWidthScope(150f)) {
|
|
using (new SpineInspectorUtility.LabelWidthScope(150f)) {
|
|
EditorGUI.BeginChangeCheck();
|
|
EditorGUI.BeginChangeCheck();
|
|
EditorGUILayout.PropertyField(isTrigger);
|
|
EditorGUILayout.PropertyField(isTrigger);
|
|
- bool triggerChanged = EditorGUI.EndChangeCheck();
|
|
|
|
|
|
+ EditorGUILayout.PropertyField(usedByEffector);
|
|
|
|
+ EditorGUILayout.PropertyField(usedByComposite);
|
|
|
|
+ bool colliderParamChanged = EditorGUI.EndChangeCheck();
|
|
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
EditorGUI.BeginChangeCheck();
|
|
EditorGUILayout.PropertyField(clearStateOnDisable, new GUIContent(clearStateOnDisable.displayName, "Enable this if you are pooling your Spine GameObject"));
|
|
EditorGUILayout.PropertyField(clearStateOnDisable, new GUIContent(clearStateOnDisable.displayName, "Enable this if you are pooling your Spine GameObject"));
|
|
bool clearStateChanged = EditorGUI.EndChangeCheck();
|
|
bool clearStateChanged = EditorGUI.EndChangeCheck();
|
|
|
|
|
|
- if (clearStateChanged || triggerChanged) {
|
|
|
|
|
|
+ if (clearStateChanged || colliderParamChanged) {
|
|
serializedObject.ApplyModifiedProperties();
|
|
serializedObject.ApplyModifiedProperties();
|
|
InitializeEditor();
|
|
InitializeEditor();
|
|
- if (triggerChanged)
|
|
|
|
- foreach (var col in follower.colliderTable.Values)
|
|
|
|
|
|
+ if (colliderParamChanged)
|
|
|
|
+ foreach (var col in follower.colliderTable.Values) {
|
|
col.isTrigger = isTrigger.boolValue;
|
|
col.isTrigger = isTrigger.boolValue;
|
|
|
|
+ col.usedByEffector = usedByEffector.boolValue;
|
|
|
|
+ col.usedByComposite = usedByComposite.boolValue;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -220,6 +228,8 @@ namespace Spine.Unity.Editor {
|
|
if (original != null) {
|
|
if (original != null) {
|
|
newFollower.slotName = original.slotName;
|
|
newFollower.slotName = original.slotName;
|
|
newFollower.isTrigger = original.isTrigger;
|
|
newFollower.isTrigger = original.isTrigger;
|
|
|
|
+ newFollower.usedByEffector = original.usedByEffector;
|
|
|
|
+ newFollower.usedByComposite = original.usedByComposite;
|
|
newFollower.clearStateOnDisable = original.clearStateOnDisable;
|
|
newFollower.clearStateOnDisable = original.clearStateOnDisable;
|
|
}
|
|
}
|
|
if (slotName != null)
|
|
if (slotName != null)
|