This commit is contained in:
2026-09-30 03:36:44 +08:00
parent 47d6b3586c
commit e7a685a6d1
57 changed files with 1593 additions and 978 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 15 KiB

@@ -8,7 +8,7 @@ TextureImporter:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 14 KiB

@@ -8,7 +8,7 @@ TextureImporter:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 14 KiB

@@ -8,7 +8,7 @@ TextureImporter:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

@@ -8,7 +8,7 @@ TextureImporter:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

@@ -8,7 +8,7 @@ TextureImporter:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 43 KiB

@@ -8,7 +8,7 @@ TextureImporter:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 0
linearTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

@@ -93,7 +93,7 @@ TextureImporter:
uncompressedFormat: 0
desiredFormat: 0
usageMode: 0
colorSpace: 1
colorSpace: 0
androidETC2FallbackFormat: 0
width: 0
height: 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

@@ -93,7 +93,7 @@ TextureImporter:
uncompressedFormat: 0
desiredFormat: 0
usageMode: 0
colorSpace: 1
colorSpace: 0
androidETC2FallbackFormat: 0
width: 0
height: 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 26 KiB

@@ -93,7 +93,7 @@ TextureImporter:
uncompressedFormat: 0
desiredFormat: 0
usageMode: 0
colorSpace: 1
colorSpace: 0
androidETC2FallbackFormat: 0
width: 0
height: 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 35 KiB

@@ -93,7 +93,7 @@ TextureImporter:
uncompressedFormat: 0
desiredFormat: 0
usageMode: 0
colorSpace: 1
colorSpace: 0
androidETC2FallbackFormat: 0
width: 0
height: 0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

@@ -93,7 +93,7 @@ TextureImporter:
uncompressedFormat: 0
desiredFormat: 0
usageMode: 0
colorSpace: 1
colorSpace: 0
androidETC2FallbackFormat: 0
width: 0
height: 0
@@ -311,7 +311,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1552233183994873}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3cf5a44414476512e00c3e7a2569a919, type: 3}
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
@@ -340,7 +340,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1552233183994873}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 18d0a90695249463551c00f45766e642, type: 3}
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
@@ -410,10 +410,10 @@ MonoBehaviour:
m_GameObject: {fileID: 1160841518881653}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ff326197253ae4cec0b46632391386ec, type: 3}
m_Script: {fileID: 11500000, guid: d85b887af7e6c3f45a2e2d2920d641bc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 2100000, guid: 3e1b334aed74eec479ebcfb0007a77ea, type: 2}
m_Material: {fileID: 2100000, guid: b66cf7a186d13054989b33a5c90044e4, type: 2}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
@@ -483,10 +483,10 @@ MonoBehaviour:
m_GameObject: {fileID: 1450990641379865}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ff326197253ae4cec0b46632391386ec, type: 3}
m_Script: {fileID: 11500000, guid: d85b887af7e6c3f45a2e2d2920d641bc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 2100000, guid: 3e1b334aed74eec479ebcfb0007a77ea, type: 2}
m_Material: {fileID: 2100000, guid: b66cf7a186d13054989b33a5c90044e4, type: 2}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
@@ -16191,7 +16191,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1911851853333204}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3cf5a44414476512e00c3e7a2569a919, type: 3}
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
@@ -16247,7 +16247,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1421038991409123}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3cf5a44414476512e00c3e7a2569a919, type: 3}
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
@@ -16303,7 +16303,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1116698324144065}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 04f84fc2003509a5e7e068ec1271cc40, type: 3}
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
@@ -16336,7 +16336,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1116698324144065}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 598ca59b26b303be9752bcc87e36626e, type: 3}
m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3}
m_Name:
m_EditorClassIdentifier:
m_EffectColor: {r: 0, g: 0, b: 0, a: 0.5}
@@ -311,7 +311,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1525023941169854}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3cf5a44414476512e00c3e7a2569a919, type: 3}
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
@@ -340,7 +340,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1525023941169854}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 18d0a90695249463551c00f45766e642, type: 3}
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
@@ -410,10 +410,10 @@ MonoBehaviour:
m_GameObject: {fileID: 1735761202626540}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ff326197253ae4cec0b46632391386ec, type: 3}
m_Script: {fileID: 11500000, guid: d85b887af7e6c3f45a2e2d2920d641bc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 2100000, guid: 3e1b334aed74eec479ebcfb0007a77ea, type: 2}
m_Material: {fileID: 2100000, guid: b66cf7a186d13054989b33a5c90044e4, type: 2}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
@@ -483,10 +483,10 @@ MonoBehaviour:
m_GameObject: {fileID: 1460483137447031}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ff326197253ae4cec0b46632391386ec, type: 3}
m_Script: {fileID: 11500000, guid: d85b887af7e6c3f45a2e2d2920d641bc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 2100000, guid: 3e1b334aed74eec479ebcfb0007a77ea, type: 2}
m_Material: {fileID: 2100000, guid: b66cf7a186d13054989b33a5c90044e4, type: 2}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
@@ -16191,7 +16191,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1515405999620237}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3cf5a44414476512e00c3e7a2569a919, type: 3}
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
@@ -16247,7 +16247,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1591274284649123}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3cf5a44414476512e00c3e7a2569a919, type: 3}
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
@@ -16303,7 +16303,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1537074987907429}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 04f84fc2003509a5e7e068ec1271cc40, type: 3}
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
@@ -16336,7 +16336,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1537074987907429}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 598ca59b26b303be9752bcc87e36626e, type: 3}
m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3}
m_Name:
m_EditorClassIdentifier:
m_EffectColor: {r: 0, g: 0, b: 0, a: 0.5}
@@ -311,7 +311,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1173808550064851}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3cf5a44414476512e00c3e7a2569a919, type: 3}
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
@@ -340,7 +340,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1173808550064851}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 18d0a90695249463551c00f45766e642, type: 3}
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
@@ -410,10 +410,10 @@ MonoBehaviour:
m_GameObject: {fileID: 1064661889741224}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ff326197253ae4cec0b46632391386ec, type: 3}
m_Script: {fileID: 11500000, guid: d85b887af7e6c3f45a2e2d2920d641bc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 2100000, guid: 3e1b334aed74eec479ebcfb0007a77ea, type: 2}
m_Material: {fileID: 2100000, guid: b66cf7a186d13054989b33a5c90044e4, type: 2}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
@@ -483,10 +483,10 @@ MonoBehaviour:
m_GameObject: {fileID: 1535229679482237}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ff326197253ae4cec0b46632391386ec, type: 3}
m_Script: {fileID: 11500000, guid: d85b887af7e6c3f45a2e2d2920d641bc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 2100000, guid: 3e1b334aed74eec479ebcfb0007a77ea, type: 2}
m_Material: {fileID: 2100000, guid: b66cf7a186d13054989b33a5c90044e4, type: 2}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
@@ -16191,7 +16191,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1801655681670713}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3cf5a44414476512e00c3e7a2569a919, type: 3}
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
@@ -16247,7 +16247,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1072062327383807}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3cf5a44414476512e00c3e7a2569a919, type: 3}
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
@@ -16303,7 +16303,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1534508053786779}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 04f84fc2003509a5e7e068ec1271cc40, type: 3}
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
@@ -16336,7 +16336,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1534508053786779}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 598ca59b26b303be9752bcc87e36626e, type: 3}
m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3}
m_Name:
m_EditorClassIdentifier:
m_EffectColor: {r: 0, g: 0, b: 0, a: 0.5}
@@ -311,7 +311,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1574086685729664}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3cf5a44414476512e00c3e7a2569a919, type: 3}
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
@@ -340,7 +340,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1574086685729664}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 18d0a90695249463551c00f45766e642, type: 3}
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
@@ -410,10 +410,10 @@ MonoBehaviour:
m_GameObject: {fileID: 1577435084522702}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ff326197253ae4cec0b46632391386ec, type: 3}
m_Script: {fileID: 11500000, guid: d85b887af7e6c3f45a2e2d2920d641bc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 2100000, guid: 3e1b334aed74eec479ebcfb0007a77ea, type: 2}
m_Material: {fileID: 2100000, guid: b66cf7a186d13054989b33a5c90044e4, type: 2}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
@@ -483,10 +483,10 @@ MonoBehaviour:
m_GameObject: {fileID: 1147451043705154}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ff326197253ae4cec0b46632391386ec, type: 3}
m_Script: {fileID: 11500000, guid: d85b887af7e6c3f45a2e2d2920d641bc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 2100000, guid: 3e1b334aed74eec479ebcfb0007a77ea, type: 2}
m_Material: {fileID: 2100000, guid: b66cf7a186d13054989b33a5c90044e4, type: 2}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
@@ -16191,7 +16191,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1768131929316585}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3cf5a44414476512e00c3e7a2569a919, type: 3}
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
@@ -16247,7 +16247,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1646163728005805}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3cf5a44414476512e00c3e7a2569a919, type: 3}
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
@@ -16303,7 +16303,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1843572771334082}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 04f84fc2003509a5e7e068ec1271cc40, type: 3}
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
@@ -16336,7 +16336,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1843572771334082}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 598ca59b26b303be9752bcc87e36626e, type: 3}
m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3}
m_Name:
m_EditorClassIdentifier:
m_EffectColor: {r: 0.3803922, g: 0.1921569, b: 0.1058824, a: 0.5}
@@ -1,9 +1,11 @@
fileFormatVersion: 2
guid: 476eedf726df42541992e75353a41b78
timeCreated: 1766415474
licenseType: Free
TextureImporter:
serializedVersion: 11
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
@@ -20,12 +22,9 @@ TextureImporter:
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
@@ -43,7 +42,7 @@ TextureImporter:
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 0
alignment: 0
@@ -52,92 +51,62 @@ TextureImporter:
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 1
platformSettings:
- serializedVersion: 4
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
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: 2
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: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
spriteID:
internalID: 0
vertices: []
indices:
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
spritePackingTag:
output:
textureImportInstructions:
compressedFormat: 0
uncompressedFormat: 0
desiredFormat: 0
usageMode: 0
colorSpace: 0
androidETC2FallbackFormat: 0
width: 0
height: 0
compressionQuality: 0
androidETC2FallbackDownscale: 0
sourceTextureInformation:
width: 0
height: 0
doesTextureContainAlpha: 0
sourceWasHDR: 0
importInspectorWarnings:
pSDRemoveMatte: 0
userData:
pSDShowRemoveMatteOption: 0
userData:
assetBundleName: pw_prefab
assetBundleVariant:
assetBundleVariant:
@@ -43,4 +43,3 @@ Material:
m_Colors:
- _OutlineColor: {r: 1, g: 1, b: 0, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
@@ -1,9 +1,11 @@
fileFormatVersion: 2
guid: 92dd6a74b27d66545a684e0bf0cfa8c1
timeCreated: 1766415474
licenseType: Free
TextureImporter:
serializedVersion: 11
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
@@ -20,12 +22,9 @@ TextureImporter:
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
@@ -43,7 +42,7 @@ TextureImporter:
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 0
alignment: 0
@@ -52,92 +51,62 @@ TextureImporter:
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 1
platformSettings:
- serializedVersion: 4
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
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: 2
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: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
spriteID:
internalID: 0
vertices: []
indices:
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
spritePackingTag:
output:
textureImportInstructions:
compressedFormat: 0
uncompressedFormat: 0
desiredFormat: 0
usageMode: 0
colorSpace: 0
androidETC2FallbackFormat: 0
width: 0
height: 0
compressionQuality: 0
androidETC2FallbackDownscale: 0
sourceTextureInformation:
width: 0
height: 0
doesTextureContainAlpha: 0
sourceWasHDR: 0
importInspectorWarnings:
pSDRemoveMatte: 0
userData:
pSDShowRemoveMatteOption: 0
userData:
assetBundleName: pw_prefab
assetBundleVariant:
assetBundleVariant:
@@ -43,4 +43,3 @@ Material:
m_Colors:
- _OutlineColor: {r: 1, g: 1, b: 0, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
@@ -1,9 +1,11 @@
fileFormatVersion: 2
guid: c4b9c8aef8ddf1845b2da8589eac4034
timeCreated: 1766415474
licenseType: Free
TextureImporter:
serializedVersion: 11
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
@@ -20,12 +22,9 @@ TextureImporter:
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
@@ -43,7 +42,7 @@ TextureImporter:
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 0
alignment: 0
@@ -52,92 +51,62 @@ TextureImporter:
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 1
platformSettings:
- serializedVersion: 4
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
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: 2
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: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
spriteID:
internalID: 0
vertices: []
indices:
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
spritePackingTag:
output:
textureImportInstructions:
compressedFormat: 0
uncompressedFormat: 0
desiredFormat: 0
usageMode: 0
colorSpace: 0
androidETC2FallbackFormat: 0
width: 0
height: 0
compressionQuality: 0
androidETC2FallbackDownscale: 0
sourceTextureInformation:
width: 0
height: 0
doesTextureContainAlpha: 0
sourceWasHDR: 0
importInspectorWarnings:
pSDRemoveMatte: 0
userData:
pSDShowRemoveMatteOption: 0
userData:
assetBundleName: pw_prefab
assetBundleVariant:
assetBundleVariant:
@@ -43,4 +43,3 @@ Material:
m_Colors:
- _OutlineColor: {r: 1, g: 1, b: 0, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
@@ -1,9 +1,11 @@
fileFormatVersion: 2
guid: 2b458bfc07252594ea9e83de2d685be3
timeCreated: 1766415473
licenseType: Free
TextureImporter:
serializedVersion: 11
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
@@ -20,12 +22,9 @@ TextureImporter:
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
@@ -43,7 +42,7 @@ TextureImporter:
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 0
alignment: 0
@@ -52,92 +51,62 @@ TextureImporter:
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 1
platformSettings:
- serializedVersion: 4
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
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: 2
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: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
spriteID:
internalID: 0
vertices: []
indices:
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
spritePackingTag:
output:
textureImportInstructions:
compressedFormat: 0
uncompressedFormat: 0
desiredFormat: 0
usageMode: 0
colorSpace: 0
androidETC2FallbackFormat: 0
width: 0
height: 0
compressionQuality: 0
androidETC2FallbackDownscale: 0
sourceTextureInformation:
width: 0
height: 0
doesTextureContainAlpha: 0
sourceWasHDR: 0
importInspectorWarnings:
pSDRemoveMatte: 0
userData:
pSDShowRemoveMatteOption: 0
userData:
assetBundleName: pw_prefab
assetBundleVariant:
assetBundleVariant:
@@ -43,4 +43,3 @@ Material:
m_Colors:
- _OutlineColor: {r: 1, g: 1, b: 0, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
@@ -1,9 +1,11 @@
fileFormatVersion: 2
guid: c3b055781cce6ab4cb46a58f893cbd75
timeCreated: 1766415474
licenseType: Free
TextureImporter:
serializedVersion: 11
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
@@ -20,12 +22,9 @@ TextureImporter:
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
@@ -43,7 +42,7 @@ TextureImporter:
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 0
alignment: 0
@@ -52,92 +51,62 @@ TextureImporter:
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 1
platformSettings:
- serializedVersion: 4
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
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: 2
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: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
spriteID:
internalID: 0
vertices: []
indices:
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
spritePackingTag:
output:
textureImportInstructions:
compressedFormat: 0
uncompressedFormat: 0
desiredFormat: 0
usageMode: 0
colorSpace: 0
androidETC2FallbackFormat: 0
width: 0
height: 0
compressionQuality: 0
androidETC2FallbackDownscale: 0
sourceTextureInformation:
width: 0
height: 0
doesTextureContainAlpha: 0
sourceWasHDR: 0
importInspectorWarnings:
pSDRemoveMatte: 0
userData:
pSDShowRemoveMatteOption: 0
userData:
assetBundleName: pw_prefab
assetBundleVariant:
assetBundleVariant:
@@ -43,4 +43,3 @@ Material:
m_Colors:
- _OutlineColor: {r: 1, g: 1, b: 0, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
@@ -1,9 +1,11 @@
fileFormatVersion: 2
guid: aab68d6d1b33c9446994a1176c9bcd6b
timeCreated: 1766415474
licenseType: Free
TextureImporter:
serializedVersion: 11
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
@@ -20,12 +22,9 @@ TextureImporter:
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
@@ -43,7 +42,7 @@ TextureImporter:
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 0
alignment: 0
@@ -52,92 +51,62 @@ TextureImporter:
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 1
platformSettings:
- serializedVersion: 4
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
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: 2
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: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
spriteID:
internalID: 0
vertices: []
indices:
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
spritePackingTag:
output:
textureImportInstructions:
compressedFormat: 0
uncompressedFormat: 0
desiredFormat: 0
usageMode: 0
colorSpace: 0
androidETC2FallbackFormat: 0
width: 0
height: 0
compressionQuality: 0
androidETC2FallbackDownscale: 0
sourceTextureInformation:
width: 0
height: 0
doesTextureContainAlpha: 0
sourceWasHDR: 0
importInspectorWarnings:
pSDRemoveMatte: 0
userData:
pSDShowRemoveMatteOption: 0
userData:
assetBundleName: pw_prefab
assetBundleVariant:
assetBundleVariant:
@@ -43,4 +43,3 @@ Material:
m_Colors:
- _OutlineColor: {r: 1, g: 1, b: 0, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
@@ -1,9 +1,11 @@
fileFormatVersion: 2
guid: a3cc0854ef323a04dbc9be445b213d1f
timeCreated: 1766415474
licenseType: Free
TextureImporter:
serializedVersion: 11
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
@@ -20,12 +22,9 @@ TextureImporter:
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
@@ -43,7 +42,7 @@ TextureImporter:
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 0
alignment: 0
@@ -52,92 +51,62 @@ TextureImporter:
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 1
platformSettings:
- serializedVersion: 4
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
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: 2
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: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
spriteID:
internalID: 0
vertices: []
indices:
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
spritePackingTag:
output:
textureImportInstructions:
compressedFormat: 0
uncompressedFormat: 0
desiredFormat: 0
usageMode: 0
colorSpace: 0
androidETC2FallbackFormat: 0
width: 0
height: 0
compressionQuality: 0
androidETC2FallbackDownscale: 0
sourceTextureInformation:
width: 0
height: 0
doesTextureContainAlpha: 0
sourceWasHDR: 0
importInspectorWarnings:
pSDRemoveMatte: 0
userData:
pSDShowRemoveMatteOption: 0
userData:
assetBundleName: pw_prefab
assetBundleVariant:
assetBundleVariant:
@@ -43,4 +43,3 @@ Material:
m_Colors:
- _OutlineColor: {r: 1, g: 1, b: 0, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
@@ -1,9 +1,11 @@
fileFormatVersion: 2
guid: 92e694a6c4b89c2498b505d0ac5fce66
timeCreated: 1766415474
licenseType: Free
TextureImporter:
serializedVersion: 11
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
@@ -20,12 +22,9 @@ TextureImporter:
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
@@ -43,7 +42,7 @@ TextureImporter:
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 0
alignment: 0
@@ -52,92 +51,62 @@ TextureImporter:
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 1
platformSettings:
- serializedVersion: 4
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
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: 2
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: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
spriteID:
internalID: 0
vertices: []
indices:
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
spritePackingTag:
output:
textureImportInstructions:
compressedFormat: 0
uncompressedFormat: 0
desiredFormat: 0
usageMode: 0
colorSpace: 0
androidETC2FallbackFormat: 0
width: 0
height: 0
compressionQuality: 0
androidETC2FallbackDownscale: 0
sourceTextureInformation:
width: 0
height: 0
doesTextureContainAlpha: 0
sourceWasHDR: 0
importInspectorWarnings:
pSDRemoveMatte: 0
userData:
pSDShowRemoveMatteOption: 0
userData:
assetBundleName: pw_prefab
assetBundleVariant:
assetBundleVariant:
@@ -43,4 +43,3 @@ Material:
m_Colors:
- _OutlineColor: {r: 1, g: 1, b: 0, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
+170 -128
View File
@@ -126,6 +126,14 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
[Tooltip("当前装备的炮台编号")]
public int currentTurretNumber;
/// <summary>
/// 当前 XJMH 炮台在 <see cref="xjmhTurretList"/> 中的索引(-1=未初始化)。
/// ⭐ XJMH 四把炮台的 turretNumber 全是 0(不对接后端、没有编号),
/// 炮台身份只能用列表索引表示:切换按钮、帧同步广播/接收统一都用索引。
/// </summary>
[System.NonSerialized]
public int currentTurretIndex = -1;
/// <summary>当前运行中的炮台实例</summary>
public TurretData currentTurret;
@@ -268,8 +276,8 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
if (turretControlMode == TurretControlMode.XJMH && tMP_DiamondNum != null)
tMP_DiamondNum.gameObject.SetActive(false);
// XJMH 模式:炮台是座位自带子对象,预制体里已摆好,不需要加载。
// 这里只做引用初始化,不做激活/停用。
// XJMH 模式:炮台是座位自带子对象,不需要从资源加载,只做初始化
// (整理炮台列表 + 激活默认炮台 = 列表索引 0)
if (turretControlMode == TurretControlMode.XJMH)
InitXJMHTurret();
}
@@ -322,9 +330,8 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
}
/// <summary>
/// XJMH 模式:炮台是座位自带子对象,预制体里已摆好激活状态,不需要 LoadTurret 加载。
/// 此方法只做引用初始化:从 <see cref="xjmhTurretList"/> 取第一个激活的炮台赋给 currentTurret,
/// 并绑定旋转节点、状态机入口、世界坐标缓存。不做任何激活/停用操作。
/// XJMH 模式:炮台是座位自带子对象,预制体里已摆好,不需要 LoadTurret 加载。
/// ⭐ 默认炮台 = 排序后索引 0 的那把(对应座位 GetChild(0) 的绿炮台)。
/// </summary>
private void InitXJMHTurret()
{
@@ -334,33 +341,92 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
return;
}
// 优先取列表中第一个激活的炮台;若全部未激活,取 list[0]
TurretData found = null;
foreach (var td in xjmhTurretList)
NormalizeXJMHTurretList();
ApplyXJMHTurret(0);
}
/// <summary>
/// 整理 XJMH 炮台列表:剔除空引用,并按座位下的兄弟顺序排序。
/// ⭐ 排序原因:切换面板的 4 个按钮固定是 绿/蓝/金/VIP(索引 0~3),
/// 而座位里这四把炮台的兄弟顺序正好就是 绿/蓝/金/VIP。
/// 不排序的话,Inspector 里拖拽的先后顺序会让按钮和炮台对不上。
/// </summary>
private void NormalizeXJMHTurretList()
{
xjmhTurretList.RemoveAll(t => t == null);
xjmhTurretList.Sort((a, b) =>
a.transform.GetSiblingIndex().CompareTo(b.transform.GetSiblingIndex()));
}
/// <summary>
/// XJMH:按列表索引激活炮台(只激活目标那把,其余全部停用)。
/// ⭐ 不能再用 turretNumber 匹配:XJMH 四把炮台的 turretNumber 全是 0,
/// 按编号匹配会把四把一次全激活,且切换到"同编号"的炮台会被判成无需切换(点按钮没反应)。
/// </summary>
private void ApplyXJMHTurret(int index)
{
if (xjmhTurretList == null || index < 0 || index >= xjmhTurretList.Count) return;
TurretData target = xjmhTurretList[index];
if (target == null) return;
for (int i = 0; i < xjmhTurretList.Count; i++)
{
if (td == null) continue;
if (td.gameObject.activeSelf)
{
found = td;
break;
}
}
if (found == null)
{
found = xjmhTurretList[0];
found.gameObject.SetActive(true);
var td = xjmhTurretList[i];
if (td != null)
td.gameObject.SetActive(i == index);
}
currentTurret = found;
currentTurretNumber = found.turretNumber;
// 缓存旋转节点:优先用 TurretData.tra_RotationPivot,否则回退父节点
tra_CurrTurret = GetTurretRotationPivot(currentTurret);
OnStateChange = currentTurret.ChangeState;
currentTurretIndex = index;
currentTurret = target;
currentTurretNumber = target.turretNumber; // XJMH 下恒为 0,仅保持字段同步
tra_CurrTurret = GetTurretRotationPivot(target);
EnsureXJMHTurretMuzzle(target, tra_CurrTurret);
EnsureXJMHTurretAnim(target, tra_CurrTurret);
OnStateChange = target.ChangeState;
UpdateTurretWorldPos();
target.PlayAppearAnim(); // 出现动画(各 SkeletonGraphic 的 Spine startingAnimation)
Debug.Log($"[SitPosData] XJMH 炮台引用已初始化: #{currentTurretNumber}");
Debug.Log($"[SitPosData] XJMH 炮台已切换: 索引{index} ({target.name})");
}
/// <summary>
/// XJMH:修正子弹发射点。
/// ⭐ 预制体里绿/蓝/金三把炮台的 tra_BulletStartPosition 指到了"炮体美术节点"
/// (它的 pivot 在炮体盒子底部,相对旋转中心是 -29.8,等于旋转中心后方),子弹会从炮台后面出来。
/// 真正的炮口是旋转节点下那个空节点 Bullit(相对旋转中心 +50,正前方)——VIP 就是这么配的。
/// ⭐ 只在当前指向的是「带 Graphic 的美术节点」时才修正:自己拖进来的炮口标记节点(无 Graphic)不动。
/// </summary>
private static void EnsureXJMHTurretMuzzle(TurretData turret, Transform pivot)
{
if (pivot == null) return;
// 当前指向的节点没有 Graphic(是炮口标记节点)→ 说明是手动配好的,不动
if (turret.tra_BulletStartPosition != null
&& turret.tra_BulletStartPosition.GetComponent<Graphic>() == null) return;
Transform muzzle = pivot.Find("Bullit");
if (muzzle == null) return;
Debug.LogWarning($"[SitPosData] XJMH 炮台 {turret.name} 的 tra_BulletStartPosition 指向了美术节点,已自动改用炮口节点 Bullit");
turret.tra_BulletStartPosition = muzzle;
}
/// <summary>
/// XJMH:补上炮台动画组件。
/// ⭐ 预制体里绿/蓝/金三把炮台的 TurretData.skeletonAnimation 都是空的(只有 VIP 拖了),
/// 而 TurretData.PlaySkeleton 遇到 null 会直接 return → 这三把炮台动画完全不播。
/// 这里按 VIP 的同一套结构自动补:旋转节点(炮台本体组)下面那个 SkeletonGraphic 就是炮体动画,
/// VIP 的 skeletonAnimation 指的正是它。Inspector 里已经拖了的不会被覆盖。
/// </summary>
private static void EnsureXJMHTurretAnim(TurretData turret, Transform pivot)
{
if (turret.skeletonAnimation != null || pivot == null) return;
turret.skeletonAnimation = pivot.GetComponentInChildren<SkeletonGraphic>(true);
Debug.LogWarning(turret.skeletonAnimation != null
? $"[SitPosData] XJMH 炮台 {turret.name} 的 TurretData.skeletonAnimation 未配置,已自动取旋转节点下的 {turret.skeletonAnimation.name}"
: $"[SitPosData] XJMH 炮台 {turret.name} 的 TurretData.skeletonAnimation 未配置,且旋转节点下没找到 SkeletonGraphic,动画不会播放");
}
private void OnEnable()
@@ -407,18 +473,34 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
// ==================== 长按 img_OpenPT(打开炮台面板) ====================
/// <summary>按下:命中 img_OpenPT(或其子对象)才开始长按计时(其他区域不响应)</summary>
/// <summary>按下:按点落在 img_OpenPT 的屏幕矩形内才开始长按计时(其他区域不响应)</summary>
public void OnPointerDown(PointerEventData eventData)
{
if (img_OpenPT == null) return;
var hit = eventData.pointerCurrentRaycast.gameObject;
if (hit == null) return;
if (hit != img_OpenPT.gameObject && !hit.transform.IsChildOf(img_OpenPT.transform)) return;
if (!IsPointerOnOpenPT(eventData.position)) return;
_openPTPressing = true;
_openPTPressTimer = 0f;
}
/// <summary>
/// 按点是否落在 img_OpenPT 的屏幕矩形内。
/// ⭐ 用坐标矩形判定,而不是比较射线命中的对象:座位下还挂着昵称/表情/炮台等一堆兄弟 UI,
/// 实际被射线命中的往往是它们而不是 img_OpenPT,但它们同属座位层级,
/// 按下事件照样会冒泡到本组件,所以只有按坐标判定才可靠。
/// </summary>
private bool IsPointerOnOpenPT(Vector2 screenPos)
{
if (img_OpenPT == null) return false;
RectTransform rect = img_OpenPT.rectTransform;
if (rect == null) return false;
Canvas canvas = rect.GetComponentInParent<Canvas>();
Camera cam = canvas != null && canvas.renderMode != RenderMode.ScreenSpaceOverlay
? canvas.worldCamera
: null;
return RectTransformUtility.RectangleContainsScreenPoint(rect, screenPos, cam);
}
/// <summary>松开:取消长按计时(未达阈值不触发)</summary>
public void OnPointerUp(PointerEventData eventData)
{
@@ -989,13 +1071,18 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
/// <summary>
/// 玩家加入 → 显示玩家 UI(child0),隐藏等待界面(child1)。
/// ⭐ XJMH 座位没有"玩家界面/等待界面"这一对子节点(child0~3 是四把炮台),
/// 不能在这里动子对象显隐,否则会把炮台当等待界面切来切去,和切换炮台的激活状态互相打架。
/// </summary>
public void ShowPlayer()
{
if (transform.childCount > 0)
transform.GetChild(0).gameObject.SetActive(true);
if (transform.childCount > 1)
transform.GetChild(1).gameObject.SetActive(false);
if (turretControlMode != TurretControlMode.XJMH)
{
if (transform.childCount > 0)
transform.GetChild(0).gameObject.SetActive(true);
if (transform.childCount > 1)
transform.GetChild(1).gameObject.SetActive(false);
}
// 如果是本地玩家的座位,自动注册并加载装备
if (user == GameManager.Instance?.user?.id)
@@ -1026,9 +1113,12 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
/// <summary>
/// 玩家退出/等待 → 显示等待界面(child1),隐藏玩家 UI(child0)。
/// ⭐ XJMH 座位没有这一对子节点(child0~3 是四把炮台),跳过(原因见 ShowPlayer)。
/// </summary>
public void ShowWaiting()
{
if (turretControlMode == TurretControlMode.XJMH) return;
if (transform.childCount > 0)
transform.GetChild(0).gameObject.SetActive(false);
if (transform.childCount > 1)
@@ -1218,7 +1308,8 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
/// <summary>
/// 获取炮台的旋转节点。
/// - 若 TurretData.tra_RotationPivot 已赋值 → 用它(精确指定旋转中心)
/// - 否则回退旧逻辑:炮台父节点(Normal 克隆的中间容器 / XJMH 子对象的父节点)
/// - XJMH:自动取"容器里那个炮台本体节点"(见 <see cref="FindXJMHRotationPivot"/>)
/// - Normal:回退旧逻辑,用炮台父节点(克隆用的中间容器)
/// </summary>
private Transform GetTurretRotationPivot(TurretData turret)
{
@@ -1237,21 +1328,51 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
if (turret.tra_RotationPivot != null)
return turret.tra_RotationPivot;
// 回退:用父节点(兼容旧逻辑)
// ⭐ XJMH:炮台是"容器"(绿=SkeletonGraphic_Green),容器里除了炮台本体,
// 还挂着加减倍按钮(Up)、飞机(lvptfeiji)等其他子节点。
// 转容器本身会把它们一起甩着转;转父节点又等于转整个座位(座位就是 XJMH 炮台的父节点)。
// 真正该转的是容器里那个炮台本体节点 → 自动找。
if (turretControlMode == TurretControlMode.XJMH)
{
Transform pivot = FindXJMHRotationPivot(turret);
return pivot != null ? pivot : turret.transform;
}
// 回退:用父节点(兼容普通模式旧逻辑)
Transform parent = turret.transform.parent;
return parent != null ? parent : turret.transform;
}
/// <summary>
/// XJMH 炮台的旋转节点 = 炮口所在的、炮台的直接子节点。
/// ⭐ 从炮口 <see cref="TurretData.tra_BulletStartPosition"/> 往上走,取"炮台的直接子节点":
/// 炮台容器(SkeletonGraphic_Green / huangjinpaotai_1 / SkeletonGraphic_VIP)
/// └─ 炮台本体 ← 要转的就是它(lvptpaotai_2 / huangjinpaotai_2 / vippaotai01_2)
/// └─ …炮口 tra_BulletStartPosition…
/// 已核对预制体:三种炮台都符合,且与 VIP 上手动填的 TurretData.tra_RotationPivot 完全一致。
/// </summary>
private static Transform FindXJMHRotationPivot(TurretData turret)
{
Transform muzzle = turret.tra_BulletStartPosition;
if (muzzle == null) return null;
Transform node = muzzle;
while (node.parent != null && node.parent != turret.transform)
node = node.parent;
return node.parent == turret.transform ? node : null;
}
/// <summary>
/// 根据炮台编号加载炮台。
/// Normal 模式:从 Addressables 加载预制体并克隆到 turretParent。
/// XJMH 模式:炮台是座位子对象,激活对应编号子对象、停用其他。
/// XJMH 模式:炮台是座位自带子对象,传入值按 <see cref="xjmhTurretList"/> 索引解释(XJMH 炮台没有编号)。
/// </summary>
public void LoadTurret(int turretNumber)
{
if (turretControlMode == TurretControlMode.XJMH)
{
SwitchTurretChild(turretNumber);
SwitchTurretByIndex(turretNumber);
return;
}
LoadTurretNormal(turretNumber);
@@ -1324,104 +1445,25 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
}
/// <summary>
/// XJMH 模式:炮台都是座位的子对象,激活对应编号的炮台、停用其他。
/// 不需要 Instantiate/Destroy,只做激活/停用,无需额外处理。
/// 优先从 <see cref="xjmhTurretList"/> 查找,列表为空时回退遍历子对象。
/// XJMH 模式:按列表索引切换炮台。
/// ⭐ 切换面板的 4 个按钮、帧同步接收端都走这里(XJMH 炮台没有编号,只能用索引)。
/// </summary>
private void SwitchTurretChild(int turretNumber)
{
BulletPool.Instance.ClearActive();
// 炮台挂载根:turretParent 优先,否则用座位自身
Transform parent = turretParent != null ? turretParent : transform;
// 优先用 Inspector 配置的炮台列表
TurretData found = null;
if (xjmhTurretList != null && xjmhTurretList.Count > 0)
{
foreach (var td in xjmhTurretList)
{
if (td == null) continue;
bool active = td.turretNumber == turretNumber;
td.gameObject.SetActive(active);
if (active) found = td;
}
}
else
{
// 回退:列表未配置时遍历子对象
for (int i = 0; i < parent.childCount; i++)
{
var child = parent.GetChild(i);
var td = child.GetComponent<TurretData>();
if (td == null) continue;
if (td.turretNumber == turretNumber)
{
child.gameObject.SetActive(true);
found = td;
}
else
{
child.gameObject.SetActive(false);
}
}
}
if (found == null)
{
Debug.LogWarning($"[SitPosData] XJMH 子对象中未找到炮台 #{turretNumber}");
return;
}
currentTurretNumber = turretNumber;
currentTurret = found;
// 缓存旋转节点:优先用 TurretData.tra_RotationPivot,否则回退父节点
tra_CurrTurret = GetTurretRotationPivot(currentTurret);
OnStateChange = currentTurret.ChangeState;
UpdateTurretWorldPos();
Debug.Log($"[SitPosData] 炮台已切换(XJMH): #{turretNumber}");
}
/// <summary>
/// XJMH 模式:按列表索引直接切换炮台。
/// 用于扇形切换 UI 中按位置选择炮台,避免再做编号匹配。
/// </summary>
/// <param name="index">xjmhTurretList 中的索引</param>
/// <param name="index"><see cref="xjmhTurretList"/> 中的索引</param>
/// <returns>切换成功返回 true;索引越界或列表为空返回 false</returns>
public bool SwitchTurretByIndex(int index)
{
if (turretControlMode != TurretControlMode.XJMH) return false;
if (xjmhTurretList == null || index < 0 || index >= xjmhTurretList.Count) return false;
if (xjmhTurretList[index] == null) return false;
var td = xjmhTurretList[index];
if (td == null) return false;
// 已经是这把 → 不重复切换(避免无谓清屏子弹);currentTurret 为空时仍需重新应用一次
if (index == currentTurretIndex && currentTurret != null) return true;
// 命中当前炮台则无需切换
if (td.turretNumber == currentTurretNumber) return true;
SwitchTurretChild(td.turretNumber);
BulletPool.Instance.ClearActive();
ApplyXJMHTurret(index);
return true;
}
/// <summary>
/// XJMH 模式:根据当前炮台在 xjmhTurretList 中的索引返回下一个炮台编号。
/// 用于"切换到下一把"的快捷操作。循环切换,列表为空返回 -1。
/// </summary>
public int GetNextTurretNumber()
{
if (turretControlMode != TurretControlMode.XJMH) return -1;
if (xjmhTurretList == null || xjmhTurretList.Count == 0) return -1;
int currIdx = xjmhTurretList.FindIndex(td => td != null && td.turretNumber == currentTurretNumber);
if (currIdx < 0) return xjmhTurretList[0].turretNumber;
int nextIdx = (currIdx + 1) % xjmhTurretList.Count;
return xjmhTurretList[nextIdx].turretNumber;
}
/// <summary>
/// 获取当前可用的炮台编号列表。
/// Normal 模式:从资源表按类型查询。
@@ -1823,7 +1865,7 @@ public class SitPosData : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
}
else
{
// 兜底:列表未配置时扫 turretParent 子对象(与 SwitchTurretChild 回退一致)
// 兜底:列表未配置时扫 turretParent 子对象
Transform parent = turretParent != null ? turretParent : transform;
for (int i = 0; i < parent.childCount; i++)
HideTurretAddDown(parent.GetChild(i).GetComponent<TurretData>());
@@ -114,6 +114,9 @@ public class TurretData : MonoBehaviour
private TurretState currState;
/// <summary>出现动画保护截止时间:这段时间内 Idle(动画名为空)不 ClearTrack,避免出现动画刚播就被抹掉</summary>
private float _appearAnimHoldUntil;
/// <summary>
/// 从资源表查询 TurretResourcesData。表里没有则返回 null,调用方应使用 TurretData 自身的 Inspector 默认值。
/// </summary>
@@ -256,6 +259,26 @@ public class TurretData : MonoBehaviour
PlayState(newState);
}
/// <summary>
/// 播放"出现动画":各 SkeletonGraphic 上配置的 Spine startingAnimation(炮台容器/炮体上配的是 out、trans 等)。
/// ⭐ Spine 只在 Awake(第一次激活)应用一次 startingAnimation,而 OnEnable 的 PlayState(Idle)
/// 在动画名为空时会 ClearTrack 把它抹掉,所以切换炮台时补播一次,
/// 并在播放期间保护它不被 Idle 清掉(见 PlaySkeleton 的空动画名分支)。
/// </summary>
public void PlayAppearAnim()
{
float hold = 0f;
foreach (var g in GetComponentsInChildren<SkeletonGraphic>(true))
{
if (g == null || string.IsNullOrEmpty(g.startingAnimation) || g.AnimationState == null) continue;
var track = g.AnimationState.SetAnimation(0, g.startingAnimation, g.startingLoop);
if (!g.startingLoop && track != null)
hold = Mathf.Max(hold, track.Animation.Duration);
}
_appearAnimHoldUntil = Time.time + hold;
}
private void PlayState(TurretState state)
{
switch (currTurretType)
@@ -347,6 +370,11 @@ public class TurretData : MonoBehaviour
// 如果动画名为空 → 停止当前动画(暂停),不再播放任何动画
if (string.IsNullOrEmpty(anim))
{
// ⭐ 出现动画播放期间不覆盖:ClearTrack 会把刚播的出现动画抹掉。
// 典型场景:切炮台后松手,HandleInput 会发一次 ChangeState(Idle),
// 而 idleAnim 为空正好走这个分支,出现动画一帧就被清掉。
if (Time.time < _appearAnimHoldUntil) return;
skeletonAnimation.AnimationState.ClearTrack(0);
skeletonAnimation.AnimationState.SetEmptyAnimation(0, 0f);
return;
@@ -282,14 +282,6 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
public GameObject autoExitGamePanel; //倒计时面板
public TextMeshProUGUI tmp_ExitDaoJiShi; //里面显示的是这个 n秒后自动关闭
public Button btn_CloseAutoExitGamePanel; //退出游戏按钮
// XJMH 长按炮台扇形切换
[Header("XJMH 炮台长按切换")]
[Tooltip("长按炮台触发扇形切换的阈值(秒)")]
public float turretLongPressThreshold = 0.5f;
/// <summary>是否正在等待长按炮台判定(按下炮台但尚未超过阈值)</summary>
protected bool _isPendingTurretLongPress = false;
/// <summary>炮台扇形切换UI是否已显示</summary>
protected bool _isTurretSwitcherActive = false;
// ⭐ 起飞炮台(FlyTurretData):轻点空白处触发起飞
// 按下时先走正常开火流程,松开时判定为"轻点"(时长短+几乎没移动)才起飞,
@@ -523,8 +515,8 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
{
base.OnHide();
// ⭐ 清理 XJMH 扇形切换UI(如果还在显示)
CleanupTurretSwitcher();
// ⭐ 清理炮台切换面板(如果还在显示)
CleanupTurretPanel();
// ⭐ 解绑长按 img_OpenPT 打开炮台面板的订阅
UnhookOpenPTLongPress();
@@ -561,32 +553,38 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
private Action _openPTLongPressHandler;
/// <summary>
/// 订阅本地座位的 img_OpenPT 长按事件:长按开关炮台面板(subUIManager,与 btn_ChangeTurret 同逻辑)。
/// XJMH 模式没有炮台面板(用扇形切换),不订阅。
/// 订阅本地座位的 img_OpenPT 长按事件:长按触发 OnOpenPTLongPressTriggered(子类可覆写)。
/// </summary>
private void HookOpenPTLongPress(SitPosData sit)
{
// 先解绑旧订阅
UnhookOpenPTLongPress();
if (sit == null || sit.turretControlMode == TurretControlMode.XJMH) return;
if (sit == null) return;
_openPTLongPressHandler = () =>
{
// 与 btn_ChangeTurret 完全相同的开关逻辑:开着就关,没开就打开
var panel = subUIManager.Get<SubUIBase>(UIPanel.TurretPanel);
if (panel != null && panel.gameObject.activeSelf)
subUIManager.Hide(UIPanel.TurretPanel);
else
{
subUIManager.ShowAsync(UIPanel.TurretPanel, (ItemPanelSelect.Turrect, true));
StartCoroutine(CloseSettingList());
}
};
_openPTLongPressHandler = () => OnOpenPTLongPressTriggered();
sit.OnOpenPTLongPress += _openPTLongPressHandler;
_openPTHookedSit = sit;
}
/// <summary>
/// 长按 img_OpenPT 达到阈值触发。
/// Normal 模式:开关炮台面板(subUIManager,与 btn_ChangeTurret 同逻辑)。
/// XJMH 模式:子类覆写为开关 ChangePTPanel。
/// </summary>
protected virtual void OnOpenPTLongPressTriggered()
{
// 与 btn_ChangeTurret 完全相同的开关逻辑:开着就关,没开就打开
var panel = subUIManager.Get<SubUIBase>(UIPanel.TurretPanel);
if (panel != null && panel.gameObject.activeSelf)
subUIManager.Hide(UIPanel.TurretPanel);
else
{
subUIManager.ShowAsync(UIPanel.TurretPanel, (ItemPanelSelect.Turrect, true));
StartCoroutine(CloseSettingList());
}
}
/// <summary>解绑长按 img_OpenPT 的订阅(面板隐藏/重新订阅前调用)</summary>
private void UnhookOpenPTLongPress()
{
@@ -2406,11 +2404,6 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
if (mySitAnim != null && mySitAnim.gameObject.activeSelf)
mySitAnim.gameObject.SetActive(false);
// XJMH 模式:检测是否按在当前炮台上(长按触发扇形切换)
_isPendingTurretLongPress = !isChangingTurret
&& currSitData.turretControlMode == TurretControlMode.XJMH
&& IsTouchOnCurrentTurret(input.position);
if (!isChangingTurret)
{
// ⭐ 起飞炮台(FlyTurretData):
@@ -2421,13 +2414,13 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
{
if (flyTurret.IsFlying)
{
if (!_isPendingTurretLongPress && flyTurret.TakeoffToScreenPos(input.position))
if (flyTurret.TakeoffToScreenPos(input.position))
{
HookFlyTurretUpwardFire(flyTurret);
return;
}
}
else if (!_isPendingTurretLongPress && !currSitData.isDrillActive)
else if (!currSitData.isDrillActive)
{
_flyTapPending = true;
_flyTapTime = Time.time;
@@ -2438,7 +2431,7 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
// ⭐ 本地金币校验:没钱不切换 Attack 状态,也不广播,避免无效请求
if (!HasEnoughGoldToFire(toggle_Three.isOn))
return;
// 按下即进入 Attack:短按→射击,长按超过阈值后切回 Idle 弹扇形
// 按下即进入 Attack:短按→射击,松开后回 Idle
currSitData.ChangeState(TurretState.Attack);
SyncTurretState(TurretState.Attack);
}
@@ -2447,40 +2440,12 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
// 长按
if (input.isPressed)
{
// XJMH 长按炮台判定:超过阈值后弹出扇形切换UI
if (_isPendingTurretLongPress && !_isTurretSwitcherActive)
{
changeTurretTime += Time.deltaTime;
if (changeTurretTime >= turretLongPressThreshold)
{
_isPendingTurretLongPress = false;
_isTurretSwitcherActive = true;
// 扇形切换弹出时切回 Idle,停止射击动画
currSitData.ChangeState(TurretState.Idle);
SyncTurretState(TurretState.Idle);
OnTurretSwitcherShow(input.position);
}
}
if (_isTurretSwitcherActive)
{
OnTurretSwitcherUpdate(input.position);
return;
}
if (isChangingTurret)
{
HandleChangeTurretHold();
return;
}
// XJMH 待判定长按:不旋转(手指在炮台上旋转无意义),但仍允许开火(短按=射击)
if (_isPendingTurretLongPress)
{
TryFire();
return;
}
// ⭐ 起飞炮台:飞行/悬停期间手指按住不旋转不开火(炮口固定朝上,子弹自行向上发射)
if (currSitData.currentTurret is FlyTurretData flyHold && flyHold.IsFlying)
return;
@@ -2506,23 +2471,6 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
// 松开
if (input.wasReleasedThisFrame)
{
// XJMH 扇形切换释放:根据滑动位置选择炮台
if (_isTurretSwitcherActive)
{
_isTurretSwitcherActive = false;
_isPendingTurretLongPress = false;
changeTurretTime = 0;
OnTurretSwitcherHide(input.position);
return;
}
// XJMH 短按炮台释放(未触发长按)→ 正常回到 Idle
if (_isPendingTurretLongPress)
{
_isPendingTurretLongPress = false;
changeTurretTime = 0;
}
if (isChangingTurret)
{
isChangingTurret = false;
@@ -2592,39 +2540,10 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
isChangingTurret = false;
}
// ==================== XJMH 炮台扇形切换 ====================
// ==================== 炮台切换面板清理(子类扩展) ====================
/// <summary>
/// 检测触摸点是否在当前炮台的 RectTransform 范围内(XJMH 长按切换用)。
/// </summary>
protected bool IsTouchOnCurrentTurret(Vector2 screenPos)
{
if (currSitData == null || currSitData.currentTurret == null) return false;
RectTransform rt = currSitData.currentTurret.GetComponent<RectTransform>();
if (rt == null) return false;
Canvas canvas = UIManager.Instance != null && UIManager.Instance.uiRoot != null
? UIManager.Instance.uiRoot.GetComponent<Canvas>()
: null;
Camera cam = canvas != null && canvas.renderMode != RenderMode.ScreenSpaceOverlay ? canvas.worldCamera : null;
return RectTransformUtility.RectangleContainsScreenPoint(rt, screenPos, cam);
}
/// <summary>长按炮台达到阈值后弹出扇形切换UI(子类覆写实现具体UI)。</summary>
protected virtual void OnTurretSwitcherShow(Vector2 pressPos) { }
/// <summary>扇形切换UI显示期间,手指滑动时更新高亮(子类覆写)。</summary>
protected virtual void OnTurretSwitcherUpdate(Vector2 currentPos) { }
/// <summary>手指松开,关闭扇形切换UI并根据滑动位置切换炮台(子类覆写)。</summary>
protected virtual void OnTurretSwitcherHide(Vector2 releasePos) { }
/// <summary>清理扇形切换UI状态(面板隐藏时调用)</summary>
protected virtual void CleanupTurretSwitcher()
{
_isTurretSwitcherActive = false;
_isPendingTurretLongPress = false;
changeTurretTime = 0;
}
/// <summary>面板隐藏时清理炮台切换面板(子类覆写)。</summary>
protected virtual void CleanupTurretPanel() { }
@@ -4140,6 +4140,7 @@ RectTransform:
- {fileID: 755472782897628008}
- {fileID: 4841427236217427560}
- {fileID: 54841084467576406}
- {fileID: 5087973303459101789}
- {fileID: 1078076760308578925}
- {fileID: 6681409744861298073}
- {fileID: 6572098329424512867}
@@ -4240,7 +4241,6 @@ MonoBehaviour:
autoExitGamePanel: {fileID: 2557684592993026943}
tmp_ExitDaoJiShi: {fileID: 7981116555568725849}
btn_CloseAutoExitGamePanel: {fileID: 9144227543862403665}
turretLongPressThreshold: 0.5
boardCast_Boss: {fileID: 2654078965480511721, guid: 55e47b0ac9a12a547924880716dd3535,
type: 3}
createVideoPlayer: {fileID: 3457788250773442335}
@@ -4254,10 +4254,11 @@ MonoBehaviour:
sanSheMinBulge: 4
sanSheSideBulletSpeed: 50
sitBulletMaxCount: 100
fanRadius: 160
fanArcSpan: 150
fanItemSize: {x: 90, y: 90}
fanDeadZone: 40
ChangePTPanel: {fileID: 5009531254903060255}
btn_GreenPT: {fileID: 9144215032813898481}
btn_BluePT: {fileID: 6960561258226760454}
btn_GoldPT: {fileID: 7017233470151915259}
btn_VIPPT: {fileID: 5022068518759764265}
--- !u!1 &2865408747225355556
GameObject:
m_ObjectHideFlags: 0
@@ -8999,7 +9000,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &8019622945320605939
RectTransform:
m_ObjectHideFlags: 0
@@ -9012,10 +9013,10 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5781209983944085165}
- {fileID: 2312809170298891864}
- {fileID: 9179185251833639535}
- {fileID: 4980046371408964510}
- {fileID: 5781209983944085165}
- {fileID: 791920537576704732}
- {fileID: 1233422057346441001}
- {fileID: 7085073037580773451}
@@ -9053,7 +9054,7 @@ MonoBehaviour:
yellowBG: {fileID: 0}
toggle_AutoAttack: {fileID: 5811737153799833063}
openPTLongPressTime: 0.5
img_OpenPT: {fileID: 0}
img_OpenPT: {fileID: 2920419064563664580}
IsBaoJiangingActive: 0
obj_BaoJiangZhongPanelPosition: {fileID: 0}
posID: 0
@@ -9085,10 +9086,10 @@ MonoBehaviour:
currentTurretNumber: 0
currentTurret: {fileID: 3682759961943257957}
xjmhTurretList:
- {fileID: 3682759961943257957}
- {fileID: 4968694161106350648}
- {fileID: 5064756052779050165}
- {fileID: 8295326240447925651}
- {fileID: 5722126414559939294}
tra_CurrTurret: {fileID: 0}
currentAngle: 0
maxRotationAngle: 90
@@ -11533,10 +11534,10 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2487576147542109954}
- {fileID: 4349447237878066425}
- {fileID: 9092467386780033531}
- {fileID: 4236298556684268778}
- {fileID: 2487576147542109954}
- {fileID: 8592370750086360733}
- {fileID: 811372735197895337}
- {fileID: 281600186823631665}
@@ -11574,7 +11575,7 @@ MonoBehaviour:
yellowBG: {fileID: 0}
toggle_AutoAttack: {fileID: 4177247914707326441}
openPTLongPressTime: 0.5
img_OpenPT: {fileID: 0}
img_OpenPT: {fileID: 5858491358081171275}
IsBaoJiangingActive: 0
obj_BaoJiangZhongPanelPosition: {fileID: 0}
posID: 1
@@ -11606,10 +11607,10 @@ MonoBehaviour:
currentTurretNumber: 0
currentTurret: {fileID: 8318936997404565909}
xjmhTurretList:
- {fileID: 8318936997404565909}
- {fileID: 4071441852994240012}
- {fileID: 5991888581254097079}
- {fileID: 5374006129012476344}
- {fileID: 8670772098217126294}
tra_CurrTurret: {fileID: 0}
currentAngle: 0
maxRotationAngle: 90
@@ -15771,6 +15772,381 @@ RectTransform:
type: 3}
m_PrefabInstance: {fileID: 3868087490910519621}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &4910852602575628657
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 5088851953764041988}
m_Modifications:
- target: {fileID: 1574086685729664, guid: e66fd474cfdd8f44387bfec7f960370d, type: 3}
propertyPath: m_Name
value: PW_SelectBattery4
objectReference: {fileID: 0}
- target: {fileID: 199057475481003642, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199066839074358679, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199172042627166568, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199299115620346239, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199534375203711229, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199753962566178663, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199762786349204479, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_AnchorMax.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_SizeDelta.x
value: 311
objectReference: {fileID: 0}
- target: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_SizeDelta.y
value: 230
objectReference: {fileID: 0}
- target: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 1216.5
objectReference: {fileID: 0}
- target: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_AnchoredPosition.y
value: -150
objectReference: {fileID: 0}
- target: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: -0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: e66fd474cfdd8f44387bfec7f960370d, type: 3}
--- !u!114 &5022068518759764265 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 114598634859509848, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
m_PrefabInstance: {fileID: 4910852602575628657}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!224 &5132549816530863268 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 224230763640597973, guid: e66fd474cfdd8f44387bfec7f960370d,
type: 3}
m_PrefabInstance: {fileID: 4910852602575628657}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &5008366167776074941
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 245637205031072731}
m_Modifications:
- target: {fileID: 1165877543578530, guid: 66ad8d1d353b35646b885106f966f9bb, type: 3}
propertyPath: m_Name
value: PW_SelectBatteryView
objectReference: {fileID: 0}
- target: {fileID: 1165877543578530, guid: 66ad8d1d353b35646b885106f966f9bb, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 114021280730472246, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_Padding.m_Left
value: 113
objectReference: {fileID: 0}
- target: {fileID: 114294381653908052, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_Enabled
value: 0
objectReference: {fileID: 0}
- target: {fileID: 114466510680011291, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_Horizontal
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224367153584534973, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_SizeDelta.x
value: 249
objectReference: {fileID: 0}
- target: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_Pivot.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_AnchorMax.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 6.2788
objectReference: {fileID: 0}
- target: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 224635611731012447, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224635611731012447, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224635611731012447, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_SizeDelta.x
value: 240
objectReference: {fileID: 0}
- target: {fileID: 224635611731012447, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 125
objectReference: {fileID: 0}
- target: {fileID: 224635611731012447, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_AnchoredPosition.y
value: -24.5
objectReference: {fileID: 0}
- target: {fileID: 224741953320262073, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
propertyPath: m_SizeDelta.x
value: -152
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects:
- targetCorrespondingSourceObject: {fileID: 224741953320262073, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
insertIndex: -1
addedObject: {fileID: 8965794126875597603}
- targetCorrespondingSourceObject: {fileID: 224741953320262073, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
insertIndex: -1
addedObject: {fileID: 7067009971195441930}
- targetCorrespondingSourceObject: {fileID: 224741953320262073, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
insertIndex: -1
addedObject: {fileID: 7199781167476784759}
- targetCorrespondingSourceObject: {fileID: 224741953320262073, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
insertIndex: -1
addedObject: {fileID: 5132549816530863268}
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 66ad8d1d353b35646b885106f966f9bb, type: 3}
--- !u!1 &5009531254903060255 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 1165877543578530, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
m_PrefabInstance: {fileID: 5008366167776074941}
m_PrefabAsset: {fileID: 0}
--- !u!224 &5087973303459101789 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 224430927734448352, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
m_PrefabInstance: {fileID: 5008366167776074941}
m_PrefabAsset: {fileID: 0}
--- !u!224 &5088851953764041988 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 224741953320262073, guid: 66ad8d1d353b35646b885106f966f9bb,
type: 3}
m_PrefabInstance: {fileID: 5008366167776074941}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &6189131244199501401
PrefabInstance:
m_ObjectHideFlags: 0
@@ -15930,6 +16306,346 @@ RectTransform:
type: 3}
m_PrefabInstance: {fileID: 6189131244199501401}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &6987163507780192041
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 5088851953764041988}
m_Modifications:
- target: {fileID: 1173808550064851, guid: 1e0da4f9d909b594e85c11a846a5e10a, type: 3}
propertyPath: m_Name
value: PW_SelectBattery3
objectReference: {fileID: 0}
- target: {fileID: 199013481065784290, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199313865809949922, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199329363380578423, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199390513534814644, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199771502137374398, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199867469409315632, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199874428502882938, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_AnchorMax.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_SizeDelta.x
value: 311
objectReference: {fileID: 0}
- target: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_SizeDelta.y
value: 230
objectReference: {fileID: 0}
- target: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 900.5
objectReference: {fileID: 0}
- target: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_AnchoredPosition.y
value: -150
objectReference: {fileID: 0}
- target: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: -0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 1e0da4f9d909b594e85c11a846a5e10a, type: 3}
--- !u!114 &7017233470151915259 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 114099179154665938, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
m_PrefabInstance: {fileID: 6987163507780192041}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!224 &7199781167476784759 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 224519053292583262, guid: 1e0da4f9d909b594e85c11a846a5e10a,
type: 3}
m_PrefabInstance: {fileID: 6987163507780192041}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &6993578822149915402
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 5088851953764041988}
m_Modifications:
- target: {fileID: 1525023941169854, guid: 81057d1d1b6898b4fa702153d4d8bd5f, type: 3}
propertyPath: m_Name
value: PW_SelectBattery2
objectReference: {fileID: 0}
- target: {fileID: 199180238798305683, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199450042110180415, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199479090838941466, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199628430093984582, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199663698102034135, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199689582501514062, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199969454015643081, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_AnchorMax.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_SizeDelta.x
value: 311
objectReference: {fileID: 0}
- target: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_SizeDelta.y
value: 230
objectReference: {fileID: 0}
- target: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 584.5
objectReference: {fileID: 0}
- target: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_AnchoredPosition.y
value: -150
objectReference: {fileID: 0}
- target: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: -0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 81057d1d1b6898b4fa702153d4d8bd5f, type: 3}
--- !u!114 &6960561258226760454 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 114506952347973644, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
m_PrefabInstance: {fileID: 6993578822149915402}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!224 &7067009971195441930 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 224404563003682816, guid: 81057d1d1b6898b4fa702153d4d8bd5f,
type: 3}
m_PrefabInstance: {fileID: 6993578822149915402}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &8005019105194932395
PrefabInstance:
m_ObjectHideFlags: 0
@@ -16128,3 +16844,173 @@ Transform:
type: 3}
m_PrefabInstance: {fileID: 8844921407033323892}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &9183017407538746356
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 5088851953764041988}
m_Modifications:
- target: {fileID: 1552233183994873, guid: 87cee5e67688df942824141b715f02bd, type: 3}
propertyPath: m_Name
value: PW_SelectBattery1
objectReference: {fileID: 0}
- target: {fileID: 199068207606286015, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199133180714538194, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199336692706575337, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199447337888390336, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199593134535009369, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199730473912950924, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 199940532280127567, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_AnchorMax.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_SizeDelta.x
value: 311
objectReference: {fileID: 0}
- target: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_SizeDelta.y
value: 230
objectReference: {fileID: 0}
- target: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 268.5
objectReference: {fileID: 0}
- target: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_AnchoredPosition.y
value: -150
objectReference: {fileID: 0}
- target: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: -0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 87cee5e67688df942824141b715f02bd, type: 3}
--- !u!224 &8965794126875597603 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 224133163673667799, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
m_PrefabInstance: {fileID: 9183017407538746356}
m_PrefabAsset: {fileID: 0}
--- !u!114 &9144215032813898481 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 114391756882811141, guid: 87cee5e67688df942824141b715f02bd,
type: 3}
m_PrefabInstance: {fileID: 9183017407538746356}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
@@ -1,227 +1,123 @@
using Assets.MyGame.Scripts.Net;
using Assets.MyGame.Scripts.Net.API;
using Assets.MyGame.Scripts.Net.WebResponses;
using DG.Tweening;
using Newtonsoft.Json;
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.InputSystem;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class GameMainPanel_XJMH : GameMainPanel_FishBase
{
// ==================== 炮台扇形切换 UI ====================
[Header("扇形切换")]
[Tooltip("扇形半径(像素)")]
public float fanRadius = 160f;
[Tooltip("扇形展开总角度")]
public float fanArcSpan = 150f;
[Tooltip("扇形单项尺寸")]
public Vector2 fanItemSize = new Vector2(90, 90);
[Tooltip("滑动手势死区半径(像素),小于此距离不高亮")]
public float fanDeadZone = 40f;
// ==================== 炮台切换面板(按钮式) ====================
[Header("炮台切换面板")]
[Tooltip("长按 img_OpenPT 弹出的切换面板")]
public GameObject ChangePTPanel;
public Button btn_GreenPT; // 对应 xjmhTurretList[0]
public Button btn_BluePT; // 对应 xjmhTurretList[1]
public Button btn_GoldPT; // 对应 xjmhTurretList[2]
public Button btn_VIPPT; // 对应 xjmhTurretList[3]
private GameObject _fanRoot;
private List<int> _fanTurretNumbers;
private int _fanSelectedIndex = -1;
// 按钮与列表索引的映射(顺序固定:Green=0, Blue=1, Gold=2, VIP=3)
private Button[] _ptButtons;
public override void Awake()
{
base.Awake();
InitPTPanel();
}
public override void Start()
{
base.Start();
}
protected override void OnShow(object args = null)
{
base.OnShow(args);
AudioManager.Instance.ChangeBG(61109);
}
// ==================== 扇形切换:显示/更新/隐藏 ====================
/// <summary>长按炮台达到阈值后弹出扇形切换UI</summary>
protected override void OnTurretSwitcherShow(Vector2 pressPos)
// ==================== 切换面板:初始化/显示/隐藏 ====================
/// <summary>初始化切换面板:绑定按钮点击事件,默认隐藏</summary>
private void InitPTPanel()
{
_fanTurretNumbers = currSitData.GetAvailableTurretNumbers();
if (_fanTurretNumbers == null || _fanTurretNumbers.Count == 0)
_ptButtons = new Button[] { btn_GreenPT, btn_BluePT, btn_GoldPT, btn_VIPPT };
for (int i = 0; i < _ptButtons.Length; i++)
{
_fanTurretNumbers = null;
int idx = i; // 闭包捕获
if (_ptButtons[i] != null)
_ptButtons[i].onClick.AddListener(() => OnPTButtonClicked(idx));
}
if (ChangePTPanel != null)
ChangePTPanel.SetActive(false);
}
/// <summary>长按 img_OpenPT → 开关切换面板</summary>
protected override void OnOpenPTLongPressTriggered()
{
if (ChangePTPanel == null)
{
Debug.LogWarning("[XJMH] ChangePTPanel 未配置");
return;
}
// 扇形根节点挂在炮台父节点下,和炮台共享坐标系
Transform anchor = currSitData.turretParent != null
? currSitData.turretParent
: currSitData.currentTurret.transform.parent;
_fanRoot = new GameObject("TurretFanSwitcher");
_fanRoot.transform.SetParent(anchor, false);
var fanRect = _fanRoot.AddComponent<RectTransform>();
fanRect.anchoredPosition = currSitData.turretAnchoredPos;
fanRect.localScale = Vector3.zero;
// 上方座位(2,3)扇形朝下展开,下方座位(0,1)朝上展开
bool flip = currSitData.IsFlipped;
float startAngle = flip ? fanArcSpan / 2f : -fanArcSpan / 2f;
int count = _fanTurretNumbers.Count;
float step = count > 1 ? fanArcSpan / (count - 1) : 0;
for (int i = 0; i < count; i++)
// 开着就关
if (ChangePTPanel.activeSelf)
{
float angle = startAngle + step * i;
float rad = angle * Mathf.Deg2Rad;
// 0°=正上方,扇形沿 Y 轴展开
Vector2 localPos = new Vector2(Mathf.Sin(rad), Mathf.Cos(rad)) * fanRadius;
var item = new GameObject($"FanItem_{_fanTurretNumbers[i]}");
item.transform.SetParent(_fanRoot.transform, false);
var rt = item.AddComponent<RectTransform>();
rt.anchoredPosition = localPos;
rt.sizeDelta = fanItemSize;
var img = item.AddComponent<Image>();
img.color = new Color(1f, 1f, 1f, 0.55f);
img.raycastTarget = false;
// 炮台编号文字
var txtGo = new GameObject("Num");
txtGo.transform.SetParent(item.transform, false);
var txtRt = txtGo.AddComponent<RectTransform>();
txtRt.anchorMin = txtRt.anchorMax = new Vector2(0.5f, 0.5f);
txtRt.sizeDelta = fanItemSize;
var tmp = txtGo.AddComponent<TextMeshProUGUI>();
tmp.text = _fanTurretNumbers[i].ToString();
tmp.alignment = TextAlignmentOptions.Center;
tmp.fontSize = 36;
tmp.color = Color.white;
tmp.raycastTarget = false;
// 弹出动画(错峰)
item.transform.localScale = Vector3.zero;
item.transform.DOScale(Vector3.one, 0.18f)
.SetDelay(i * 0.02f)
.SetEase(Ease.OutBack);
HidePTPanel();
return;
}
// 整体缩放进入
_fanRoot.transform.DOScale(Vector3.one, 0.2f).SetEase(Ease.OutBack);
_fanSelectedIndex = -1;
// 按钮可用性:超出 xjmhTurretList 数量的按钮隐藏
var list = currSitData != null ? currSitData.xjmhTurretList : null;
int count = (list != null) ? list.Count : 0;
for (int i = 0; i < _ptButtons.Length; i++)
{
if (_ptButtons[i] == null) continue;
bool available = i < count && list[i] != null;
_ptButtons[i].gameObject.SetActive(available);
}
ChangePTPanel.SetActive(true);
ChangePTPanel.transform.localScale = Vector3.zero;
ChangePTPanel.transform.DOScale(Vector3.one, 0.2f).SetEase(Ease.OutBack);
}
/// <summary>手指滑动时更新扇形高亮</summary>
protected override void OnTurretSwitcherUpdate(Vector2 currentPos)
/// <summary>面板隐藏时清理</summary>
protected override void CleanupTurretPanel()
{
if (_fanRoot == null || _fanTurretNumbers == null || _fanTurretNumbers.Count == 0) return;
int newIndex = CalcFanIndexByScreenPos(currentPos);
if (newIndex != _fanSelectedIndex)
{
_fanSelectedIndex = newIndex;
for (int i = 0; i < _fanRoot.transform.childCount; i++)
{
var img = _fanRoot.transform.GetChild(i).GetComponent<Image>();
if (img == null) continue;
img.color = (i == _fanSelectedIndex)
? new Color(1f, 0.85f, 0.3f, 0.95f)
: new Color(1f, 1f, 1f, 0.55f);
}
}
base.CleanupTurretPanel();
HidePTPanel();
}
/// <summary>手指松开,切换炮台并关闭扇形UI</summary>
protected override void OnTurretSwitcherHide(Vector2 releasePos)
/// <summary>隐藏切换面板(带缩放动画)</summary>
private void HidePTPanel()
{
int selectedIndex = CalcFanIndexByScreenPos(releasePos);
if (ChangePTPanel == null || !ChangePTPanel.activeSelf) return;
if (_fanRoot != null)
{
_fanRoot.transform.DOScale(Vector3.zero, 0.15f).SetEase(Ease.InBack)
.OnComplete(() => { if (_fanRoot != null) Destroy(_fanRoot); });
_fanRoot = null;
}
if (selectedIndex >= 0 && selectedIndex < _fanTurretNumbers.Count)
{
int selectedTurret = _fanTurretNumbers[selectedIndex];
if (selectedTurret != currSitData.currentTurretNumber)
{
currSitData.LoadTurret(selectedTurret);
SyncChangeTurret(selectedTurret);
}
}
_fanTurretNumbers = null;
_fanSelectedIndex = -1;
ChangePTPanel.transform.DOKill();
ChangePTPanel.transform.localScale = Vector3.one;
ChangePTPanel.transform.DOScale(Vector3.zero, 0.15f).SetEase(Ease.InBack)
.OnComplete(() => { if (ChangePTPanel != null) ChangePTPanel.SetActive(false); });
}
/// <summary>面板隐藏时清理扇形UI对象</summary>
protected override void CleanupTurretSwitcher()
/// <summary>按钮点击:按索引切换炮台</summary>
private void OnPTButtonClicked(int index)
{
base.CleanupTurretSwitcher();
if (_fanRoot != null)
if (currSitData == null) return;
int prevIndex = currSitData.currentTurretIndex;
bool success = currSitData.SwitchTurretByIndex(index);
if (!success)
{
Destroy(_fanRoot);
_fanRoot = null;
}
_fanTurretNumbers = null;
_fanSelectedIndex = -1;
}
/// <summary>
/// 根据屏幕坐标计算扇形索引。
/// 把屏幕坐标转换到扇形根节点的本地坐标,再用角度匹配扇区。
/// </summary>
private int CalcFanIndexByScreenPos(Vector2 screenPos)
{
if (_fanRoot == null || _fanTurretNumbers == null || _fanTurretNumbers.Count == 0)
return -1;
RectTransform fanRect = _fanRoot.GetComponent<RectTransform>();
Camera cam = null;
Canvas canvas = UIManager.Instance != null && UIManager.Instance.uiRoot != null
? UIManager.Instance.uiRoot.GetComponent<Canvas>()
: null;
if (canvas != null && canvas.renderMode != RenderMode.ScreenSpaceOverlay)
cam = canvas.worldCamera;
// 屏幕坐标 → 扇形根节点本地坐标
RectTransformUtility.ScreenPointToLocalPointInRectangle(
fanRect, screenPos, cam, out Vector2 localPos);
// 死区
if (localPos.magnitude < fanDeadZone) return -1;
// 计算角度:0°=正上方(扇形中心方向),顺时针为正
float angle = Mathf.Atan2(localPos.x, localPos.y) * Mathf.Rad2Deg;
bool flip = currSitData.IsFlipped;
float startAngle = flip ? fanArcSpan / 2f : -fanArcSpan / 2f;
int count = _fanTurretNumbers.Count;
float step = count > 1 ? fanArcSpan / (count - 1) : 0;
// 找到角度差最小的扇区
int bestIdx = -1;
float bestDelta = float.MaxValue;
for (int i = 0; i < count; i++)
{
float centerAngle = startAngle + step * i;
float delta = Mathf.Abs(Mathf.DeltaAngle(angle, centerAngle));
if (delta < bestDelta)
{
bestDelta = delta;
bestIdx = i;
}
Debug.LogWarning($"[XJMH] 切换炮台失败,索引越界或列表为空: {index}");
return;
}
// 允许的误差范围(半个扇区宽度 + 余量)
float halfSector = step > 0 ? step * 0.6f + 15f : 90f;
return bestDelta <= halfSector ? bestIdx : -1;
// 实际发生切换才同步(XJMH 炮台没有编号,帧同步同样传列表索引)
if (currSitData.currentTurretIndex != prevIndex)
SyncChangeTurret(currSitData.currentTurretIndex);
// 点击按钮后关闭面板
HidePTPanel();
}
}
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8aa0ed997a4ee294ab65c1b71fb2a89f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a14caa38c5f2f4f41b57b6412204e792
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,10 @@
using UnityEngine;
// AUTO-GENERATED RECOVERY STUB
// Original script GUID 5b896f1b0f94b4e244daed0592093ede was missing from the project (no source in Assets,
// backup zip, or any other local Unity project). This empty placeholder
// restores the MonoScript link so prefabs no longer show "Missing (Mono Script)".
// Replace this file with the real script (same GUID) to recover full behavior.
public class PW_Recovered_5b896f1b0f94 : MonoBehaviour
{
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 5b896f1b0f94b4e244daed0592093ede
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,10 @@
using UnityEngine;
// AUTO-GENERATED RECOVERY STUB
// Original script GUID 7e947d94c1f8c00a4256008bb80977a3 was missing from the project (no source in Assets,
// backup zip, or any other local Unity project). This empty placeholder
// restores the MonoScript link so prefabs no longer show "Missing (Mono Script)".
// Replace this file with the real script (same GUID) to recover full behavior.
public class PW_Recovered_7e947d94c1f8 : MonoBehaviour
{
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 7e947d94c1f8c00a4256008bb80977a3
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,10 @@
using UnityEngine;
// AUTO-GENERATED RECOVERY STUB
// Original script GUID a2fec9879d744190bf1857100d626634 was missing from the project (no source in Assets,
// backup zip, or any other local Unity project). This empty placeholder
// restores the MonoScript link so prefabs no longer show "Missing (Mono Script)".
// Replace this file with the real script (same GUID) to recover full behavior.
public class PW_Recovered_a2fec9879d74 : MonoBehaviour
{
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a2fec9879d744190bf1857100d626634
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,10 @@
using UnityEngine;
// AUTO-GENERATED RECOVERY STUB
// Original script GUID a61482e8bad9e6fda128f2c83c5d2a7f was missing from the project (no source in Assets,
// backup zip, or any other local Unity project). This empty placeholder
// restores the MonoScript link so prefabs no longer show "Missing (Mono Script)".
// Replace this file with the real script (same GUID) to recover full behavior.
public class PW_Recovered_a61482e8bad9 : MonoBehaviour
{
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a61482e8bad9e6fda128f2c83c5d2a7f
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: