Ver Fonte

[unity] Added missing `usedByEffector` and `usedByComposite` parameters at BoundingBoxFollower components.

Harald Csaszar há 3 anos atrás
pai
commit
83b50f265e

+ 1 - 0
CHANGELOG.md

@@ -157,6 +157,7 @@
   * Timeline clips now also offer `Don't End with Clip` and `Clip End Mix Out Duration` parameters. By default when empty space follows the clip on the timeline, the empty animation is set on the track with a MixDuration of `Clip End Mix Out Duration`. Set `Don't End with Clip` to `true` to continue playing the clip's animation instead and mimic the old 3.8 behaviour. If you prefer pausing the animation instead of mixing out to the empty animation, set `Clip End Mix Out Duration` to a value less than 0, then the animation is paused instead.
   * Prefabs containing `SkeletonRenderer`, `SkeletonAnimation` and `SkeletonMecanim` now provide a proper Editor preview, including the preview thumbnail.
   * `SkeletonRenderer` (and subclasses`SkeletonAnimation` and `SkeletonMecanim`) now provide a property `Advanced - Fix Prefab Override MeshFilter`, which when enabled fixes the prefab always being marked as changed. It sets the MeshFilter's hide flags to `DontSaveInEditor`. Unfortunately this comes at the cost of references to the `MeshFilter` by other components being lost, therefore this parameter defaults to `false` to keep the safe existing behaviour.
+  * `BoundingBoxFollower` and `BoundingBoxFollowerGraphic` now provide previously missing `usedByEffector` and `usedByComposite` parameters to be set at all generated colliders.
 
 * **Changes of default values**
 

+ 15 - 5
spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoundingBoxFollowerGraphicInspector.cs

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

+ 15 - 5
spine-unity/Assets/Spine/Editor/spine-unity/Editor/Components/BoundingBoxFollowerInspector.cs

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

+ 3 - 2
spine-unity/Assets/Spine/Runtime/spine-unity/Components/Following/BoundingBoxFollower.cs

@@ -49,7 +49,7 @@ namespace Spine.Unity {
 		public SkeletonRenderer skeletonRenderer;
 		[SpineSlot(dataField: "skeletonRenderer", containsBoundingBoxes: true)]
 		public string slotName;
-		public bool isTrigger;
+		public bool isTrigger, usedByEffector, usedByComposite;
 		public bool clearStateOnDisable = true;
 		#endregion
 
@@ -167,9 +167,10 @@ namespace Spine.Unity {
 						++collidersCount;
 						SkeletonUtility.SetColliderPointsLocal(bbCollider, slot, boundingBoxAttachment);
 						bbCollider.isTrigger = isTrigger;
+						bbCollider.usedByEffector = usedByEffector;
+						bbCollider.usedByComposite = usedByComposite;
 						bbCollider.enabled = false;
 						bbCollider.hideFlags = HideFlags.NotEditable;
-						bbCollider.isTrigger = IsTrigger;
 						colliderTable.Add(boundingBoxAttachment, bbCollider);
 						nameTable.Add(boundingBoxAttachment, entry.Name);
 					}

+ 3 - 2
spine-unity/Assets/Spine/Runtime/spine-unity/Components/Following/BoundingBoxFollowerGraphic.cs

@@ -49,7 +49,7 @@ namespace Spine.Unity {
 		public SkeletonGraphic skeletonGraphic;
 		[SpineSlot(dataField: "skeletonGraphic", containsBoundingBoxes: true)]
 		public string slotName;
-		public bool isTrigger;
+		public bool isTrigger, usedByEffector, usedByComposite;
 		public bool clearStateOnDisable = true;
 		#endregion
 
@@ -171,9 +171,10 @@ namespace Spine.Unity {
 						++collidersCount;
 						SkeletonUtility.SetColliderPointsLocal(bbCollider, slot, boundingBoxAttachment, scale);
 						bbCollider.isTrigger = isTrigger;
+						bbCollider.usedByEffector = usedByEffector;
+						bbCollider.usedByComposite = usedByComposite;
 						bbCollider.enabled = false;
 						bbCollider.hideFlags = HideFlags.NotEditable;
-						bbCollider.isTrigger = IsTrigger;
 						colliderTable.Add(boundingBoxAttachment, bbCollider);
 						nameTable.Add(boundingBoxAttachment, entry.Name);
 					}