diff --git a/Assets/Art/FengLei/Fish/72.prefab b/Assets/Art/FengLei/Fish/72.prefab index 74713f95b..2d9cc3f17 100644 --- a/Assets/Art/FengLei/Fish/72.prefab +++ b/Assets/Art/FengLei/Fish/72.prefab @@ -78,7 +78,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!4 &4046061516474126 Transform: m_ObjectHideFlags: 0 @@ -137,6 +137,8 @@ MonoBehaviour: end: {x: 0, y: 0} moveTime: 0 moveSpeed: 0 + cachedCamera: {fileID: 0} + cachedUirootRect: {fileID: 0} skeleton: {fileID: 0} isSpine: 1 fishTypeID: 11018 diff --git a/Assets/MyGame/Scripts/Manager/GameManager.cs b/Assets/MyGame/Scripts/Manager/GameManager.cs index a881e4f5b..ec7f24cc0 100644 --- a/Assets/MyGame/Scripts/Manager/GameManager.cs +++ b/Assets/MyGame/Scripts/Manager/GameManager.cs @@ -203,14 +203,16 @@ public class GameManager : MonoSingleton // ⭐ 游戏启动时加载已保存的画质和帧率设置 int quality = PlayerPrefs.GetInt("GraphicsQuality", 1); - QualitySettings.SetQualityLevel(quality, true); + // applyExpensiveChanges=false:URP 下切换画质会重建渲染管线,立即应用(true)易触发 GPU 重置闪退 + QualitySettings.SetQualityLevel(quality, false); int fps = PlayerPrefs.GetInt("TargetFps", 1); + // 中高档统一为 60 帧。移动端强制垂直同步,45 不可用(60Hz 整数倍才合法),故中档按 60 处理。 Application.targetFrameRate = fps switch { 0 => 30, 1 => 60, - 2 => -1, + 2 => 60, _ => 60 }; diff --git a/Assets/MyGame/aa/Game/HHWK/Boss/BaiGuJing/Game177_baigujing.prefab b/Assets/MyGame/aa/Game/HHWK/Boss/BaiGuJing/Game177_baigujing.prefab index 650493d71..42b7ee0ec 100644 --- a/Assets/MyGame/aa/Game/HHWK/Boss/BaiGuJing/Game177_baigujing.prefab +++ b/Assets/MyGame/aa/Game/HHWK/Boss/BaiGuJing/Game177_baigujing.prefab @@ -61,7 +61,7 @@ CircleCollider2D: m_CallbackLayers: serializedVersion: 2 m_Bits: 4294967295 - m_IsTrigger: 0 + m_IsTrigger: 1 m_UsedByEffector: 0 m_UsedByComposite: 0 m_Offset: {x: -3.4851449, y: -273.4442} @@ -88,7 +88,7 @@ PrefabInstance: - target: {fileID: 2997278484354343629, guid: d91ace63f3f1e264397418d302f4f473, type: 3} propertyPath: m_IsActive - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 2997278484354343629, guid: d91ace63f3f1e264397418d302f4f473, type: 3} @@ -1460,6 +1460,8 @@ MonoBehaviour: end: {x: 0, y: 0} moveTime: 0 moveSpeed: 0 + cachedCamera: {fileID: 0} + cachedUirootRect: {fileID: 0} skeleton: {fileID: 0} isSpine: 1 fishTypeID: 13029 diff --git a/Assets/MyGame/aa/UI/Game/GameMainPanel_FishBase.cs b/Assets/MyGame/aa/UI/Game/GameMainPanel_FishBase.cs index a882b3bf8..6722610bc 100644 --- a/Assets/MyGame/aa/UI/Game/GameMainPanel_FishBase.cs +++ b/Assets/MyGame/aa/UI/Game/GameMainPanel_FishBase.cs @@ -911,7 +911,35 @@ public class GameMainPanel_FishBase : GameMainPanel_Base try { JinDuTiao.Hide(); } catch { } } // 进入 home 界面(关闭当前游戏面板) - UIManager.Instance.ShowAsync(UIPanel.HomeMainPanel, _leavingGamePanelType); + switch (GameManager.Instance.gameData.currGameType) + { + case GameType.JQQD: + break; + case GameType.defaultPanel: + + break; + case GameType.FLZY: + UIManager.Instance.ShowAsync(UIPanel.HomeMainPanel, UIPanel.MainGamePanelFLZY); + break; + case GameType.YYSC: + UIManager.Instance.ShowAsync(UIPanel.HomeMainPanel, UIPanel.MainGamePanelYYSC); + break; + case GameType.ZGXQ: + UIManager.Instance.ShowAsync(UIPanel.HomeMainPanel, UIPanel.MainGamePanelZGXQ); + + break; + case GameType.XJMH: + UIManager.Instance.ShowAsync(UIPanel.HomeMainPanel, UIPanel.MainGamePanelXJMH); + + break; + case GameType.HHWK: + UIManager.Instance.ShowAsync(UIPanel.HomeMainPanel, UIPanel.MainGamePanelHHWK); + + break; + default: + break; + } + UIManager.Instance.ShowAsync(UIPanel.HomeMainPanel, GameManager.Instance.gameData.currGameType); } } diff --git a/Assets/MyGame/aa/UI/Home/Sub/UIHome_BY_SettingPenel.cs b/Assets/MyGame/aa/UI/Home/Sub/UIHome_BY_SettingPenel.cs index 54f16329e..a825d6962 100644 --- a/Assets/MyGame/aa/UI/Home/Sub/UIHome_BY_SettingPenel.cs +++ b/Assets/MyGame/aa/UI/Home/Sub/UIHome_BY_SettingPenel.cs @@ -78,7 +78,7 @@ public class UIHome_BY_SettingPanel : SubUIBase CacheToggleColor(toggle_Fps30); CacheToggleColor(toggle_Fps45); CacheToggleColor(toggle_Fps60); - int fps = PlayerPrefs.GetInt("TargetFps", 2); + int fps = PlayerPrefs.GetInt("TargetFps", 1); ApplyFps(fps); toggle_Fps30?.onValueChanged.AddListener(a => { if (a) SetFps(0); }); toggle_Fps45?.onValueChanged.AddListener(a => { if (a) SetFps(1); }); @@ -120,7 +120,11 @@ public class UIHome_BY_SettingPanel : SubUIBase UpdateToggleColor(toggle_QualityLow, level == 0); UpdateToggleColor(toggle_QualityMid, level == 1); UpdateToggleColor(toggle_QualityHigh, level == 2); - QualitySettings.SetQualityLevel(level, true); + // 关键:applyExpensiveChanges 必须为 false。 + // URP 下每个画质档位绑定不同 URP Asset,SetQualityLevel(true) 会立即重建渲染管线/重编译 shader, + // 瞬间 GPU 负载骤增,在低端显卡/驱动不兼容时触发设备重置导致闪退。 + // false 表示昂贵更改延迟到安全时机(下一帧)应用,避免闪退。 + QualitySettings.SetQualityLevel(level, false); } private void SetFps(int level) @@ -138,13 +142,12 @@ public class UIHome_BY_SettingPanel : SubUIBase UpdateToggleColor(toggle_Fps30, level == 0); UpdateToggleColor(toggle_Fps45, level == 1); UpdateToggleColor(toggle_Fps60, level == 2); - // 关键:vSyncCount != 0 会让 Application.targetFrameRate 失效(被屏幕刷新率覆盖)。 - // Balanced/High Fidelity 画质默认 vSyncCount=1,必须强制关闭才能让帧率档位生效。 - QualitySettings.vSyncCount = 0; + // 中高档统一为 60 帧。移动端强制垂直同步,45 不可用(60Hz 整数倍才合法), + // 故中档(45)也直接按 60 处理,避免闪退。 switch (level) { case 0: Application.targetFrameRate = 30; break; - case 1: Application.targetFrameRate = 45; break; + case 1: case 2: Application.targetFrameRate = 60; break; } }