diff --git a/Assets/MyGame/Scripts/Turret/SitPosData.cs b/Assets/MyGame/Scripts/Turret/SitPosData.cs index 334db0fdc..0d6bb9a4e 100644 --- a/Assets/MyGame/Scripts/Turret/SitPosData.cs +++ b/Assets/MyGame/Scripts/Turret/SitPosData.cs @@ -52,6 +52,7 @@ public class SitPosData : MonoBehaviour [Header("炮台")] [Tooltip("炮台实例化的父节点")] public Transform turretParent; + public Transform turretRotate; [Header("炮台控制模式")] [Tooltip("Normal=普通模式(动态克隆炮台,显示金币+钻石,按钮切换); XJMH=星际迷航模式(座位子对象激活/停用,只显示金币,长按扇形切换)")] @@ -277,6 +278,12 @@ public class SitPosData : MonoBehaviour { if (turret == null) return null; + // ⭐ 已分离旋转(用 turretRotate 旋转)时:tra_CurrTurret 只当【瞄准/位置锚点】, + // 必须指向固定节点(turretRotate 的父节点),让瞄准用的 tra_CurrTurret.transform.parent + // 不随旋转而变,否则瞄准参考系跟着转就会抖动。旋转由 turretRotate 负责。 + if (turretRotate != null) + return turretRotate.parent != null ? turretRotate.parent : turretRotate; + // 优先用 TurretData 上配置的旋转节点 if (turret.tra_RotationPivot != null) return turret.tra_RotationPivot; @@ -589,8 +596,9 @@ public class SitPosData : MonoBehaviour public void SetRotation(float angle) { currentAngle = angle; - if (tra_CurrTurret != null) - tra_CurrTurret.rotation = Quaternion.Euler(0, 0, angle); + // ⭐ 炮台旋转只作用于 turretRotate(所有需要旋转的父对象),其余不改 + if (turretRotate != null) + turretRotate.rotation = Quaternion.Euler(0, 0, angle); } // ------------------------- diff --git a/Assets/MyGame/aa/Game/FLZY/TSY/ZuanTou/ZuanTouXie_DieEvent.cs b/Assets/MyGame/aa/Game/FLZY/TSY/ZuanTou/ZuanTouXie_DieEvent.cs index 5cfb54f09..37704981d 100644 --- a/Assets/MyGame/aa/Game/FLZY/TSY/ZuanTou/ZuanTouXie_DieEvent.cs +++ b/Assets/MyGame/aa/Game/FLZY/TSY/ZuanTou/ZuanTouXie_DieEvent.cs @@ -72,10 +72,10 @@ public class ZuanTouXie_DieEvent : DieEffect_TSY var turretGo = sit.currentTurret.gameObject; turretGo.SetActive(false); - // 2. 出生点 = 炮台子弹起点(世界坐标)+ 偏移;旋转 = 炮台旋转节点 + // 2. 出生点 = 炮台子弹起点(世界坐标)+ 偏移;旋转 = turretRotate(与炮台一致的旋转节点) Vector3 worldPos = (Vector3)sit.currentTurret.GetBulletStartWorldPos() + drillOffset; - Quaternion rot = sit.tra_CurrTurret != null - ? sit.tra_CurrTurret.rotation + Quaternion rot = sit.turretRotate != null + ? sit.turretRotate.rotation : Quaternion.Euler(0, 0, sit.currentAngle); // 3. 在【世界坐标】生成钻头并拷贝炮台旋转 diff --git a/Assets/MyGame/aa/UI/Game/左下.prefab b/Assets/MyGame/aa/UI/Game/左下.prefab index 121b89595..abf56fc0b 100644 --- a/Assets/MyGame/aa/UI/Game/左下.prefab +++ b/Assets/MyGame/aa/UI/Game/左下.prefab @@ -288,6 +288,138 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1403499693239075355 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7013275771772835101} + - component: {fileID: 5925412083069679843} + - component: {fileID: 8606812403036458697} + m_Layer: 0 + m_Name: Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7013275771772835101 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1403499693239075355} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -120} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2724832172110457149} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!20 &5925412083069679843 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1403499693239075355} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 8400000, guid: 586bbf7efccc67d488b989a971b7f20a, type: 2} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!114 &8606812403036458697 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1403499693239075355} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 0 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 --- !u!1 &1447820852747777515 GameObject: m_ObjectHideFlags: 0 @@ -363,6 +495,51 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1617174912411278880 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2724832172110457149} + - component: {fileID: 7439650939040461381} + m_Layer: 0 + m_Name: TSYPT + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2724832172110457149 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1617174912411278880} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 1 + m_Children: + - {fileID: 7013275771772835101} + m_Father: {fileID: 3177929166328559778} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 565.3098, y: 440.8169} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7439650939040461381 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1617174912411278880} + m_CullTransparentMesh: 1 --- !u!1 &1869279901239002319 GameObject: m_ObjectHideFlags: 0 @@ -1468,6 +1645,7 @@ RectTransform: - {fileID: 8303575886087428388} - {fileID: 8688572226311385210} - {fileID: 5982321734877658021} + - {fileID: 2724832172110457149} - {fileID: 2913924626316377592} - {fileID: 6515038176716052403} m_Father: {fileID: 6916578527196273495} @@ -2093,7 +2271,8 @@ MonoBehaviour: tMP_DiamondNum: {fileID: 9208482097770273619} tMP_TurretConsumeNum: {fileID: 6996998917093333593} wingParent: {fileID: 5982321734877658021} - turretParent: {fileID: 2732244402854446462} + turretParent: {fileID: 5516422369603436267} + turretRotate: {fileID: 2732244402854446462} turretControlMode: 0 turretAnchoredPos: {x: 0, y: 0} currentTurretNumber: 0