From 351c783c03306d2ece1ae2532f347d4928f7c210 Mon Sep 17 00:00:00 2001 From: ksh999000 <740612340@qq.com> Date: Sat, 4 Jul 2026 17:42:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=88=B6=E4=BD=9C=E4=BA=BA?= =?UTF-8?q?=E5=91=98=E5=90=8D=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Render Settings/PC RP Asset.asset | 52 +- .../Light/shaders/WaterReflection.shader | 23 + unity/Assets/Scenes/MainMenu.unity | 483 ++++++++++++++++++ unity/Assets/UI/MainMenuUIController.cs | 23 +- unity/ProjectSettings/ProjectSettings.asset | 10 +- unity/UserSettings/EditorUserSettings.asset | 8 +- 6 files changed, 551 insertions(+), 48 deletions(-) diff --git a/unity/Assets/2.5D Engine/Render Settings/PC RP Asset.asset b/unity/Assets/2.5D Engine/Render Settings/PC RP Asset.asset index 6cfa70d..f5ecd9d 100644 --- a/unity/Assets/2.5D Engine/Render Settings/PC RP Asset.asset +++ b/unity/Assets/2.5D Engine/Render Settings/PC RP Asset.asset @@ -1,5 +1,5 @@ %YAML 1.1 -%TAG !u! tag:unity3d.com,2011: +%TAG !u! tag:yousandi.cn,2023: --- !u!114 &11400000 MonoBehaviour: m_ObjectHideFlags: 0 @@ -33,14 +33,6 @@ MonoBehaviour: m_EnableLODCrossFade: 1 m_LODCrossFadeDitheringType: 1 m_ShEvalMode: 0 - m_LightProbeSystem: 0 - m_ProbeVolumeMemoryBudget: 1024 - m_ProbeVolumeBlendingMemoryBudget: 256 - m_SupportProbeVolumeGPUStreaming: 0 - m_SupportProbeVolumeDiskStreaming: 0 - m_SupportProbeVolumeScenarios: 0 - m_SupportProbeVolumeScenarioBlending: 0 - m_ProbeVolumeSHBands: 1 m_MainLightRenderingMode: 1 m_MainLightShadowsSupported: 1 m_MainLightShadowmapResolution: 2048 @@ -75,41 +67,32 @@ MonoBehaviour: m_SupportsLightLayers: 1 m_DebugLevel: 0 m_StoreActionsOptimization: 0 + m_EnableRenderGraph: 0 m_UseAdaptivePerformance: 1 m_ColorGradingMode: 0 m_ColorGradingLutSize: 32 - m_AllowPostProcessAlphaOutput: 0 m_UseFastSRGBLinearConversion: 0 m_SupportDataDrivenLensFlare: 1 - m_SupportScreenSpaceLensFlare: 1 - m_GPUResidentDrawerMode: 0 - m_SmallMeshScreenPercentage: 0 - m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0 + m_PostProcessPreserveAlpha: 0 m_ShadowType: 1 m_LocalShadowsSupported: 0 m_LocalShadowsAtlasResolution: 256 m_MaxPixelLights: 0 m_ShadowAtlasResolution: 256 m_VolumeFrameworkUpdateMode: 0 - m_VolumeProfile: {fileID: 11400000, guid: 10fc4df2da32a41aaa32d77bc913491c, type: 2} - apvScenesData: - obsoleteSceneBounds: - m_Keys: [] - m_Values: [] - obsoleteHasProbeVolumes: - m_Keys: [] - m_Values: + m_Textures: + blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} + bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} m_PrefilteringModeMainLightShadows: 3 - m_PrefilteringModeAdditionalLight: 4 - m_PrefilteringModeAdditionalLightShadows: 0 + m_PrefilteringModeAdditionalLight: 0 + m_PrefilteringModeAdditionalLightShadows: 2 m_PrefilterXRKeywords: 1 - m_PrefilteringModeForwardPlus: 1 + m_PrefilteringModeForwardPlus: 2 m_PrefilteringModeDeferredRendering: 0 - m_PrefilteringModeScreenSpaceOcclusion: 1 + m_PrefilteringModeScreenSpaceOcclusion: 2 m_PrefilterDebugKeywords: 1 - m_PrefilterWriteRenderingLayers: 0 + m_PrefilterWriteRenderingLayers: 1 m_PrefilterHDROutput: 1 - m_PrefilterAlphaOutput: 0 m_PrefilterSSAODepthNormals: 0 m_PrefilterSSAOSourceDepthLow: 1 m_PrefilterSSAOSourceDepthMedium: 1 @@ -121,16 +104,13 @@ MonoBehaviour: m_PrefilterSSAOSampleCountHigh: 1 m_PrefilterDBufferMRT1: 1 m_PrefilterDBufferMRT2: 1 - m_PrefilterDBufferMRT3: 0 - m_PrefilterSoftShadowsQualityLow: 0 - m_PrefilterSoftShadowsQualityMedium: 0 - m_PrefilterSoftShadowsQualityHigh: 0 + m_PrefilterDBufferMRT3: 1 + m_PrefilterSoftShadowsQualityLow: 1 + m_PrefilterSoftShadowsQualityMedium: 1 + m_PrefilterSoftShadowsQualityHigh: 1 m_PrefilterSoftShadows: 0 m_PrefilterScreenCoord: 1 m_PrefilterNativeRenderPass: 1 - m_PrefilterUseLegacyLightmaps: 0 + m_PrefilterPreserveAlpha: 1 m_ShaderVariantLogLevel: 0 m_ShadowCascades: 0 - m_Textures: - blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} - bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} diff --git a/unity/Assets/Light/shaders/WaterReflection.shader b/unity/Assets/Light/shaders/WaterReflection.shader index b4c20e1..62c592d 100644 --- a/unity/Assets/Light/shaders/WaterReflection.shader +++ b/unity/Assets/Light/shaders/WaterReflection.shader @@ -27,6 +27,8 @@ Shader "IndianOcean/WaterReflection" "RenderType" = "Transparent" "Queue" = "Transparent" "RenderPipeline" = "UniversalPipeline" + "IgnoreProjector" = "True" + "CanUseSpriteAtlas" = "True" } Blend SrcAlpha OneMinusSrcAlpha ZWrite Off @@ -39,6 +41,8 @@ Shader "IndianOcean/WaterReflection" #pragma vertex vert #pragma fragment frag #pragma multi_compile_instancing + #pragma multi_compile __ UNITY_UI_CLIP_RECT + #pragma multi_compile __ UNITY_UI_ALPHACLIP #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" @@ -73,6 +77,9 @@ Shader "IndianOcean/WaterReflection" float _WaveSpeed; CBUFFER_END + // UI ClipRect + float4 _ClipRect; + TEXTURE2D(_MainTex); SAMPLER(sampler_MainTex); @@ -182,6 +189,22 @@ Shader "IndianOcean/WaterReflection" half4 finalColor = half4(finalRGB, finalA); finalColor *= input.color; + + // UI 裁剪矩形裁剪 + #ifdef UNITY_UI_CLIP_RECT + float2 clipPos = positionCS.xy; + float clip = 1.0; + clip *= step(0.0, clipPos.x - _ClipRect.x); + clip *= step(0.0, clipPos.y - _ClipRect.y); + clip *= step(clipPos.x, _ClipRect.z); + clip *= step(clipPos.y, _ClipRect.w); + finalColor.a *= clip; + #endif + + #ifdef UNITY_UI_ALPHACLIP + clip(finalColor.a - 0.001); + #endif + return finalColor; } ENDHLSL diff --git a/unity/Assets/Scenes/MainMenu.unity b/unity/Assets/Scenes/MainMenu.unity index 97a1f8f..0b5a315 100644 --- a/unity/Assets/Scenes/MainMenu.unity +++ b/unity/Assets/Scenes/MainMenu.unity @@ -1026,6 +1026,45 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &693021953 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 7 + m_Component: + - component: {fileID: 693021954} + m_Layer: 0 + m_HasEditorInfo: 1 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &693021954 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 693021953} + 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: 1492109980} + - {fileID: 1116950991} + - {fileID: 1378071331} + m_Father: {fileID: 1048541269} + 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: 500, y: 350} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &700186399 GameObject: m_ObjectHideFlags: 0 @@ -1323,6 +1362,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1022684515} + - {fileID: 1048541269} m_Father: {fileID: 574406656} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -1870,6 +1910,8 @@ MonoBehaviour: quitButton: {fileID: 0} settingsPanel: {fileID: 0} settingsBackButton: {fileID: 0} + creditsPanel: {fileID: 1048541268} + creditsCloseButton: {fileID: 1378071328} --- !u!114 &1036666436 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2076,6 +2118,83 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] +--- !u!1 &1048541268 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 7 + m_Component: + - component: {fileID: 1048541269} + - component: {fileID: 1048541271} + - component: {fileID: 1048541270} + m_Layer: 0 + m_HasEditorInfo: 1 + m_Name: CreditsPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1048541269 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1048541268} + 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: 693021954} + m_Father: {fileID: 897692926} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1048541270 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1048541268} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.9137255} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1048541271 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1048541268} + m_CullTransparentMesh: 1 --- !u!1 &1065091762 GameObject: m_ObjectHideFlags: 0 @@ -2200,6 +2319,8 @@ MonoBehaviour: quitButton: {fileID: 0} settingsPanel: {fileID: 2013394273} settingsBackButton: {fileID: 774721830} + creditsPanel: {fileID: 0} + creditsCloseButton: {fileID: 0} --- !u!1 &1106266784 GameObject: m_ObjectHideFlags: 0 @@ -2276,6 +2397,86 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1116950990 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 7 + m_Component: + - component: {fileID: 1116950991} + - component: {fileID: 1116950993} + - component: {fileID: 1116950992} + m_Layer: 0 + m_HasEditorInfo: 1 + m_Name: CreditsText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1116950991 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1116950990} + 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: 693021954} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -25} + m_SizeDelta: {x: -40, y: -90} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1116950992 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1116950990} + 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: 0.9, g: 0.9, b: 0.9, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 28 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1.8 + m_Text: "\u7A0B\u7B56 jia\n\u7F8E\u672F usoony\n\u6253\u6742 \u5C18\u8FB0" +--- !u!222 &1116950993 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1116950990} + m_CullTransparentMesh: 1 --- !u!1 &1117279256 GameObject: m_ObjectHideFlags: 0 @@ -2701,6 +2902,128 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 0575607a807dc2d4c83554aa364916e4, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &1378071327 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 7 + m_Component: + - component: {fileID: 1378071331} + - component: {fileID: 1378071330} + - component: {fileID: 1378071329} + - component: {fileID: 1378071328} + m_Layer: 0 + m_HasEditorInfo: 1 + m_Name: CloseButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1378071328 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1378071327} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1378071329} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1378071329 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1378071327} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.2} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1378071330 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1378071327} + m_CullTransparentMesh: 1 +--- !u!224 &1378071331 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1378071327} + 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: 1715095677} + m_Father: {fileID: 693021954} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 10} + m_SizeDelta: {x: 120, y: 40} + m_Pivot: {x: 0.5, y: 0} --- !u!1 &1440709689 GameObject: m_ObjectHideFlags: 0 @@ -2782,6 +3105,86 @@ MonoBehaviour: m_EditorClassIdentifier: m_HorizontalFit: 2 m_VerticalFit: 2 +--- !u!1 &1492109979 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 7 + m_Component: + - component: {fileID: 1492109980} + - component: {fileID: 1492109982} + - component: {fileID: 1492109981} + m_Layer: 0 + m_HasEditorInfo: 1 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1492109980 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1492109979} + 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: 693021954} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 60} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1492109981 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1492109979} + 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: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 36 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u5236\u4F5C\u4EBA\u5458" +--- !u!222 &1492109982 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1492109979} + m_CullTransparentMesh: 1 --- !u!1 &1498112936 GameObject: m_ObjectHideFlags: 0 @@ -3078,6 +3481,86 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 +--- !u!1 &1715095676 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 7 + m_Component: + - component: {fileID: 1715095677} + - component: {fileID: 1715095679} + - component: {fileID: 1715095678} + m_Layer: 0 + m_HasEditorInfo: 1 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1715095677 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1715095676} + 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: 1378071331} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1715095678 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1715095676} + 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: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u5173\u95ED" +--- !u!222 &1715095679 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1715095676} + m_CullTransparentMesh: 1 --- !u!1 &1717100624 GameObject: m_ObjectHideFlags: 0 diff --git a/unity/Assets/UI/MainMenuUIController.cs b/unity/Assets/UI/MainMenuUIController.cs index de4d072..2365c4b 100644 --- a/unity/Assets/UI/MainMenuUIController.cs +++ b/unity/Assets/UI/MainMenuUIController.cs @@ -23,8 +23,13 @@ namespace GameFramework [SerializeField] GameObject settingsPanel; [SerializeField] Button settingsBackButton; + [Header("Credits Panel")] + [SerializeField] GameObject creditsPanel; + [SerializeField] Button creditsCloseButton; + void Start() { + Debug.Log("[MainMenu] creditsButton=" + (creditsButton != null ? creditsButton.name : "NULL") + " creditsPanel=" + (creditsPanel != null ? creditsPanel.name : "NULL")); // 绑定按钮事件 if (startButton != null) startButton.onClick.AddListener(OnStartClick); @@ -41,9 +46,14 @@ namespace GameFramework if (settingsBackButton != null) settingsBackButton.onClick.AddListener(OnSettingsBackClick); - // 确保设置面板初始关闭 + if (creditsCloseButton != null) + creditsCloseButton.onClick.AddListener(OnCreditsCloseClick); + + // 确保面板初始关闭 if (settingsPanel != null) settingsPanel.SetActive(false); + if (creditsPanel != null) + creditsPanel.SetActive(false); } void OnStartClick() @@ -60,8 +70,15 @@ namespace GameFramework void OnCreditsClick() { - // TODO: 实现制作人员界面 - Debug.Log("[MainMenu] 制作人员 - 待实现"); + Debug.Log("[MainMenu] OnCreditsClick called! creditsPanel=" + (creditsPanel != null ? creditsPanel.name : "NULL")); + if (creditsPanel != null) + creditsPanel.SetActive(true); + } + + void OnCreditsCloseClick() + { + if (creditsPanel != null) + creditsPanel.SetActive(false); } void OnSettingsBackClick() diff --git a/unity/ProjectSettings/ProjectSettings.asset b/unity/ProjectSettings/ProjectSettings.asset index de103f6..0dfc642 100644 --- a/unity/ProjectSettings/ProjectSettings.asset +++ b/unity/ProjectSettings/ProjectSettings.asset @@ -13,8 +13,8 @@ PlayerSettings: targetDevice: 2 useOnDemandResources: 0 accelerometerFrequency: 60 - companyName: DefaultCompany - productName: My project + companyName: Stellar Jam + productName: Stellar Jam_game defaultCursor: {fileID: 0} cursorHotspot: {x: 0, y: 0} m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} @@ -44,8 +44,8 @@ PlayerSettings: m_VirtualRealitySplashScreen: {fileID: 0} integrityHash: m_HolographicTrackingLossScreen: {fileID: 0} - defaultScreenWidth: 1024 - defaultScreenHeight: 768 + defaultScreenWidth: 1920 + defaultScreenHeight: 1080 defaultScreenWidthWeb: 960 defaultScreenHeightWeb: 600 m_StereoRenderingPath: 0 @@ -120,7 +120,7 @@ PlayerSettings: xboxEnableFitness: 0 visibleInBackground: 1 allowFullscreenSwitch: 1 - fullscreenMode: 1 + fullscreenMode: 3 xboxSpeechDB: 0 xboxEnableHeadOrientation: 0 xboxEnableGuest: 0 diff --git a/unity/UserSettings/EditorUserSettings.asset b/unity/UserSettings/EditorUserSettings.asset index 865866b..3f9c886 100644 --- a/unity/UserSettings/EditorUserSettings.asset +++ b/unity/UserSettings/EditorUserSettings.asset @@ -27,14 +27,14 @@ EditorUserSettings: value: 5300055151055f5a5e0c0f27477708444515192b287124367c791f30b3b9616d flags: 0 RecentlyUsedSceneGuid-7: - value: 5a55515156575a0b0f56592346260f444f16197c7e7f24697d2a4a32b1b0353e - flags: 0 - RecentlyUsedSceneGuid-8: value: 5a5757560101590a5d0c0e24427b5d44434e4c7a7b7a23677f2b4565b7b5353a flags: 0 - RecentlyUsedSceneGuid-9: + RecentlyUsedSceneGuid-8: value: 0209025f575750595c57092149765d444e4e49727e7c7068757b1c65b6e36c3b flags: 0 + RecentlyUsedSceneGuid-9: + value: 5a55515156575a0b0f56592346260f444f16197c7e7f24697d2a4a32b1b0353e + flags: 0 UnityEditor.ShaderGraph.Blackboard: value: 18135939215a0a5004000b0e15254b524c030a3f2964643d120d1230e9e93a3fd6e826abbd2e2d293c4ead313b08042de6030a0afa240c0d020be94c4ba75e435d8715fa32c70d15d11612dacc11fee5d3c5d1fe9ab1bf968e93e2ffcbc3e7e2f0b3ffe0e8b0be9af8ffaeffff8e85dd8390e3949c8899daa7 flags: 0