mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-12 18:18:43 +08:00
Merge branch '4.0' into 4.1-beta
This commit is contained in:
commit
f295669ed4
@ -154,7 +154,7 @@ namespace Spine.Unity.Editor {
|
||||
|
||||
void Clear () {
|
||||
preview.Clear();
|
||||
targetSkeletonDataAsset.Clear();
|
||||
SpineEditorUtilities.ClearSkeletonDataAsset(targetSkeletonDataAsset);
|
||||
targetSkeletonData = null;
|
||||
}
|
||||
|
||||
|
||||
@ -493,7 +493,7 @@ namespace Spine.Unity.Editor {
|
||||
}
|
||||
|
||||
Debug.LogFormat("Changes to '{0}' or atlas detected. Clearing SkeletonDataAsset: {1}", skeletonJSONPath, localPath);
|
||||
skeletonDataAsset.Clear();
|
||||
SpineEditorUtilities.ClearSkeletonDataAsset(skeletonDataAsset);
|
||||
|
||||
string guid = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(skeletonDataAsset));
|
||||
string lastHash = EditorPrefs.GetString(guid + "_hash");
|
||||
@ -978,7 +978,7 @@ namespace Spine.Unity.Editor {
|
||||
AssetDatabase.CreateAsset(skeletonDataAsset, filePath);
|
||||
} else {
|
||||
skeletonDataAsset.atlasAssets = atlasAssets;
|
||||
skeletonDataAsset.Clear();
|
||||
SpineEditorUtilities.ClearSkeletonDataAsset(skeletonDataAsset);
|
||||
}
|
||||
var skeletonData = skeletonDataAsset.GetSkeletonData(true);
|
||||
if (skeletonData != null)
|
||||
|
||||
@ -96,7 +96,7 @@ namespace Spine.Unity.Editor {
|
||||
}
|
||||
}
|
||||
|
||||
skeletonDataAsset.Clear();
|
||||
SpineEditorUtilities.ClearSkeletonDataAsset(skeletonDataAsset);
|
||||
skeletonData = skeletonDataAsset.GetSkeletonData(true);
|
||||
if (anyMaterialsChanged)
|
||||
ReloadSceneSkeletons(skeletonDataAsset);
|
||||
@ -164,7 +164,7 @@ namespace Spine.Unity.Editor {
|
||||
|
||||
var skinEntries = new List<Skin.SkinEntry>();
|
||||
|
||||
skeletonDataAsset.Clear();
|
||||
SpineEditorUtilities.ClearSkeletonDataAsset(skeletonDataAsset);
|
||||
skeletonDataAsset.isUpgradingBlendModeMaterials = true;
|
||||
SkeletonData skeletonData = skeletonDataAsset.GetSkeletonData(true);
|
||||
|
||||
|
||||
@ -91,8 +91,7 @@ namespace Spine.Unity.Editor {
|
||||
}
|
||||
|
||||
foreach (var skeletonDataAsset in skeletonDataAssetsToReload) {
|
||||
skeletonDataAsset.Clear();
|
||||
skeletonDataAsset.GetSkeletonData(true);
|
||||
ReloadSkeletonDataAsset(skeletonDataAsset, false);
|
||||
}
|
||||
|
||||
foreach (var skeletonRenderer in activeSkeletonRenderers)
|
||||
@ -119,14 +118,24 @@ namespace Spine.Unity.Editor {
|
||||
}
|
||||
}
|
||||
|
||||
public static void ClearAnimationReferenceAssets (SkeletonDataAsset skeletonDataAsset) {
|
||||
ForEachAnimationReferenceAsset(skeletonDataAsset, (referenceAsset) => referenceAsset.Clear());
|
||||
}
|
||||
|
||||
public static void ReloadAnimationReferenceAssets (SkeletonDataAsset skeletonDataAsset) {
|
||||
ForEachAnimationReferenceAsset(skeletonDataAsset, (referenceAsset) => referenceAsset.Initialize());
|
||||
}
|
||||
|
||||
private static void ForEachAnimationReferenceAsset (SkeletonDataAsset skeletonDataAsset,
|
||||
System.Action<AnimationReferenceAsset> func) {
|
||||
|
||||
string[] guids = UnityEditor.AssetDatabase.FindAssets("t:AnimationReferenceAsset");
|
||||
foreach (string guid in guids) {
|
||||
string path = UnityEditor.AssetDatabase.GUIDToAssetPath(guid);
|
||||
if (!string.IsNullOrEmpty(path)) {
|
||||
var referenceAsset = UnityEditor.AssetDatabase.LoadAssetAtPath<AnimationReferenceAsset>(path);
|
||||
if (referenceAsset.SkeletonDataAsset == skeletonDataAsset)
|
||||
referenceAsset.Initialize();
|
||||
func(referenceAsset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -266,14 +266,23 @@ namespace Spine.Unity.Editor {
|
||||
ReinitializeComponent(component);
|
||||
}
|
||||
|
||||
public static void ReloadSkeletonDataAsset (SkeletonDataAsset skeletonDataAsset) {
|
||||
if (skeletonDataAsset != null) {
|
||||
public static void ClearSkeletonDataAsset (SkeletonDataAsset skeletonDataAsset) {
|
||||
skeletonDataAsset.Clear();
|
||||
DataReloadHandler.ClearAnimationReferenceAssets(skeletonDataAsset);
|
||||
}
|
||||
|
||||
public static void ReloadSkeletonDataAsset (SkeletonDataAsset skeletonDataAsset, bool clearAtlasAssets = true) {
|
||||
if (skeletonDataAsset == null)
|
||||
return;
|
||||
|
||||
if (clearAtlasAssets) {
|
||||
foreach (AtlasAssetBase aa in skeletonDataAsset.atlasAssets) {
|
||||
if (aa != null) aa.Clear();
|
||||
}
|
||||
skeletonDataAsset.Clear();
|
||||
}
|
||||
ClearSkeletonDataAsset(skeletonDataAsset);
|
||||
skeletonDataAsset.GetSkeletonData(true);
|
||||
DataReloadHandler.ReloadAnimationReferenceAssets(skeletonDataAsset);
|
||||
}
|
||||
|
||||
public static void ReinitializeComponent (SkeletonRenderer component) {
|
||||
|
||||
@ -48,11 +48,16 @@ namespace Spine.Unity {
|
||||
if (animation == null)
|
||||
Initialize();
|
||||
#endif
|
||||
|
||||
return animation;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Clears the cached animation corresponding to a loaded SkeletonData object.
|
||||
/// Use this to force a reload for the next time Animation is called.</summary>
|
||||
public void Clear () {
|
||||
animation = null;
|
||||
}
|
||||
|
||||
public void Initialize () {
|
||||
if (skeletonDataAsset == null) return;
|
||||
SkeletonData skeletonData = skeletonDataAsset.GetSkeletonData(AnimationReferenceAsset.QuietSkeletonData);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user