diff --git a/Assets/AddressableAssetsData/AddressableAssetSettings.asset b/Assets/AddressableAssetsData/AddressableAssetSettings.asset index a9b9e7ae9..34127c010 100644 --- a/Assets/AddressableAssetsData/AddressableAssetSettings.asset +++ b/Assets/AddressableAssetsData/AddressableAssetSettings.asset @@ -15,7 +15,7 @@ MonoBehaviour: m_DefaultGroup: a263e71fce79f2f4cb5b5f1fa6b7291a m_currentHash: serializedVersion: 2 - Hash: b88434f0b008f53956432ffabe051912 + Hash: 00000000000000000000000000000000 m_OptimizeCatalogSize: 0 m_BuildRemoteCatalog: 0 m_BundleLocalCatalog: 0 @@ -46,6 +46,7 @@ MonoBehaviour: m_GroupAssets: - {fileID: 11400000, guid: 427f94f67624e374895487c87f881a7f, type: 2} - {fileID: 11400000, guid: ca4eb1ed7a9a8bc4bbcc5d865fd723a4, type: 2} + - {fileID: 11400000, guid: 59a1dc2550990aa4091c8db201571a43, type: 2} - {fileID: 11400000, guid: 9971f2f92adebd44faa29cc332720d65, type: 2} - {fileID: 11400000, guid: ec57fb26f5bb61544b2831e9485b32fe, type: 2} - {fileID: 11400000, guid: 39ca999e15083df459f52c7743a44f50, type: 2} diff --git a/Assets/AddressableAssetsData/AssetGroups/LoginUIRes.asset b/Assets/AddressableAssetsData/AssetGroups/LoginUIRes.asset new file mode 100644 index 000000000..e094cf2a5 --- /dev/null +++ b/Assets/AddressableAssetsData/AssetGroups/LoginUIRes.asset @@ -0,0 +1,25 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bbb281ee3bf0b054c82ac2347e9e782c, type: 3} + m_Name: LoginUIRes + m_EditorClassIdentifier: + m_GroupName: Packed Assets + m_Data: + m_SerializedData: [] + m_GUID: 7205a6d30db43d84fbbb82ed27a1c905 + m_SerializeEntries: [] + m_ReadOnly: 0 + m_Settings: {fileID: 11400000, guid: 3d7ea06370502a34e82011fabf822b45, type: 2} + m_SchemaSet: + m_Schemas: + - {fileID: 11400000, guid: ea6a7786f98ef0b4586293d4bcc601dd, type: 2} + - {fileID: 11400000, guid: 792bae17e9433bc479020eef05059f42, type: 2} diff --git a/Assets/AddressableAssetsData/AssetGroups/LoginUIRes.asset.meta b/Assets/AddressableAssetsData/AssetGroups/LoginUIRes.asset.meta new file mode 100644 index 000000000..023e293b1 --- /dev/null +++ b/Assets/AddressableAssetsData/AssetGroups/LoginUIRes.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 59a1dc2550990aa4091c8db201571a43 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AddressableAssetsData/AssetGroups/Schemas/LoginUIRes_BundledAssetGroupSchema.asset b/Assets/AddressableAssetsData/AssetGroups/Schemas/LoginUIRes_BundledAssetGroupSchema.asset new file mode 100644 index 000000000..3b6473170 --- /dev/null +++ b/Assets/AddressableAssetsData/AssetGroups/Schemas/LoginUIRes_BundledAssetGroupSchema.asset @@ -0,0 +1,45 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e5d17a21594effb4e9591490b009e7aa, type: 3} + m_Name: LoginUIRes_BundledAssetGroupSchema + m_EditorClassIdentifier: + m_Group: {fileID: 11400000, guid: 59a1dc2550990aa4091c8db201571a43, type: 2} + m_InternalBundleIdMode: 1 + m_Compression: 1 + m_IncludeAddressInCatalog: 1 + m_IncludeGUIDInCatalog: 1 + m_IncludeLabelsInCatalog: 1 + m_InternalIdNamingMode: 0 + m_CacheClearBehavior: 0 + m_IncludeInBuild: 1 + m_BundledAssetProviderType: + m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider + m_ForceUniqueProvider: 0 + m_UseAssetBundleCache: 1 + m_UseAssetBundleCrc: 1 + m_UseAssetBundleCrcForCachedBundles: 1 + m_UseUWRForLocalBundles: 0 + m_Timeout: 0 + m_ChunkedTransfer: 0 + m_RedirectLimit: -1 + m_RetryCount: 0 + m_BuildPath: + m_Id: 2dc81615c3947e64493d7c6552a3f24d + m_LoadPath: + m_Id: 6bd5fad857b09dd439c8b71f4ae1a9d8 + m_BundleMode: 0 + m_AssetBundleProviderType: + m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider + m_BundleNaming: 0 + m_AssetLoadMode: 0 diff --git a/Assets/AddressableAssetsData/AssetGroups/Schemas/LoginUIRes_BundledAssetGroupSchema.asset.meta b/Assets/AddressableAssetsData/AssetGroups/Schemas/LoginUIRes_BundledAssetGroupSchema.asset.meta new file mode 100644 index 000000000..3b86cc1b0 --- /dev/null +++ b/Assets/AddressableAssetsData/AssetGroups/Schemas/LoginUIRes_BundledAssetGroupSchema.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ea6a7786f98ef0b4586293d4bcc601dd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AddressableAssetsData/AssetGroups/Schemas/LoginUIRes_ContentUpdateGroupSchema.asset b/Assets/AddressableAssetsData/AssetGroups/Schemas/LoginUIRes_ContentUpdateGroupSchema.asset new file mode 100644 index 000000000..23e42a56a --- /dev/null +++ b/Assets/AddressableAssetsData/AssetGroups/Schemas/LoginUIRes_ContentUpdateGroupSchema.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5834b5087d578d24c926ce20cd31e6d6, type: 3} + m_Name: LoginUIRes_ContentUpdateGroupSchema + m_EditorClassIdentifier: + m_Group: {fileID: 11400000, guid: 59a1dc2550990aa4091c8db201571a43, type: 2} + m_StaticContent: 0 diff --git a/Assets/AddressableAssetsData/AssetGroups/Schemas/LoginUIRes_ContentUpdateGroupSchema.asset.meta b/Assets/AddressableAssetsData/AssetGroups/Schemas/LoginUIRes_ContentUpdateGroupSchema.asset.meta new file mode 100644 index 000000000..39ea196b9 --- /dev/null +++ b/Assets/AddressableAssetsData/AssetGroups/Schemas/LoginUIRes_ContentUpdateGroupSchema.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 792bae17e9433bc479020eef05059f42 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MyGame/Scripts/Turret/SitPosData.cs b/Assets/MyGame/Scripts/Turret/SitPosData.cs index 28e5f0082..130e4cde5 100644 --- a/Assets/MyGame/Scripts/Turret/SitPosData.cs +++ b/Assets/MyGame/Scripts/Turret/SitPosData.cs @@ -159,10 +159,8 @@ public class SitPosData : MonoBehaviour currentTurret = found; currentTurretNumber = found.turretNumber; - Transform parent = turretParent != null ? turretParent : transform; - tra_CurrTurret = currentTurret.transform.parent != parent - ? currentTurret.transform.parent - : currentTurret.transform; + // 缓存旋转节点:优先用 TurretData.tra_RotationPivot,否则回退父节点 + tra_CurrTurret = GetTurretRotationPivot(currentTurret); OnStateChange = currentTurret.ChangeState; UpdateTurretWorldPos(); @@ -259,6 +257,24 @@ public class SitPosData : MonoBehaviour // ==================== 炮台加载 ==================== + /// + /// 获取炮台的旋转节点。 + /// - 若 TurretData.tra_RotationPivot 已赋值 → 用它(精确指定旋转中心) + /// - 否则回退旧逻辑:炮台父节点(Normal 克隆的中间容器 / XJMH 子对象的父节点) + /// + private Transform GetTurretRotationPivot(TurretData turret) + { + if (turret == null) return null; + + // 优先用 TurretData 上配置的旋转节点 + if (turret.tra_RotationPivot != null) + return turret.tra_RotationPivot; + + // 回退:用父节点(兼容旧逻辑) + Transform parent = turret.transform.parent; + return parent != null ? parent : turret.transform; + } + /// /// 根据炮台编号加载炮台。 /// Normal 模式:从 Addressables 加载预制体并克隆到 turretParent。 @@ -319,8 +335,8 @@ public class SitPosData : MonoBehaviour currentTurret.turretNumber = turretNumber; - // 缓存旋转节点 - tra_CurrTurret = currentTurret.transform.parent; + // 缓存旋转节点:优先用 TurretData.tra_RotationPivot,否则回退父节点 + tra_CurrTurret = GetTurretRotationPivot(currentTurret); // 绑定状态机入口 OnStateChange = currentTurret.ChangeState; @@ -384,10 +400,8 @@ public class SitPosData : MonoBehaviour currentTurretNumber = turretNumber; currentTurret = found; - // 炮台若挂在中间旋转容器下,用容器作为旋转节点;否则用炮台自身 - tra_CurrTurret = currentTurret.transform.parent != parent - ? currentTurret.transform.parent - : currentTurret.transform; + // 缓存旋转节点:优先用 TurretData.tra_RotationPivot,否则回退父节点 + tra_CurrTurret = GetTurretRotationPivot(currentTurret); OnStateChange = currentTurret.ChangeState; UpdateTurretWorldPos(); diff --git a/Assets/MyGame/Scripts/Turret/TurretData.cs b/Assets/MyGame/Scripts/Turret/TurretData.cs index aec65c3ad..83aa3979c 100644 --- a/Assets/MyGame/Scripts/Turret/TurretData.cs +++ b/Assets/MyGame/Scripts/Turret/TurretData.cs @@ -29,6 +29,8 @@ public class TurretData : MonoBehaviour public string turretID; public SitPosData setPosData; public Transform tra_BulletStartPosition; + [Tooltip("炮台旋转节点。拖入后 SitPosData.tra_CurrTurret 用此节点旋转;不拖则用炮台自身的父节点(兼容旧逻辑)")] + public Transform tra_RotationPivot; public GameObject bulletPrefab_Two; public GameObject bulletPrefab; diff --git a/Assets/MyGame/aa/UI/Game/XJMH/GameMainPanelXJMH.prefab b/Assets/MyGame/aa/UI/Game/XJMH/GameMainPanelXJMH.prefab index ad8a3451c..5650db513 100644 --- a/Assets/MyGame/aa/UI/Game/XJMH/GameMainPanelXJMH.prefab +++ b/Assets/MyGame/aa/UI/Game/XJMH/GameMainPanelXJMH.prefab @@ -330,6 +330,7 @@ MonoBehaviour: turretID: 4 setPosData: {fileID: 0} tra_BulletStartPosition: {fileID: 133252951162328339} + tra_RotationPivot: {fileID: 0} bulletPrefab_Two: {fileID: 1373092808597860, guid: 91df00438f6dea048b65ce7fba715230, type: 3} bulletPrefab: {fileID: 1985037619002984, guid: a59ca1da18fb6c84ba2d1cbdc12e72f5, @@ -2429,6 +2430,7 @@ MonoBehaviour: turretID: 3 setPosData: {fileID: 0} tra_BulletStartPosition: {fileID: 4324141974085768278} + tra_RotationPivot: {fileID: 0} bulletPrefab_Two: {fileID: 1049455767047195, guid: df3c50e610b026549b73a6c4889a404e, type: 3} bulletPrefab: {fileID: 1727303280587082, guid: cf19160f988c5a148b4f98c2ba1a8bef, @@ -2443,10 +2445,10 @@ MonoBehaviour: skeletonAnimation: {fileID: 0} old_CurrAnimation: {fileID: 0} new_CurrAnimation: {fileID: 0} - currTurretType: 0 + currTurretType: 1 isFrenzy: 0 idleAnim: - attackAnim: + attackAnim: shot frenzyAttackAnim: laserStartAnim: laserLoopAnim: @@ -4849,6 +4851,7 @@ MonoBehaviour: turretID: 1 setPosData: {fileID: 0} tra_BulletStartPosition: {fileID: 4059331313137831612} + tra_RotationPivot: {fileID: 0} bulletPrefab_Two: {fileID: 1177632837766673, guid: ca64d0abc6450584c839b6b8ca03910a, type: 3} bulletPrefab: {fileID: 1166920474713197, guid: 279ce3d544e4bc34097fc18fccb2ceac, @@ -4863,10 +4866,10 @@ MonoBehaviour: skeletonAnimation: {fileID: 0} old_CurrAnimation: {fileID: 0} new_CurrAnimation: {fileID: 0} - currTurretType: 0 + currTurretType: 1 isFrenzy: 0 idleAnim: - attackAnim: + attackAnim: shot frenzyAttackAnim: laserStartAnim: laserLoopAnim: @@ -4982,6 +4985,7 @@ MonoBehaviour: turretID: 4 setPosData: {fileID: 0} tra_BulletStartPosition: {fileID: 490001299791756420} + tra_RotationPivot: {fileID: 2752274170600578251} bulletPrefab_Two: {fileID: 1373092808597860, guid: 91df00438f6dea048b65ce7fba715230, type: 3} bulletPrefab: {fileID: 1985037619002984, guid: a59ca1da18fb6c84ba2d1cbdc12e72f5, @@ -4996,10 +5000,10 @@ MonoBehaviour: skeletonAnimation: {fileID: 3094521970018869135} old_CurrAnimation: {fileID: 0} new_CurrAnimation: {fileID: 0} - currTurretType: 0 + currTurretType: 1 isFrenzy: 0 idleAnim: - attackAnim: + attackAnim: shot frenzyAttackAnim: laserStartAnim: laserLoopAnim: @@ -5362,6 +5366,7 @@ MonoBehaviour: turretID: 3 setPosData: {fileID: 0} tra_BulletStartPosition: {fileID: 339209509841760300} + tra_RotationPivot: {fileID: 0} bulletPrefab_Two: {fileID: 1049455767047195, guid: df3c50e610b026549b73a6c4889a404e, type: 3} bulletPrefab: {fileID: 1727303280587082, guid: cf19160f988c5a148b4f98c2ba1a8bef, @@ -6471,6 +6476,7 @@ MonoBehaviour: turretID: 2 setPosData: {fileID: 0} tra_BulletStartPosition: {fileID: 1909799833818190212} + tra_RotationPivot: {fileID: 0} bulletPrefab_Two: {fileID: 1235537286137785, guid: b87e03e51ab83e744bf4b734e3b501cd, type: 3} bulletPrefab: {fileID: 1207119993371665, guid: 154a9136554cd844fbf3ea8599ffd24a, @@ -6485,10 +6491,10 @@ MonoBehaviour: skeletonAnimation: {fileID: 0} old_CurrAnimation: {fileID: 0} new_CurrAnimation: {fileID: 0} - currTurretType: 0 + currTurretType: 1 isFrenzy: 0 idleAnim: - attackAnim: + attackAnim: shot frenzyAttackAnim: laserStartAnim: laserLoopAnim: @@ -9089,6 +9095,7 @@ MonoBehaviour: turretID: 2 setPosData: {fileID: 0} tra_BulletStartPosition: {fileID: 1491611132760571377} + tra_RotationPivot: {fileID: 0} bulletPrefab_Two: {fileID: 1235537286137785, guid: b87e03e51ab83e744bf4b734e3b501cd, type: 3} bulletPrefab: {fileID: 1207119993371665, guid: 154a9136554cd844fbf3ea8599ffd24a, @@ -10922,6 +10929,7 @@ MonoBehaviour: turretID: 1 setPosData: {fileID: 0} tra_BulletStartPosition: {fileID: 3493247331154296761} + tra_RotationPivot: {fileID: 0} bulletPrefab_Two: {fileID: 1177632837766673, guid: ca64d0abc6450584c839b6b8ca03910a, type: 3} bulletPrefab: {fileID: 1166920474713197, guid: 279ce3d544e4bc34097fc18fccb2ceac,