Forráskód Böngészése

Merge branch '3.6' into 3.7-beta

pharan 8 éve
szülő
commit
5a984d9f06

+ 1 - 5
spine-csharp/src/AnimationState.cs

@@ -616,14 +616,10 @@ namespace Spine {
 			propertyIDs.Clear();
 			var mixingTo = this.mixingTo;
 
-			TrackEntry lastEntry = null;
 			var tracksItems = tracks.Items;
 			for (int i = 0, n = tracks.Count; i < n; i++) {
 				var entry = tracksItems[i];
-				if (entry != null) {
-					entry.SetTimelineData(lastEntry, mixingTo, propertyIDs);
-					lastEntry = entry;
-				}
+				if (entry != null) entry.SetTimelineData(null, mixingTo, propertyIDs);
 			}
 		}
 

+ 48 - 35
spine-unity/Assets/spine-unity/Asset Types/Editor/SkeletonDataAssetInspector.cs

@@ -74,7 +74,8 @@ namespace Spine.Unity.Editor {
 			SpineEditorUtilities.ConfirmInitialization();
 			m_skeletonDataAsset = (SkeletonDataAsset)target;
 
-			atlasAssets = serializedObject.FindProperty("atlasAssets");
+			bool newAtlasAssets = atlasAssets == null;
+			if (newAtlasAssets) atlasAssets = serializedObject.FindProperty("atlasAssets");
 			skeletonJSON = serializedObject.FindProperty("skeletonJSON");
 			scale = serializedObject.FindProperty("scale");
 			fromAnimation = serializedObject.FindProperty("fromAnimation");
@@ -87,10 +88,10 @@ namespace Spine.Unity.Editor {
 			#endif
 
 			#if SPINE_TK2D
-			atlasAssets.isExpanded = false;
+			if (newAtlasAssets) atlasAssets.isExpanded = false;
 			spriteCollection = serializedObject.FindProperty("spriteCollection");
 			#else
-			atlasAssets.isExpanded = true;
+			if (newAtlasAssets) atlasAssets.isExpanded = true;
 			#endif
 
 			m_skeletonDataAssetGUID = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(m_skeletonDataAsset));
@@ -470,44 +471,56 @@ namespace Spine.Unity.Editor {
 				if (SpineEditorUtilities.IsSpineData((TextAsset)skeletonJSON.objectReferenceValue) == false) {
 					warnings.Add("Skeleton data file is not a valid JSON or binary file.");
 				} else {
-					#if !SPINE_TK2D
-					bool detectedNullAtlasEntry = false;
-					var atlasList = new List<Atlas>();
-					var actualAtlasAssets = m_skeletonDataAsset.atlasAssets;
-					for (int i = 0; i < actualAtlasAssets.Length; i++) {
-						if (m_skeletonDataAsset.atlasAssets[i] == null) {
-							detectedNullAtlasEntry = true;
-							break;
-						} else {
-							atlasList.Add(actualAtlasAssets[i].GetAtlas());
+					#if SPINE_TK2D
+					bool searchForSpineAtlasAssets = true;
+					bool isSpriteCollectionNull = spriteCollection.objectReferenceValue == null;
+					if (!isSpriteCollectionNull) searchForSpineAtlasAssets = false;
+					//else
+					//	warnings.Add("Your sprite collection may have missing images.");
+					#else
+					const bool searchForSpineAtlasAssets = true;
+					#endif
+
+					if (searchForSpineAtlasAssets) {
+						bool detectedNullAtlasEntry = false;
+						var atlasList = new List<Atlas>();
+						var actualAtlasAssets = m_skeletonDataAsset.atlasAssets;
+
+						for (int i = 0; i < actualAtlasAssets.Length; i++) {
+							if (m_skeletonDataAsset.atlasAssets[i] == null) {
+								detectedNullAtlasEntry = true;
+								break;
+							} else {
+								atlasList.Add(actualAtlasAssets[i].GetAtlas());
+							}
 						}
-					}
 
-					if (detectedNullAtlasEntry)
-						warnings.Add("AtlasAsset elements should not be null.");
-					else {
-						// Get requirements.
-						var missingPaths = SpineEditorUtilities.GetRequiredAtlasRegions(AssetDatabase.GetAssetPath((TextAsset)skeletonJSON.objectReferenceValue));
-
-						foreach (var atlas in atlasList) {
-							for (int i = 0; i < missingPaths.Count; i++) {
-								if (atlas.FindRegion(missingPaths[i]) != null) {
-									missingPaths.RemoveAt(i);
-									i--;
+						if (detectedNullAtlasEntry) {
+							warnings.Add("AtlasAsset elements should not be null.");
+						} else {
+							// Get requirements.
+							var missingPaths = SpineEditorUtilities.GetRequiredAtlasRegions(AssetDatabase.GetAssetPath((TextAsset)skeletonJSON.objectReferenceValue));
+
+							foreach (var atlas in atlasList) {
+								for (int i = 0; i < missingPaths.Count; i++) {
+									if (atlas.FindRegion(missingPaths[i]) != null) {
+										missingPaths.RemoveAt(i);
+										i--;
+									}
 								}
 							}
-						}
 
-						foreach (var str in missingPaths)
-							warnings.Add("Missing Region: '" + str + "'");
-						
+							#if SPINE_TK2D
+							if (missingPaths.Count > 0)
+								warnings.Add("Missing regions. SkeletonDataAsset requires tk2DSpriteCollectionData or Spine AtlasAssets.");
+							#endif
+
+							foreach (var str in missingPaths)
+								warnings.Add("Missing Region: '" + str + "'");
+
+						}
 					}
-					#else
-					if (spriteCollection.objectReferenceValue == null)
-						warnings.Add("SkeletonDataAsset requires tk2DSpriteCollectionData.");
-//					else
-//						warnings.Add("Your sprite collection may have missing images.");
-					#endif
+
 				}
 			}
 		}

+ 2 - 2
spine-unity/Assets/spine-unity/BoneFollower.cs

@@ -74,7 +74,7 @@ namespace Spine.Unity {
 
 		/// <summary>
 		/// Sets the target bone by its bone name. Returns false if no bone was found.</summary>
-		public bool SetBoneByName (string name) {
+		public bool SetBone (string name) {
 			bone = skeletonRenderer.skeleton.FindBone(name);
 			if (bone == null) {
 				Debug.LogError("Bone not found: " + name, this);
@@ -130,7 +130,7 @@ namespace Spine.Unity {
 			if (bone == null) {
 				if (string.IsNullOrEmpty(boneName)) return;
 				bone = skeletonRenderer.skeleton.FindBone(boneName);
-				if (!SetBoneByName(boneName)) return;
+				if (!SetBone(boneName)) return;
 			}
 
 			Transform thisTransform = this.transform;

+ 1 - 1
spine-unity/Assets/spine-unity/Mesh Generation/SpineMesh.cs

@@ -357,7 +357,7 @@ namespace Spine.Unity {
 						material = (Material)((AtlasRegion)rendererObject).page.rendererObject;
 					}
 					#else
-					Material material = (rendererObject.GetType() == typeof(Material)) ? (Material)rendererObject : (Material)((AtlasRegion)rendererObject).page.rendererObject;
+					Material material = (rendererObject is Material) ? (Material)rendererObject : (Material)((AtlasRegion)rendererObject).page.rendererObject;
 					#endif
 
 					if (current.forceSeparate || (current.rawVertexCount > 0 && !System.Object.ReferenceEquals(current.material, material))) { // Material changed. Add the previous submesh.

+ 1 - 1
spine-unity/Assets/spine-unity/Modules/BoundingBoxFollower/Editor/BoundingBoxFollowerInspector.cs

@@ -156,7 +156,7 @@ namespace Spine.Unity.Editor {
 			if (Event.current.type == EventType.Repaint) {
 				if (addBoneFollower) {
 					var boneFollower = follower.gameObject.AddComponent<BoneFollower>();
-					boneFollower.SetBoneByName(follower.Slot.Data.BoneData.Name);
+					boneFollower.SetBone(follower.Slot.Data.BoneData.Name);
 					addBoneFollower = false;
 				}
 

+ 9 - 2
spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/SkeletonGraphic.cs

@@ -122,11 +122,18 @@ namespace Spine.Unity {
 
 		#region Internals
 		// This is used by the UI system to determine what to put in the MaterialPropertyBlock.
-		public Texture OverrideTexture { get; set; }
+		Texture overrideTexture;
+		public Texture OverrideTexture {
+			get { return overrideTexture; }
+			set {
+				canvasRenderer.SetTexture(value);
+				overrideTexture = value;
+			}
+		}
 		public override Texture mainTexture {
 			get { 
 				// Fail loudly when incorrectly set up.
-				if (OverrideTexture != null) return OverrideTexture;
+				if (overrideTexture != null) return overrideTexture;
 				return skeletonDataAsset == null ? null : skeletonDataAsset.atlasAssets[0].materials[0].mainTexture;
 			}
 		}