继续更新小问题,增加了启动编队前外部头像预览

This commit is contained in:
FloatGaming
2025-12-12 23:15:43 +08:00
parent b0c0aee6dc
commit aaca372833
65 changed files with 7315 additions and 396 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

@@ -0,0 +1,234 @@
fileFormatVersion: 2
guid: c7c2fe3c72ded9244bf6b5506cc84f41
TextureImporter:
internalIDToNameTable:
- first:
213: -7112958055763286072
second: "\u672A\u6807\u9898-1 (2)_0"
- first:
213: -8731791400406729856
second: "\u672A\u6807\u9898-1 (2)_1"
- first:
213: -6961432280494039559
second: "\u672A\u6807\u9898-1 (2)_2"
- first:
213: 2858579096839627782
second: "\u672A\u6807\u9898-1 (2)_3"
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: "\u672A\u6807\u9898-1 (2)_0"
rect:
serializedVersion: 2
x: 0
y: 159
width: 41
height: 41
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 8c7e9f79552b94d90800000000000000
internalID: -7112958055763286072
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: "\u672A\u6807\u9898-1 (2)_1"
rect:
serializedVersion: 2
x: 159
y: 159
width: 41
height: 41
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 08b32fdfbf172d680800000000000000
internalID: -8731791400406729856
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: "\u672A\u6807\u9898-1 (2)_2"
rect:
serializedVersion: 2
x: 0
y: 0
width: 41
height: 41
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 9fd17316936046f90800000000000000
internalID: -6961432280494039559
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: "\u672A\u6807\u9898-1 (2)_3"
rect:
serializedVersion: 2
x: 159
y: 0
width: 41
height: 41
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 604ab7d0b86bba720800000000000000
internalID: 2858579096839627782
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
"\u672A\u6807\u9898-1 (2)_0": -7112958055763286072
"\u672A\u6807\u9898-1 (2)_1": -8731791400406729856
"\u672A\u6807\u9898-1 (2)_2": -6961432280494039559
"\u672A\u6807\u9898-1 (2)_3": 2858579096839627782
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

@@ -0,0 +1,156 @@
fileFormatVersion: 2
guid: 7bf411781be0bcd4dabbf71f0332e049
TextureImporter:
internalIDToNameTable:
- first:
213: -2974362203136603196
second: decision (1)_0
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: decision (1)_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 580
height: 290
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 4cbc1b8c551f8b6d0800000000000000
internalID: -2974362203136603196
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
decision (1)_0: -2974362203136603196
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -13,6 +13,7 @@ public class basicInfoBars : MonoBehaviour
public Image damageResistanceImage;
public Image basicManaImage;
public Image scoreEffeciencyImage;
public Image skillAmountLimitImage;
public Image missDamageImage;
[Header("maxValues")]
public int maxAttackValue = 999;
@@ -20,6 +21,7 @@ public class basicInfoBars : MonoBehaviour
public float maxDamageResistanceValue = 1f;
public int maxBasicManaValue = 999;
public float maxScoreEfficiencyValue = 1f;
public int maxSkillAmountLimitValue = 10;
public int maxMissDamageValue = 99;
// Start is called once before the first execution of Update after the MonoBehaviour is created
@@ -93,4 +95,14 @@ public class basicInfoBars : MonoBehaviour
missDamageImage.fillAmount = clampedValue / maxMissDamageValue;
}
}
// 设置技能数量限制进度条
public void SetSkillAmountLimit(int value)
{
if (skillAmountLimitImage != null)
{
float clampedValue = Mathf.Clamp(value, 0, maxSkillAmountLimitValue);
skillAmountLimitImage.fillAmount = clampedValue / maxSkillAmountLimitValue;
}
}
}
@@ -19,6 +19,8 @@ public class character_detailInformation : MonoBehaviour
public RatioBar ratioBar;
[Header("shutdown")]
public Button shut_button;
[Header("主题色渐变底图")]
public Image mainTheme_fadeImage;
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
@@ -59,11 +61,12 @@ public class character_detailInformation : MonoBehaviour
int maxMana = levelInfo.maxMana;
float scoreEfficiency = levelInfo.scoreEfficiency;
float missHpLoss = levelInfo.missHpLossBase;
int skillSlotLimited = levelInfo.skill_slot_limited;
// 输出到basic_infoText
if (basic_infoText != null)
{
basic_infoText.text = $"{attack}\n{maxHP}\n{damageResistance * 100}%\n{maxMana}\n{scoreEfficiency * 100}%\n\n{missHpLoss}";
basic_infoText.text = $"{attack}\n{maxHP}\n{damageResistance * 100}%\n{maxMana}\n{scoreEfficiency * 100}%\n{skillSlotLimited}\n{missHpLoss}";
}
// 交给basicInfoBars设置进度条
@@ -74,6 +77,7 @@ public class character_detailInformation : MonoBehaviour
infoBars.SetDamageResistance(damageResistance);
infoBars.SetBasicMana(maxMana);
infoBars.SetScoreEfficiency(scoreEfficiency);
infoBars.SetSkillAmountLimit(skillSlotLimited);
infoBars.SetMissDamage((int)missHpLoss); // 假设missDamage是int
}
@@ -89,6 +93,14 @@ public class character_detailInformation : MonoBehaviour
ratioBar.SetManaAndDamage(heroSO);
}
}
// 设置主题色渐变底图
if (mainTheme_fadeImage != null)
{
Color themeColor = heroSO.ally_heroThemeColor;
themeColor.a = 1f; // 确保透明度为1,使其可见
mainTheme_fadeImage.color = themeColor;
}
}
}
@@ -34,8 +34,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 153.3, y: 161.6}
m_SizeDelta: {x: 223.6511, y: 15}
m_AnchoredPosition: {x: 148.26155, y: 161.6}
m_SizeDelta: {x: 233.7279, y: 15}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2235889295855993711
CanvasRenderer:
@@ -376,6 +376,8 @@ MonoBehaviour:
item_typeText: {fileID: 9206827753968619961}
item_statusText: {fileID: 1369813031075670775}
item_detailInformationText: {fileID: 2034402806027055942}
availableColor: {r: 0, g: 0.5647059, b: 0.039215688, a: 0}
unavailableColor: {r: 0.6117647, g: 0.050980393, b: 0, a: 0}
--- !u!1 &5994834139812127226
GameObject:
m_ObjectHideFlags: 0
@@ -11,6 +11,10 @@ public class detailsPrefabController : MonoBehaviour
public Text item_statusText;
public Text item_detailInformationText;
[Header("colors")]
public Color availableColor;
public Color unavailableColor;
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ae369c0b6559e674381299177f4edf5f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@@ -0,0 +1,156 @@
fileFormatVersion: 2
guid: d6c1017e6bb4db647837c0b69e568f7a
TextureImporter:
internalIDToNameTable:
- first:
213: 4663309393762378642
second: lock (1)_0
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: lock (1)_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 200
height: 200
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 293e2f4bf2767b040800000000000000
internalID: 4663309393762378642
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
lock (1)_0: 4663309393762378642
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

@@ -0,0 +1,156 @@
fileFormatVersion: 2
guid: 9dd3414b0d3ab3c4688fd936bf5d179d
TextureImporter:
internalIDToNameTable:
- first:
213: -6804654954444095153
second: off_0
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: off_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 200
height: 200
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: f41024d1f520191a0800000000000000
internalID: -6804654954444095153
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
off_0: -6804654954444095153
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

@@ -0,0 +1,156 @@
fileFormatVersion: 2
guid: 66801968c2d91024b99fa9bd30c8d417
TextureImporter:
internalIDToNameTable:
- first:
213: 8700343863278529912
second: sangedian_0
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: sangedian_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 200
height: 200
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 87d6772b5a4ddb870800000000000000
internalID: 8700343863278529912
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
sangedian_0: 8700343863278529912
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -55,6 +55,22 @@ public class loadDetailsPrefab : MonoBehaviour
if (currentController.item_statusText != null) currentController.item_statusText.text = status;
if (currentController.item_detailInformationText != null) currentController.item_detailInformationText.text = description;
// 设置状态文本颜色
if (currentController.item_statusText != null)
{
Color statusColor;
if (status == "技能可用" || status == "技能已选择" || status == "可用")
{
statusColor = currentController.availableColor;
}
else
{
statusColor = currentController.unavailableColor;
}
statusColor.a = 1f; // 确保透明度为1,使其可见
currentController.item_statusText.color = statusColor;
}
// 设置位置并检查边界
RectTransform rt = currentDetailsInstance.GetComponent<RectTransform>();
if (rt != null)
@@ -249,16 +249,24 @@ public class loadSkillsSelect : MonoBehaviour
public void UpdateSkillCardSelections()
{
if (currentHeroSO == null) return;
var equipped = new System.Collections.Generic.HashSet<int>(currentHeroSO.equippedSkillGroupIDs);
foreach (Transform child in contentParent)
if (currentHeroSO == null || contentParent == null) return;
// Defensive: handle null equipped list
var equippedIds = currentHeroSO.equippedSkillGroupIDs ?? new int[0];
var equipped = new System.Collections.Generic.HashSet<int>(equippedIds);
// Ensure layout is rebuilt so all instantiated children are available and their LayoutElements applied
UnityEngine.UI.LayoutRebuilder.ForceRebuildLayoutImmediate(contentParent);
// Get all slots under contentParent (including nested containers and inactive objects)
var slots = contentParent.GetComponentsInChildren<slots_skillSlots>(true);
if (slots == null || slots.Length == 0) return;
foreach (var slot in slots)
{
var slot = child.GetComponentInChildren<slots_skillSlots>();
if (slot != null)
{
slot.isSelected = equipped.Contains(slot.skillCard_skillID);
slot.ApplyState();
}
if (slot == null) continue;
slot.isSelected = equipped.Contains(slot.skillCard_skillID);
slot.ApplyState();
}
}
}
@@ -0,0 +1,184 @@
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
using System.Linq;
public class load_skill_detail_prefab_inHeroDetailPrefab : MonoBehaviour
{
public static load_skill_detail_prefab_inHeroDetailPrefab Instance { get; private set; }
[Header("Prefab / UI")]
public GameObject skillDetailPrefab; // prefab must have skill_detail_prefab_inHeroDetail component
public RectTransform contentParent; // container where skill detail prefabs will be instantiated (e.g., Scroll View Content)
void Awake()
{
if (Instance == null) Instance = this;
else Destroy(gameObject);
}
// Clear existing instantiated skill details
public void Clear()
{
if (contentParent == null) return;
for (int i = contentParent.childCount - 1; i >= 0; i--)
{
var c = contentParent.GetChild(i);
#if UNITY_EDITOR
if (!Application.isPlaying) DestroyImmediate(c.gameObject);
else Destroy(c.gameObject);
#else
Destroy(c.gameObject);
#endif
}
}
// Load equipped skill details for a given hero SO id and instantiate skill detail prefabs
public void LoadSkillDetails(int heroId)
{
Debug.Log($"load_skill_detail_prefab_inHeroDetailPrefab.LoadSkillDetails called with heroId={heroId}");
Clear();
if (skillDetailPrefab == null)
{
Debug.LogWarning("load_skill_detail_prefab_inHeroDetailPrefab: skillDetailPrefab is not assigned in Inspector");
return;
}
if (contentParent == null)
{
Debug.LogWarning("load_skill_detail_prefab_inHeroDetailPrefab: contentParent is not assigned in Inspector");
return;
}
if (heroId <= 0)
{
Debug.LogWarning("load_skill_detail_prefab_inHeroDetailPrefab: invalid heroId");
return;
}
AllyHero_SO found = null;
try
{
var arr = Resources.LoadAll<AllyHero_SO>("");
foreach (var a in arr)
{
if (a != null && a.ally_heroID == heroId) { found = a; break; }
}
}
catch (System.Exception ex)
{
Debug.LogError($"load_skill_detail_prefab_inHeroDetailPrefab: Resources.LoadAll threw: {ex}");
}
if (found == null)
{
Debug.LogWarning($"load_skill_detail_prefab_inHeroDetailPrefab: could not find AllyHero_SO for id={heroId}. Ensure the SO is in a Resources folder.");
return;
}
// Get equipped skill group IDs (filter out 0)
var equippedIds = (found.equippedSkillGroupIDs ?? new int[0]).Where(id => id != 0).ToList();
// Get current level info
var levelInfo = found.GetEffectiveLevelForCurrentEXP();
int currentMaxSlots = levelInfo?.skill_slot_limited ?? 0;
// Get max slots from highest level
int maxSlotsOverall = 0;
if (found.levelStats != null && found.levelStats.Count > 0)
{
// Assume levelStats is sorted by requiredEXP ascending, so last is highest
maxSlotsOverall = found.levelStats[found.levelStats.Count - 1].skill_slot_limited;
}
int created = 0;
for (int i = 0; i < maxSlotsOverall; i++)
{
if (i < equippedIds.Count)
{
// Instantiate equipped skill
int skillId = equippedIds[i];
SkillGroup group = found.GetSkillGroupByID(skillId);
if (group == null)
{
Debug.LogWarning($"load_skill_detail_prefab_inHeroDetailPrefab: could not find SkillGroup for skillId={skillId} in heroId={heroId}");
continue;
}
var go = Instantiate(skillDetailPrefab, contentParent);
var detail = go.GetComponent<skill_detail_prefab_inHeroDetail>();
if (detail == null)
{
Debug.LogWarning("load_skill_detail_prefab_inHeroDetailPrefab: instantiated prefab missing skill_detail_prefab_inHeroDetail component");
continue;
}
// Populate fields for equipped skill
if (detail.skill_info_image != null)
{
detail.skill_info_image.sprite = group.groupIcon;
detail.skill_info_image.color = group.groupIcon != null ? new Color(1f, 1f, 1f, 1f) : new Color(1f, 1f, 1f, 0f);
}
if (detail.skill_info_name != null)
{
detail.skill_info_name.text = group.groupName ?? string.Empty;
}
if (detail.skill_info_description != null)
{
detail.skill_info_description.text = group.skillDescriptionsText ?? string.Empty;
}
created++;
}
else
{
// Instantiate empty slot
var go = Instantiate(skillDetailPrefab, contentParent);
var detail = go.GetComponent<skill_detail_prefab_inHeroDetail>();
if (detail == null)
{
Debug.LogWarning("load_skill_detail_prefab_inHeroDetailPrefab: instantiated prefab missing skill_detail_prefab_inHeroDetail component");
continue;
}
// Populate fields for empty slot
if (i < currentMaxSlots)
{
// Available slot
if (detail.skill_info_image != null)
{
detail.skill_info_image.sprite = detail.skill_slot_available_image;
detail.skill_info_image.color = detail.skill_slot_available_image != null ? Color.white : new Color(1f, 1f, 1f, 0f);
}
if (detail.skill_info_name != null)
{
detail.skill_info_name.text = "技能槽位空闲";
}
if (detail.skill_info_description != null)
{
detail.skill_info_description.text = "技能槽位空闲,推荐装配一个技能";
}
}
else
{
// Locked slot
if (detail.skill_info_image != null)
{
detail.skill_info_image.sprite = detail.skill_slot_locked_image;
detail.skill_info_image.color = detail.skill_slot_locked_image != null ? Color.white : new Color(1f, 1f, 1f, 0f);
}
if (detail.skill_info_name != null)
{
detail.skill_info_name.text = "技能槽位锁定";
}
if (detail.skill_info_description != null)
{
detail.skill_info_description.text = "继续升级以解锁新槽位";
}
}
created++;
}
}
Debug.Log($"load_skill_detail_prefab_inHeroDetailPrefab: instantiated {created} skill detail prefabs for heroId={heroId}");
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 218774c47fa995543b7b31421e3b9205
@@ -11,6 +11,7 @@ GameObject:
- component: {fileID: 1027150294156609432}
- component: {fileID: 8451071590114106180}
- component: {fileID: 7151068784241930387}
- component: {fileID: 223412468558196702}
m_Layer: 0
m_Name: skillName
m_TagString: Untagged
@@ -35,7 +36,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 120, y: 30}
m_SizeDelta: {x: 80, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8451071590114106180
CanvasRenderer:
@@ -69,9 +70,9 @@ MonoBehaviour:
m_Font: {fileID: 12800000, guid: cc180dff846d13a4d88ddaed6f77e5cd, type: 3}
m_FontSize: 15
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 0
m_MaxSize: 151
m_BestFit: 1
m_MinSize: 4
m_MaxSize: 15
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
@@ -79,6 +80,20 @@ MonoBehaviour:
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: "\u6280\u80FD\u540D\u79F0"
--- !u!114 &223412468558196702
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1981037611364859245}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 0
m_VerticalFit: 0
--- !u!1 &4988234301424525429
GameObject:
m_ObjectHideFlags: 0
@@ -111,13 +126,12 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1027150294156609432}
- {fileID: 3105447207061763408}
m_Father: {fileID: 6728874159946636146}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 120, y: 30}
m_AnchoredPosition: {x: 15, y: 0}
m_SizeDelta: {x: 80, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6783521660050107131
CanvasRenderer:
@@ -230,6 +244,8 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8437657956846986280}
- {fileID: 3105447207061763408}
- {fileID: 4688030792267625363}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -263,6 +279,81 @@ MonoBehaviour:
isSelected: 0
heroId: 0
isReadOnly: 0
--- !u!1 &7330218100932204269
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8437657956846986280}
- component: {fileID: 3658629851583884412}
- component: {fileID: 994354326771089352}
m_Layer: 0
m_Name: bottomShadow
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8437657956846986280
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7330218100932204269}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6728874159946636146}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -39, y: -1}
m_SizeDelta: {x: 30, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3658629851583884412
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7330218100932204269}
m_CullTransparentMesh: 1
--- !u!114 &994354326771089352
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7330218100932204269}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 0.4392157}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &7891944755686443198
GameObject:
m_ObjectHideFlags: 0
@@ -293,11 +384,11 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4688030792267625363}
m_Father: {fileID: 6728874159946636146}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -45, y: 0}
m_AnchoredPosition: {x: -40, y: 0}
m_SizeDelta: {x: 30, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5651005210691825991
@@ -321,14 +412,14 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.6679245, g: 0.6679245, b: 0.6679245, a: 1}
m_Color: {r: 0.990566, g: 0.990566, b: 0.990566, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Sprite: {fileID: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
@@ -0,0 +1,28 @@
using UnityEngine;
using UnityEngine.UI;
public class skill_detail_prefab_inHeroDetail : MonoBehaviour
{
[Header("prefabInfos")]
public Image skill_info_image;
public Text skill_info_name;
public Text skill_info_description;
[Header("defaultImages")]
public Sprite default_skill_image;
public Sprite skill_slot_available_image;
public Sprite skill_slot_unavailable_image;
public Sprite skill_slot_locked_image;
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 8dd22ffc78dad03418ef9e3fff3a6d1f
@@ -0,0 +1,445 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &338916312725217567
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8725241624818700542}
- component: {fileID: 4124427729845495542}
- component: {fileID: 6295515879753058719}
m_Layer: 0
m_Name: skillInfoText
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8725241624818700542
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 338916312725217567}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7749999690041009414}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 100.84909, y: -25.2972}
m_SizeDelta: {x: 1030.2424, y: 90}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4124427729845495542
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 338916312725217567}
m_CullTransparentMesh: 1
--- !u!114 &6295515879753058719
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 338916312725217567}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.9254902, g: 0.9254902, b: 0.9254902, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 12800000, guid: 775c674e81662c644b64550d2e8f74e0, type: 3}
m_FontSize: 30
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 0
m_MaxSize: 48
m_Alignment: 6
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: "\u5B54\u5609\u5F6C\u518D\u6B21\u66F4\u6539\u9700\u6C42\u65F6\uFF0C\u989D\u5916\u6478\u4E00\u5F20\u724C\u3002\n\u69FD\u4F4D\u7A7A\u95F2\u4E2D\u3002\u63A8\u8350\u60A8\u88C5\u914D\u4E00\u4E2A\u53EF\u7528\u6280\u80FD\u3002\n\u69FD\u4F4D\u5DF2\u9501\u5B9A\u3002\u5347\u7EA7\u4EE5\u89E3\u9501\u8BE5\u69FD\u4F4D\u3002"
--- !u!1 &467368590629320919
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2102418086174114411}
- component: {fileID: 6787124985996953894}
- component: {fileID: 8866495854987004560}
m_Layer: 0
m_Name: boarder
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2102418086174114411
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 467368590629320919}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1097740655041088334}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 175, y: 175}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6787124985996953894
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 467368590629320919}
m_CullTransparentMesh: 1
--- !u!114 &8866495854987004560
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 467368590629320919}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: c7c2fe3c72ded9244bf6b5506cc84f41, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &4158255331876823296
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3402633476703254850}
- component: {fileID: 8745787801725443741}
- component: {fileID: 6831060202394386689}
m_Layer: 0
m_Name: skillName
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3402633476703254850
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4158255331876823296}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7749999690041009414}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -67.6337, y: 45}
m_SizeDelta: {x: 693.277, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8745787801725443741
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4158255331876823296}
m_CullTransparentMesh: 1
--- !u!114 &6831060202394386689
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4158255331876823296}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.9245283, g: 0.9245283, b: 0.9245283, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 12800000, guid: dfa10de3e2846524089b5073175cd151, type: 3}
m_FontSize: 48
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 4
m_MaxSize: 48
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: "\u6280\u80FD\u540D / \u7A7A\u95F2\u69FD\u4F4D / \u9501\u5B9A\u69FD\u4F4D"
--- !u!1 &5512514823739788927
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1227634720023912104}
- component: {fileID: 5125611924385008718}
- component: {fileID: 2580755516874286836}
m_Layer: 0
m_Name: boarder
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1227634720023912104
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5512514823739788927}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7749999690041009414}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 84.8645, y: 0}
m_SizeDelta: {x: 1027.1226, y: 175}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5125611924385008718
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5512514823739788927}
m_CullTransparentMesh: 1
--- !u!114 &2580755516874286836
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5512514823739788927}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 0
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &5575579192340344948
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7749999690041009414}
- component: {fileID: 788204036056720652}
m_Layer: 0
m_Name: skill_detail_prefab_inHeroDetail
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7749999690041009414
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5575579192340344948}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1097740655041088334}
- {fileID: 3402633476703254850}
- {fileID: 8725241624818700542}
- {fileID: 1227634720023912104}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 1255.5, y: 200}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &788204036056720652
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5575579192340344948}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8dd22ffc78dad03418ef9e3fff3a6d1f, type: 3}
m_Name:
m_EditorClassIdentifier:
skill_info_image: {fileID: 1986399476140300407}
skill_info_name: {fileID: 6831060202394386689}
skill_info_description: {fileID: 6295515879753058719}
default_skill_image: {fileID: 0}
skill_slot_available_image: {fileID: 21300000, guid: 66801968c2d91024b99fa9bd30c8d417, type: 3}
skill_slot_unavailable_image: {fileID: 21300000, guid: 9dd3414b0d3ab3c4688fd936bf5d179d, type: 3}
skill_slot_locked_image: {fileID: 21300000, guid: d6c1017e6bb4db647837c0b69e568f7a, type: 3}
--- !u!1 &6873625182721615882
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1097740655041088334}
- component: {fileID: 3418678292816670251}
- component: {fileID: 1986399476140300407}
m_Layer: 0
m_Name: skill_icno_Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1097740655041088334
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6873625182721615882}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2102418086174114411}
m_Father: {fileID: 7749999690041009414}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -526.7, y: 0}
m_SizeDelta: {x: 150, y: 150}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3418678292816670251
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6873625182721615882}
m_CullTransparentMesh: 1
--- !u!114 &1986399476140300407
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6873625182721615882}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 1d3fa0ef2bea3774e831fa12a9d7c7d1
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -410,7 +410,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -50, y: -21.63324}
m_AnchoredPosition: {x: -87.5, y: -345}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1481319262819956495
@@ -431,14 +431,14 @@ MonoBehaviour:
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 1
m_Spacing: 40
m_Spacing: -35
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
m_ReverseArrangement: 1
--- !u!1 &4429112831358588495
GameObject:
m_ObjectHideFlags: 0
@@ -356,6 +356,12 @@ public class slots_heroSlots : MonoBehaviour, IDropHandler, IBeginDragHandler, I
// if currentSelectedCharacterCard exists, keep unchanged
// else ensure slots reflect team manager data by calling ResetTeamCharacter if selection exists
}
// Sync with newTeamSelector after swap
if (newTeamSelector.Instance != null)
{
newTeamSelector.Instance.UpdateAndSaveSelectedHeroes();
}
}
public void SetSlot(int id, string name, Sprite sprite)
@@ -445,6 +451,12 @@ public class slots_heroSlots : MonoBehaviour, IDropHandler, IBeginDragHandler, I
skillSlot.isSelected = true; // Since equipped
skillSlot.isReadOnly = true; // Set to read-only for display in hero slot
skillSlot.ApplyState();
// Disable the bottom image for hero slot display
if (skillSlot.skillCard_bottomImage != null)
{
skillSlot.skillCard_bottomImage.gameObject.SetActive(false);
}
}
}
}
@@ -531,6 +543,12 @@ public class slots_heroSlots : MonoBehaviour, IDropHandler, IBeginDragHandler, I
detailScript.characterSO = heroSO;
}
// Load skill details using the new script
if (load_skill_detail_prefab_inHeroDetailPrefab.Instance != null)
{
load_skill_detail_prefab_inHeroDetailPrefab.Instance.LoadSkillDetails(heroSlot_heroID);
}
Debug.Log($"Displayed details for hero ID {heroSlot_heroID}");
}
}
@@ -4,6 +4,7 @@ using UnityEngine.EventSystems;
#if UNITY_EDITOR
using UnityEditor;
#endif
using System.Linq;
public class slots_skillSlots : MonoBehaviour, IPointerClickHandler, IPointerEnterHandler, IPointerExitHandler
{
@@ -73,6 +74,32 @@ public class slots_skillSlots : MonoBehaviour, IPointerClickHandler, IPointerEnt
Debug.LogWarning($"slots_skillSlots.ToggleSelect: 未找到 hero SO, heroId={heroId}");
}
// 检查是否可以选择(如果要选择且未选中)
if (!isSelected)
{
// 获取当前等级的技能槽位限制
var levelInfo = so?.GetEffectiveLevelForCurrentEXP();
int maxSlots = levelInfo?.skill_slot_limited ?? int.MaxValue; // 如果未设置,默认无限制
int currentEquipped = so?.equippedSkillGroupIDs.Where(id => id != 0).Count() ?? 0;
if (currentEquipped >= maxSlots)
{
Debug.LogWarning($"slots_skillSlots.ToggleSelect: 超过技能槽位限制 ({currentEquipped}/{maxSlots}), 无法选择");
return; // 不切换状态
}
// 获取技能组的等级限制
var skillGroup = so?.GetSkillGroupByID(skillCard_skillID);
int requiredLevel = skillGroup?.thisSkill_levelLimit ?? 1;
int currentLevel = levelInfo?.levelID ?? 0;
if (currentLevel < requiredLevel)
{
Debug.LogWarning($"slots_skillSlots.ToggleSelect: 等级不足 ({currentLevel}/{requiredLevel}), 无法选择技能组 {skillCard_skillID}");
return; // 不切换状态
}
}
// 切换状态
isSelected = !isSelected;
ApplyState();
@@ -158,7 +185,33 @@ public class slots_skillSlots : MonoBehaviour, IPointerClickHandler, IPointerEnt
string type = "技能";
string name = group.groupName ?? "未知技能";
string status = "可用"; // 可以根据逻辑判断
// 检查技能可用性
string status;
var levelInfo = hero.GetEffectiveLevelForCurrentEXP();
int maxSlots = levelInfo?.skill_slot_limited ?? int.MaxValue;
int currentEquipped = hero.equippedSkillGroupIDs.Where(id => id != 0).Count();
int requiredLevel = group.thisSkill_levelLimit;
int currentLevel = levelInfo?.levelID ?? 0;
if (currentLevel < requiredLevel)
{
string levelName = GetLevelName(requiredLevel);
status = $"需要等级{levelName}";
}
else if (currentEquipped >= maxSlots)
{
status = "技能已达上限";
}
else if (isSelected)
{
status = "技能已选择";
}
else
{
status = "技能可用";
}
string description = group.skillDescriptionsText ?? "无描述";
loadDetailsPrefab.Instance.ShowDetails(type, name, status, description, Input.mousePosition);
@@ -183,4 +236,17 @@ public class slots_skillSlots : MonoBehaviour, IPointerClickHandler, IPointerEnt
}
return null;
}
// 辅助方法:根据levelID获取等级名称
private string GetLevelName(int levelID)
{
switch (levelID)
{
case 1: return "C";
case 2: return "B";
case 3: return "A";
case 4: return "S";
default: return "未知";
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

@@ -0,0 +1,156 @@
fileFormatVersion: 2
guid: 8136a262f526d9148bf2a0a168a62faa
TextureImporter:
internalIDToNameTable:
- first:
213: 7908220503739782890
second: "\u672A\u6807\u9898-2 (2)_0"
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: "\u672A\u6807\u9898-2 (2)_0"
rect:
serializedVersion: 2
x: 0
y: 0
width: 580
height: 290
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
customData:
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: ae6deda06a4afbd60800000000000000
internalID: 7908220503739782890
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
"\u672A\u6807\u9898-2 (2)_0": 7908220503739782890
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant: