diff --git a/Assets/Res/language/language.json b/Assets/Res/language/language.json index 8cce917..180aa5d 100644 --- a/Assets/Res/language/language.json +++ b/Assets/Res/language/language.json @@ -452,7 +452,7 @@ { "key": "100091", "zh": "补光灯", - "en": "Fill Light" + "en": "Light" }, { "key": "100092", diff --git a/Assets/Res/ui/homepage/homePage.prefab b/Assets/Res/ui/homepage/homePage.prefab index 2441ee1..89138e5 100644 --- a/Assets/Res/ui/homepage/homePage.prefab +++ b/Assets/Res/ui/homepage/homePage.prefab @@ -360,9 +360,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 4568515400396789170} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 55, y: -20} m_SizeDelta: {x: 0, y: 40} m_Pivot: {x: 0, y: 0.5} --- !u!222 &244985182926712396 @@ -5959,10 +5959,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 1846093831662304367} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 45} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 120, y: 10} + m_SizeDelta: {x: 36, y: 45} m_Pivot: {x: 0.5, y: 1} --- !u!222 &3749378162026232689 CanvasRenderer: @@ -6300,10 +6300,10 @@ RectTransform: - {fileID: 4929160862756643459} m_Father: {fileID: 1069437048745146005} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 60} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 6, y: -35.5} + m_SizeDelta: {x: 155.5, y: 60} m_Pivot: {x: 0, y: 0.5} --- !u!222 &6545400438610870076 CanvasRenderer: @@ -8269,10 +8269,10 @@ RectTransform: - {fileID: 327602628975355249} m_Father: {fileID: 1069437048745146005} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 60} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 472.5, y: -35.5} + m_SizeDelta: {x: 155.5, y: 60} m_Pivot: {x: 0, y: 0.5} --- !u!222 &1430460842267038712 CanvasRenderer: @@ -9325,10 +9325,10 @@ RectTransform: - {fileID: 1666632072748462393} m_Father: {fileID: 3113186033587881318} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 111} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 79.875, y: -55.5} + m_SizeDelta: {x: 159.75, y: 111} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1208559727036824385 CanvasRenderer: @@ -9926,10 +9926,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 4568515400396789170} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 40} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 20, y: -20} + m_SizeDelta: {x: 40, y: 40} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5333284508431453442 CanvasRenderer: @@ -10765,10 +10765,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 4568515400396789170} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 36} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 70, y: -20} + m_SizeDelta: {x: 36, y: 36} m_Pivot: {x: 0, y: 0.5} --- !u!222 &2163933620157744377 CanvasRenderer: @@ -12331,10 +12331,10 @@ RectTransform: - {fileID: 2975297560480716843} m_Father: {fileID: 1069437048745146005} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 60} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 317, y: -35.5} + m_SizeDelta: {x: 155.5, y: 60} m_Pivot: {x: 0, y: 0.5} --- !u!222 &1781978324875051918 CanvasRenderer: @@ -13199,10 +13199,10 @@ RectTransform: m_Children: [] m_Father: {fileID: 1846093831662304367} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 45} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 51, y: 10} + m_SizeDelta: {x: 102, y: 45} m_Pivot: {x: 0.5, y: 1} --- !u!222 &1255502245993973393 CanvasRenderer: @@ -14574,10 +14574,10 @@ RectTransform: - {fileID: 6020472513220436764} m_Father: {fileID: 1069437048745146005} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 60} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 161.5, y: -35.5} + m_SizeDelta: {x: 155.5, y: 60} m_Pivot: {x: 0, y: 0.5} --- !u!222 &7222490346232352863 CanvasRenderer: @@ -15413,10 +15413,10 @@ RectTransform: - {fileID: 3973224289061388720} m_Father: {fileID: 3113186033587881318} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 111} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 256.625, y: -55.5} + m_SizeDelta: {x: 159.75, y: 111} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &5747587932164273453 CanvasRenderer: @@ -17123,7 +17123,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &7190469845234229913 RectTransform: m_ObjectHideFlags: 0 @@ -17939,10 +17939,10 @@ RectTransform: - {fileID: 4828275562546024043} m_Father: {fileID: 3113186033587881318} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 111} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 433.375, y: -55.5} + m_SizeDelta: {x: 159.75, y: 111} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &2323428145332649792 CanvasRenderer: @@ -19937,10 +19937,10 @@ RectTransform: - {fileID: 1538898088399718538} m_Father: {fileID: 3113186033587881318} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 111} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 610.125, y: -55.5} + m_SizeDelta: {x: 159.75, y: 111} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4295980959046441324 CanvasRenderer: diff --git a/Assets/Scenes/MainScene.unity b/Assets/Scenes/MainScene.unity index e1f6d44..a2a30e4 100644 --- a/Assets/Scenes/MainScene.unity +++ b/Assets/Scenes/MainScene.unity @@ -486,13 +486,14 @@ MonoBehaviour: - https://api.photonmatrixlab.com serverBaseUrl: https://api.photonmatrixlab.com enableServerBackdoor: 1 - backdoorTapCount: 15 + backdoorTapCount: 5 backdoorTapInterval: 1 defaultTimeout: 30 defaultMaxRetries: 3 useExponentialBackoff: 1 globalHeaders: [] maxConcurrentRequests: 5 + testMask: {fileID: 2043343453} resourceVersion: 1.0.0 nowBundleList: version: @@ -1283,6 +1284,7 @@ RectTransform: - {fileID: 1996378184} - {fileID: 1945863181} - {fileID: 769989591} + - {fileID: 2043343454} m_Father: {fileID: 280520207} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -1437,6 +1439,85 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1707492647} m_CullTransparentMesh: 1 +--- !u!1 &1835717724 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1835717725} + - component: {fileID: 1835717728} + - component: {fileID: 1835717727} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1835717725 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1835717724} + 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: 0 + m_Children: [] + m_Father: {fileID: 2043343454} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 235, y: -41} + m_SizeDelta: {x: 390, y: 42} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1835717727 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1835717724} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.2627451} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: f4c31d68e7cd3454685bb4c132a52f58, type: 3} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 55 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: "\u5F53\u524D\u4E3A\u6D4B\u8BD5\u670D\u52A1\u5668\uFF01\uFF01\uFF01\uFF01\uFF01" +--- !u!222 &1835717728 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1835717724} + m_CullTransparentMesh: 1 --- !u!1 &1892668933 GameObject: m_ObjectHideFlags: 0 @@ -1712,6 +1793,93 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1996378183} m_CullTransparentMesh: 1 +--- !u!1 &2043343453 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2043343454} + - component: {fileID: 2043343458} + - component: {fileID: 2043343456} + - component: {fileID: 2043343455} + m_Layer: 5 + m_Name: Test + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2043343454 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2043343453} + 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: 0 + m_Children: + - {fileID: 1835717725} + m_Father: {fileID: 1547547273} + 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: 470, y: 82} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &2043343455 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2043343453} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 40 + m_Right: 40 + m_Top: 20 + m_Bottom: 20 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &2043343456 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2043343453} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!222 &2043343458 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2043343453} + m_CullTransparentMesh: 1 --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Network/NetworkCtrl.cs b/Assets/Scripts/Network/NetworkCtrl.cs index 0f23099..db29a8f 100644 --- a/Assets/Scripts/Network/NetworkCtrl.cs +++ b/Assets/Scripts/Network/NetworkCtrl.cs @@ -108,9 +108,20 @@ namespace Kill.Network private int backdoorTapCountCurrent; private float lastBackdoorTapTime; + public GameObject testMask; + + /// + /// 根据当前服务器环境更新测试水印显隐 + /// + private void UpdateTestMaskVisibility() + { + if (testMask == null) return; + testMask.SetActive(CurrentServerEnv == EnvTest); + } /// /// 读取本地持久化的服务器环境并应用到 serverBaseUrl + /// 后门关闭时强制使用正式服务器(忽略本地持久化的测试环境) /// private void ApplySavedServerEnv() { @@ -120,11 +131,19 @@ namespace Kill.Network int savedEnv = PlayerPrefs.GetInt(ServerEnvKey, EnvOfficial); CurrentServerEnv = savedEnv == EnvTest ? EnvTest : EnvOfficial; + // 后门关闭:无论本地是否存了测试环境,强制使用正式服务器 + if (!enableServerBackdoor) + { + CurrentServerEnv = EnvOfficial; + PlayerPrefs.SetInt(ServerEnvKey, EnvOfficial); + PlayerPrefs.Save(); + } if (CurrentServerEnv == EnvTest && !string.IsNullOrEmpty(TestServerUrl)) { serverBaseUrl = TestServerUrl; } Debug.Log($"[NetworkCtrl] 服务器环境: {(CurrentServerEnv == EnvTest ? "测试" : "正式")} - {serverBaseUrl}"); + UpdateTestMaskVisibility(); } /// @@ -140,6 +159,12 @@ namespace Kill.Network private void SwitchToTest() { + // 后门关闭时不允许切换到测试服务器 + if (!enableServerBackdoor) + { + Debug.LogWarning("[NetworkCtrl] 服务器切换后门已关闭,不允许切换到测试服务器"); + return; + } if (string.IsNullOrEmpty(TestServerUrl)) { Debug.LogWarning("[NetworkCtrl] 未配置测试服务器地址,无法切换"); @@ -150,6 +175,7 @@ namespace Kill.Network PlayerPrefs.Save(); serverBaseUrl = TestServerUrl; SetServerUrl(serverBaseUrl); + UpdateTestMaskVisibility(); Debug.Log($"[NetworkCtrl] 已切换到测试服务器: {serverBaseUrl}"); ToastUI.ShowText("已切换到测试服务器"); } @@ -161,6 +187,7 @@ namespace Kill.Network PlayerPrefs.Save(); serverBaseUrl = officialServerUrl; SetServerUrl(serverBaseUrl); + UpdateTestMaskVisibility(); Debug.Log($"[NetworkCtrl] 已切换到正式服务器: {serverBaseUrl}"); ToastUI.ShowText("已切换到正式服务器"); }