mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +08:00
[unity] Fixed blend mode materials not being generated when sequence uses multiple atlas pages. Closes #2201.
This commit is contained in:
parent
8fb3876396
commit
8c3533835a
@ -203,11 +203,35 @@ namespace Spine.Unity.Editor {
|
|||||||
var renderableAttachment = entry.Attachment as IHasTextureRegion;
|
var renderableAttachment = entry.Attachment as IHasTextureRegion;
|
||||||
if (renderableAttachment != null) {
|
if (renderableAttachment != null) {
|
||||||
var originalRegion = (AtlasRegion)renderableAttachment.Region;
|
var originalRegion = (AtlasRegion)renderableAttachment.Region;
|
||||||
Sequence sequence = null;
|
if (originalRegion != null) {
|
||||||
if (originalRegion == null && (sequence = renderableAttachment.Sequence) != null) {
|
anyCreationFailed |= CreateForRegion(
|
||||||
if (sequence.Regions != null && sequence.Regions.Length > 0)
|
ref replacementMaterials, ref anyReplacementMaterialsChanged,
|
||||||
originalRegion = (AtlasRegion)sequence.Regions[0];
|
originalRegion, materialTemplate, materialSuffix, skeletonDataAsset);
|
||||||
|
} else {
|
||||||
|
Sequence sequence = renderableAttachment.Sequence;
|
||||||
|
if (sequence != null && sequence.Regions != null) {
|
||||||
|
for (int i = 0, count = sequence.Regions.Length; i < count; ++i) {
|
||||||
|
originalRegion = (AtlasRegion)sequence.Regions[i];
|
||||||
|
anyCreationFailed |= CreateForRegion(
|
||||||
|
ref replacementMaterials, ref anyReplacementMaterialsChanged,
|
||||||
|
originalRegion, materialTemplate, materialSuffix, skeletonDataAsset);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
skeletonDataAsset.isUpgradingBlendModeMaterials = false;
|
||||||
|
EditorUtility.SetDirty(skeletonDataAsset);
|
||||||
|
return !anyCreationFailed;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static bool CreateForRegion (ref List<BlendModeMaterials.ReplacementMaterial> replacementMaterials,
|
||||||
|
ref bool anyReplacementMaterialsChanged,
|
||||||
|
AtlasRegion originalRegion, Material materialTemplate, string materialSuffix,
|
||||||
|
SkeletonDataAsset skeletonDataAsset) {
|
||||||
|
|
||||||
|
bool anyCreationFailed = false;
|
||||||
bool replacementExists = replacementMaterials.Exists(
|
bool replacementExists = replacementMaterials.Exists(
|
||||||
replacement => replacement.pageName == originalRegion.page.name);
|
replacement => replacement.pageName == originalRegion.page.name);
|
||||||
if (!replacementExists) {
|
if (!replacementExists) {
|
||||||
@ -228,13 +252,7 @@ namespace Spine.Unity.Editor {
|
|||||||
anyCreationFailed = true;
|
anyCreationFailed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
return anyCreationFailed;
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
skeletonDataAsset.isUpgradingBlendModeMaterials = false;
|
|
||||||
EditorUtility.SetDirty(skeletonDataAsset);
|
|
||||||
return !anyCreationFailed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static string GetBlendModeMaterialPath (AtlasPage originalPage, string materialSuffix) {
|
protected static string GetBlendModeMaterialPath (AtlasPage originalPage, string materialSuffix) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user