mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-25 22:23:42 +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 () {
|
void Clear () {
|
||||||
preview.Clear();
|
preview.Clear();
|
||||||
targetSkeletonDataAsset.Clear();
|
SpineEditorUtilities.ClearSkeletonDataAsset(targetSkeletonDataAsset);
|
||||||
targetSkeletonData = null;
|
targetSkeletonData = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -493,7 +493,7 @@ namespace Spine.Unity.Editor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Debug.LogFormat("Changes to '{0}' or atlas detected. Clearing SkeletonDataAsset: {1}", skeletonJSONPath, localPath);
|
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 guid = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(skeletonDataAsset));
|
||||||
string lastHash = EditorPrefs.GetString(guid + "_hash");
|
string lastHash = EditorPrefs.GetString(guid + "_hash");
|
||||||
@ -978,7 +978,7 @@ namespace Spine.Unity.Editor {
|
|||||||
AssetDatabase.CreateAsset(skeletonDataAsset, filePath);
|
AssetDatabase.CreateAsset(skeletonDataAsset, filePath);
|
||||||
} else {
|
} else {
|
||||||
skeletonDataAsset.atlasAssets = atlasAssets;
|
skeletonDataAsset.atlasAssets = atlasAssets;
|
||||||
skeletonDataAsset.Clear();
|
SpineEditorUtilities.ClearSkeletonDataAsset(skeletonDataAsset);
|
||||||
}
|
}
|
||||||
var skeletonData = skeletonDataAsset.GetSkeletonData(true);
|
var skeletonData = skeletonDataAsset.GetSkeletonData(true);
|
||||||
if (skeletonData != null)
|
if (skeletonData != null)
|
||||||
|
|||||||
@ -96,7 +96,7 @@ namespace Spine.Unity.Editor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
skeletonDataAsset.Clear();
|
SpineEditorUtilities.ClearSkeletonDataAsset(skeletonDataAsset);
|
||||||
skeletonData = skeletonDataAsset.GetSkeletonData(true);
|
skeletonData = skeletonDataAsset.GetSkeletonData(true);
|
||||||
if (anyMaterialsChanged)
|
if (anyMaterialsChanged)
|
||||||
ReloadSceneSkeletons(skeletonDataAsset);
|
ReloadSceneSkeletons(skeletonDataAsset);
|
||||||
@ -164,7 +164,7 @@ namespace Spine.Unity.Editor {
|
|||||||
|
|
||||||
var skinEntries = new List<Skin.SkinEntry>();
|
var skinEntries = new List<Skin.SkinEntry>();
|
||||||
|
|
||||||
skeletonDataAsset.Clear();
|
SpineEditorUtilities.ClearSkeletonDataAsset(skeletonDataAsset);
|
||||||
skeletonDataAsset.isUpgradingBlendModeMaterials = true;
|
skeletonDataAsset.isUpgradingBlendModeMaterials = true;
|
||||||
SkeletonData skeletonData = skeletonDataAsset.GetSkeletonData(true);
|
SkeletonData skeletonData = skeletonDataAsset.GetSkeletonData(true);
|
||||||
|
|
||||||
|
|||||||
@ -91,8 +91,7 @@ namespace Spine.Unity.Editor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreach (var skeletonDataAsset in skeletonDataAssetsToReload) {
|
foreach (var skeletonDataAsset in skeletonDataAssetsToReload) {
|
||||||
skeletonDataAsset.Clear();
|
ReloadSkeletonDataAsset(skeletonDataAsset, false);
|
||||||
skeletonDataAsset.GetSkeletonData(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var skeletonRenderer in activeSkeletonRenderers)
|
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) {
|
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");
|
string[] guids = UnityEditor.AssetDatabase.FindAssets("t:AnimationReferenceAsset");
|
||||||
foreach (string guid in guids) {
|
foreach (string guid in guids) {
|
||||||
string path = UnityEditor.AssetDatabase.GUIDToAssetPath(guid);
|
string path = UnityEditor.AssetDatabase.GUIDToAssetPath(guid);
|
||||||
if (!string.IsNullOrEmpty(path)) {
|
if (!string.IsNullOrEmpty(path)) {
|
||||||
var referenceAsset = UnityEditor.AssetDatabase.LoadAssetAtPath<AnimationReferenceAsset>(path);
|
var referenceAsset = UnityEditor.AssetDatabase.LoadAssetAtPath<AnimationReferenceAsset>(path);
|
||||||
if (referenceAsset.SkeletonDataAsset == skeletonDataAsset)
|
if (referenceAsset.SkeletonDataAsset == skeletonDataAsset)
|
||||||
referenceAsset.Initialize();
|
func(referenceAsset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -266,14 +266,23 @@ namespace Spine.Unity.Editor {
|
|||||||
ReinitializeComponent(component);
|
ReinitializeComponent(component);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ReloadSkeletonDataAsset (SkeletonDataAsset skeletonDataAsset) {
|
public static void ClearSkeletonDataAsset (SkeletonDataAsset skeletonDataAsset) {
|
||||||
if (skeletonDataAsset != null) {
|
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) {
|
foreach (AtlasAssetBase aa in skeletonDataAsset.atlasAssets) {
|
||||||
if (aa != null) aa.Clear();
|
if (aa != null) aa.Clear();
|
||||||
}
|
}
|
||||||
skeletonDataAsset.Clear();
|
|
||||||
}
|
}
|
||||||
|
ClearSkeletonDataAsset(skeletonDataAsset);
|
||||||
skeletonDataAsset.GetSkeletonData(true);
|
skeletonDataAsset.GetSkeletonData(true);
|
||||||
|
DataReloadHandler.ReloadAnimationReferenceAssets(skeletonDataAsset);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ReinitializeComponent (SkeletonRenderer component) {
|
public static void ReinitializeComponent (SkeletonRenderer component) {
|
||||||
|
|||||||
@ -48,11 +48,16 @@ namespace Spine.Unity {
|
|||||||
if (animation == null)
|
if (animation == null)
|
||||||
Initialize();
|
Initialize();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return animation;
|
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 () {
|
public void Initialize () {
|
||||||
if (skeletonDataAsset == null) return;
|
if (skeletonDataAsset == null) return;
|
||||||
SkeletonData skeletonData = skeletonDataAsset.GetSkeletonData(AnimationReferenceAsset.QuietSkeletonData);
|
SkeletonData skeletonData = skeletonDataAsset.GetSkeletonData(AnimationReferenceAsset.QuietSkeletonData);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user