Эх сурвалжийг харах

[unity] Fixed incorrect reloading behaviour (especially of deform timeline) at Domain Reload. Closes #2066.

Harald Csaszar 3 жил өмнө
parent
commit
0820bd7024

+ 15 - 25
spine-unity/Assets/Spine/Editor/spine-unity/Editor/Utility/DataReloadHandler.cs

@@ -80,36 +80,25 @@ namespace Spine.Unity.Editor {
 				// Here we save the skeletonGraphic.skeletonDataAsset asset path in order
 				// to restore it later.
 				var activeSkeletonGraphics = GameObject.FindObjectsOfType<SkeletonGraphic>();
-				foreach (var sg in activeSkeletonGraphics) {
-					var skeletonDataAsset = sg.skeletonDataAsset;
+				foreach (var skeletonGraphic in activeSkeletonGraphics) {
+					var skeletonDataAsset = skeletonGraphic.skeletonDataAsset;
 					if (skeletonDataAsset != null) {
 						var assetPath = AssetDatabase.GetAssetPath(skeletonDataAsset);
-						var sgID = sg.GetInstanceID();
+						var sgID = skeletonGraphic.GetInstanceID();
 						savedSkeletonDataAssetAtSKeletonGraphicID[sgID] = assetPath;
 						skeletonDataAssetsToReload.Add(skeletonDataAsset);
 					}
 				}
 
-				foreach (var sda in skeletonDataAssetsToReload) {
-					sda.Clear();
-					sda.GetSkeletonData(true);
+				foreach (var skeletonDataAsset in skeletonDataAssetsToReload) {
+					skeletonDataAsset.Clear();
+					skeletonDataAsset.GetSkeletonData(true);
 				}
 
-				foreach (var sr in activeSkeletonRenderers) {
-					var meshRenderer = sr.GetComponent<MeshRenderer>();
-					var sharedMaterials = meshRenderer.sharedMaterials;
-					foreach (var m in sharedMaterials) {
-						if (m == null) {
-							sr.Initialize(true);
-							break;
-						}
-					}
-				}
-
-				foreach (var sg in activeSkeletonGraphics) {
-					if (sg.mainTexture == null)
-						sg.Initialize(true);
-				}
+				foreach (var skeletonRenderer in activeSkeletonRenderers)
+					skeletonRenderer.Initialize(true);
+				foreach (var skeletonGraphic in activeSkeletonGraphics)
+					skeletonGraphic.Initialize(true);
 			}
 
 			public static void ReloadSceneSkeletonComponents (SkeletonDataAsset skeletonDataAsset) {
@@ -119,13 +108,14 @@ namespace Spine.Unity.Editor {
 				if (EditorApplication.isPlayingOrWillChangePlaymode) return;
 
 				var activeSkeletonRenderers = GameObject.FindObjectsOfType<SkeletonRenderer>();
-				foreach (var sr in activeSkeletonRenderers) {
-					if (sr.isActiveAndEnabled && sr.skeletonDataAsset == skeletonDataAsset) sr.Initialize(true);
+				foreach (var renderer in activeSkeletonRenderers) {
+					if (renderer.isActiveAndEnabled && renderer.skeletonDataAsset == skeletonDataAsset) renderer.Initialize(true);
 				}
 
 				var activeSkeletonGraphics = GameObject.FindObjectsOfType<SkeletonGraphic>();
-				foreach (var sg in activeSkeletonGraphics) {
-					if (sg.isActiveAndEnabled && sg.skeletonDataAsset == skeletonDataAsset) sg.Initialize(true);
+				foreach (var graphic in activeSkeletonGraphics) {
+					if (graphic.isActiveAndEnabled && graphic.skeletonDataAsset == skeletonDataAsset)
+						graphic.Initialize(true);
 				}
 			}