Merge pull request #1939 from sr4dev/fix_multiple_nested_prefab_override_issue

[unity] Fix multiple nested prefab override issue.
This commit is contained in:
Harald Csaszar 2021-08-12 11:30:13 +02:00 committed by GitHub
commit 80973bc1aa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -83,10 +83,26 @@ namespace Spine.Unity {
if (meshFilter == null)
meshFilter = gameObject.AddComponent<MeshFilter>();
}
if (fixPrefabOverrideViaMeshFilter)
if (fixPrefabOverrideViaMeshFilter) {
#if NEW_PREFAB_SYSTEM
if (UnityEditor.PrefabUtility.IsPartOfAnyPrefab(meshFilter)) {
var instanceRoot = UnityEditor.PrefabUtility.GetOutermostPrefabInstanceRoot(meshFilter);
if (instanceRoot != null) {
var objectOverrides = UnityEditor.PrefabUtility.GetObjectOverrides(instanceRoot);
foreach (UnityEditor.SceneManagement.ObjectOverride objectOverride in objectOverrides) {
if (objectOverride.instanceObject == meshFilter) {
objectOverride.Revert(UnityEditor.InteractionMode.AutomatedAction);
break;
}
}
}
}
#endif
meshFilter.hideFlags = HideFlags.DontSaveInEditor;
else
}
else {
meshFilter.hideFlags = HideFlags.None;
}
}
#endif
/// <summary>Flip X and Y to use when the Skeleton is initialized.</summary>
@ -304,6 +320,11 @@ namespace Spine.Unity {
}
#endif
void OnEnable() {
if (!Application.isPlaying)
LateUpdate();
}
void OnDisable () {
if (clearStateOnDisable && valid)
ClearState();