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
@@ -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();
}
}