diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Coffee/UIExtensions/UIEffect/Materials/UI-Effect-Shiny.mat b/AxibugEmuOnline.Client/Assets/Plugins/Coffee/UIExtensions/UIEffect/Materials/UI-Effect-Shiny.mat index 5ddad0b0..45a05a66 100644 --- a/AxibugEmuOnline.Client/Assets/Plugins/Coffee/UIExtensions/UIEffect/Materials/UI-Effect-Shiny.mat +++ b/AxibugEmuOnline.Client/Assets/Plugins/Coffee/UIExtensions/UIEffect/Materials/UI-Effect-Shiny.mat @@ -2,20 +2,24 @@ %TAG !u! tag:unity3d.com,2011: --- !u!21 &2100000 Material: - serializedVersion: 6 + serializedVersion: 8 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: UI-Effect-Shiny m_Shader: {fileID: 4800000, guid: 20ffe76c2439c403aabdd25bd94bf011, type: 3} - m_ShaderKeywords: + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] m_LightmapFlags: 1 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 stringTagMap: {} disabledShaderPasses: [] + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -27,6 +31,7 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + m_Ints: [] m_Floats: - _ColorMask: 15 - _Stencil: 0 @@ -38,3 +43,4 @@ Material: m_Colors: - _Color: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Coffee/UIExtensions/UIEffect/Materials/UI-Effect.mat b/AxibugEmuOnline.Client/Assets/Plugins/Coffee/UIExtensions/UIEffect/Materials/UI-Effect.mat index 75ab7d09..ea1b985d 100644 --- a/AxibugEmuOnline.Client/Assets/Plugins/Coffee/UIExtensions/UIEffect/Materials/UI-Effect.mat +++ b/AxibugEmuOnline.Client/Assets/Plugins/Coffee/UIExtensions/UIEffect/Materials/UI-Effect.mat @@ -275,7 +275,9 @@ Material: m_Shader: {fileID: 4800000, guid: b868e81d0156245e08c8646b4fb68d7a, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] + m_ValidKeywords: + - DETAILBLUR + - FILL m_InvalidKeywords: [] m_LightmapFlags: 5 m_EnableInstancingVariants: 0 @@ -616,7 +618,9 @@ Material: m_Shader: {fileID: 4800000, guid: b868e81d0156245e08c8646b4fb68d7a, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] + m_ValidKeywords: + - DETAILBLUR + - NEGA m_InvalidKeywords: [] m_LightmapFlags: 5 m_EnableInstancingVariants: 0 @@ -632,6 +636,10 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _ParamTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: - _ColorMask: 15 @@ -3572,7 +3580,9 @@ Material: m_Shader: {fileID: 4800000, guid: b868e81d0156245e08c8646b4fb68d7a, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] + m_ValidKeywords: + - DETAILBLUR + - SEPIA m_InvalidKeywords: [] m_LightmapFlags: 5 m_EnableInstancingVariants: 0 @@ -3588,6 +3598,10 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _ParamTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: - _ColorMask: 15 @@ -4062,7 +4076,9 @@ Material: m_Shader: {fileID: 4800000, guid: b868e81d0156245e08c8646b4fb68d7a, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] + m_ValidKeywords: + - DETAILBLUR + - SUBTRACT m_InvalidKeywords: [] m_LightmapFlags: 5 m_EnableInstancingVariants: 0 @@ -4078,6 +4094,10 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _ParamTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: - _ColorMask: 15 @@ -4182,7 +4202,9 @@ Material: m_Shader: {fileID: 4800000, guid: b868e81d0156245e08c8646b4fb68d7a, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] + m_ValidKeywords: + - ADD + - DETAILBLUR m_InvalidKeywords: [] m_LightmapFlags: 5 m_EnableInstancingVariants: 0 @@ -4270,7 +4292,9 @@ Material: m_Shader: {fileID: 4800000, guid: b868e81d0156245e08c8646b4fb68d7a, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] + m_ValidKeywords: + - DETAILBLUR + - GRAYSCALE m_InvalidKeywords: [] m_LightmapFlags: 5 m_EnableInstancingVariants: 0 @@ -4286,6 +4310,10 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _ParamTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: - _ColorMask: 15 @@ -4850,7 +4878,9 @@ Material: m_Shader: {fileID: 4800000, guid: b868e81d0156245e08c8646b4fb68d7a, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] + m_ValidKeywords: + - DETAILBLUR + - PIXEL m_InvalidKeywords: [] m_LightmapFlags: 5 m_EnableInstancingVariants: 0 @@ -4866,6 +4896,10 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + - _ParamTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} m_Ints: [] m_Floats: - _ColorMask: 15 @@ -5585,7 +5619,8 @@ Material: m_Shader: {fileID: 4800000, guid: b868e81d0156245e08c8646b4fb68d7a, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] + m_ValidKeywords: + - MEDIUMBLUR m_InvalidKeywords: [] m_LightmapFlags: 5 m_EnableInstancingVariants: 0 diff --git a/AxibugEmuOnline.Client/Assets/Plugins/Coffee/UIExtensions/UIEffect/Scripts/UIEffect.cs b/AxibugEmuOnline.Client/Assets/Plugins/Coffee/UIExtensions/UIEffect/Scripts/UIEffect.cs index badda376..f0490ca8 100644 --- a/AxibugEmuOnline.Client/Assets/Plugins/Coffee/UIExtensions/UIEffect/Scripts/UIEffect.cs +++ b/AxibugEmuOnline.Client/Assets/Plugins/Coffee/UIExtensions/UIEffect/Scripts/UIEffect.cs @@ -190,7 +190,7 @@ namespace Coffee.UIExtensions /// /// Blur effect mode(readonly). /// - public BlurMode blurMode { get { return m_BlurMode; } } + public BlurMode blurMode { get { return m_BlurMode; }set { m_BlurMode = value; } } /// /// Color for the color effect. diff --git a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab index 1c85858e..48a28adb 100644 --- a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab +++ b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/LaunchUI.prefab @@ -139,6 +139,123 @@ MonoBehaviour: SubMenus: [] HoriRollSpd: 1500 InitSelect: 1 +--- !u!1 &1551260616775499633 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8030738230415871255} + - component: {fileID: 1749614979705703043} + - component: {fileID: 2831564238218273703} + - component: {fileID: 6913951815547872457} + - component: {fileID: 968819366492627815} + m_Layer: 5 + m_Name: RomPreview + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &8030738230415871255 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1551260616775499633} + 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: 1639091784002085428} + 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.00012207031, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1749614979705703043 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1551260616775499633} + m_CullTransparentMesh: 1 +--- !u!114 &2831564238218273703 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1551260616775499633} + 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: 1} + 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!225 &6913951815547872457 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1551260616775499633} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!114 &968819366492627815 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1551260616775499633} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8b2ed11d675446c5a49da1ea296d490, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 300 + m_EffectMaterial: {fileID: 21563344409783084, guid: aee96bc531e6eba468ec405e536f515f, type: 2} + m_EffectFactor: 1 + m_ColorFactor: 1 + m_BlurFactor: 1 + m_EffectMode: 0 + m_ColorMode: 0 + m_BlurMode: 1 + m_AdvancedBlur: 0 + m_ShadowBlur: 1 + m_ShadowStyle: 0 + m_ShadowColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 1, y: -1} + m_UseGraphicAlpha: 1 + m_EffectColor: {r: 1, g: 1, b: 1, a: 1} + m_AdditionalShadows: [] --- !u!1 &1639091783724093882 GameObject: m_ObjectHideFlags: 0 @@ -153,7 +270,7 @@ GameObject: - component: {fileID: 3473513813641582791} - component: {fileID: 3025550092845034426} m_Layer: 5 - m_Name: bg + m_Name: XMBBackground m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -171,12 +288,12 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1639091784002085428} + m_Father: {fileID: 3978167929173065121} 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.00012207031, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &1639091783724093861 CanvasRenderer: @@ -270,7 +387,8 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1639091783724093883} + - {fileID: 3978167929173065121} + - {fileID: 8030738230415871255} - {fileID: 1924338507} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -293,7 +411,9 @@ MonoBehaviour: m_EditorClassIdentifier: MainMenuRoot: {fileID: 1924338507} MainMenu: {fileID: 4533431376032812611} - BG: {fileID: 1639091783724093860} + XMBBackground: {fileID: 1639091783724093860} + RomPreviewBigPic: {fileID: 2831564238218273703} + XMBCG_For_RomPreviewBigPic: {fileID: 1747598380906379634} m_detailLayoutPosition_x: 55 m_LayoutChangeSpeed: 1000 --- !u!1 &3732356966700017678 @@ -376,6 +496,55 @@ MonoBehaviour: m_EditorClassIdentifier: m_HorizontalFit: 2 m_VerticalFit: 2 +--- !u!1 &5147744065509886959 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3978167929173065121} + - component: {fileID: 1747598380906379634} + m_Layer: 5 + m_Name: romPreviewOpp + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3978167929173065121 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5147744065509886959} + 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: 1639091783724093883} + m_Father: {fileID: 1639091784002085428} + 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!225 &1747598380906379634 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5147744065509886959} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 --- !u!1001 &799626603263598074 PrefabInstance: m_ObjectHideFlags: 0 @@ -1935,7 +2104,7 @@ PrefabInstance: - target: {fileID: 2619187604372594158, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3} propertyPath: m_Sprite value: - objectReference: {fileID: 21300000, guid: 8b2d1bdf739173c40bb205540b308d02, type: 3} + objectReference: {fileID: 8228730565043098574, guid: d518d00d4940e854bbe45d9ef891401a, type: 3} - target: {fileID: 3189920797946144379, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3} propertyPath: m_Name value: "\u753B\u9762\u6BD4\u4F8B" @@ -2003,7 +2172,7 @@ PrefabInstance: - target: {fileID: 6771349210554360888, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3} propertyPath: m_Sprite value: - objectReference: {fileID: 21300000, guid: 8b2d1bdf739173c40bb205540b308d02, type: 3} + objectReference: {fileID: 8228730565043098574, guid: d518d00d4940e854bbe45d9ef891401a, type: 3} - target: {fileID: 8126322204359135913, guid: 98ac562d730eabc42b9a3b12c715d114, type: 3} propertyPath: m_AnchorMax.y value: 0 diff --git a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/VirtualItemTemplates/RomItemTemplate.prefab b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/VirtualItemTemplates/RomItemTemplate.prefab index 85316e28..fe81f02f 100644 --- a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/VirtualItemTemplates/RomItemTemplate.prefab +++ b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/VirtualItemTemplates/RomItemTemplate.prefab @@ -353,7 +353,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &88397014911048519 RectTransform: m_ObjectHideFlags: 0 @@ -595,7 +595,7 @@ RectTransform: m_Father: {fileID: 4825215963562112837} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 10, y: 0} m_Pivot: {x: 0.5, y: 0.5} @@ -673,6 +673,81 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: -10, y: 0} m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &2970190240800710577 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1123244137077354552} + - component: {fileID: 196912998120336165} + - component: {fileID: 2537658034304089639} + m_Layer: 5 + m_Name: Star + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1123244137077354552 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2970190240800710577} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -2} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8105925540140519754} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 8.2, y: -10.1} + m_SizeDelta: {x: 48.319504, y: 40.7695} + m_Pivot: {x: 0, y: 1} +--- !u!222 &196912998120336165 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2970190240800710577} + m_CullTransparentMesh: 1 +--- !u!114 &2537658034304089639 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2970190240800710577} + 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: 0, b: 0, 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_Sprite: {fileID: 7637870703528583553, guid: a8e14774cb9b81d4799116466bc09437, type: 3} + 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!1 &3095305487988041719 GameObject: m_ObjectHideFlags: 0 @@ -813,6 +888,8 @@ MonoBehaviour: DownloadingFlag: {fileID: 1252956242765037133} DownProgress: {fileID: 1484915906009859069} FileReadyFlag: {fileID: 6316945668089981796} + DownloadComplete: {fileID: 6633045760783967661} + Star: {fileID: 0} --- !u!114 &5700455559359757662 MonoBehaviour: m_ObjectHideFlags: 0 @@ -998,6 +1075,7 @@ GameObject: - component: {fileID: 8105925540140519754} - component: {fileID: 1377401926964550360} - component: {fileID: 67125096702760250} + - component: {fileID: 6633045760783967661} m_Layer: 5 m_Name: RomImage m_TagString: Untagged @@ -1019,6 +1097,7 @@ RectTransform: m_Children: - {fileID: 6087025893861054323} - {fileID: 1361359478345282377} + - {fileID: 1123244137077354552} - {fileID: 88397014911048519} m_Father: {fileID: 8754483333502849411} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1065,6 +1144,39 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6633045760783967661 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4643603390456494410} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f19b7e2285c104f6ca47d583f3e5444f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 300 + m_EffectMaterial: {fileID: 2100000, guid: 9dc7e810a87b444ab96919f3215c2fe5, type: 2} + m_EffectFactor: 0 + m_Width: 0.25 + m_Rotation: -41 + m_Softness: 1 + m_Brightness: 1 + m_Gloss: 1 + m_EffectArea: 0 + m_Player: + play: 0 + initialPlayDelay: 0 + duration: 0.5 + loop: 0 + loopDelay: 1 + updateMode: 0 + m_Play: 0 + m_Loop: 0 + m_Duration: 1 + m_LoopDelay: 1 + m_UpdateMode: 0 --- !u!1 &5340761592919397836 GameObject: m_ObjectHideFlags: 0 diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Event/EEvent.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Event/EEvent.cs index 2814d838..ce00a72c 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Event/EEvent.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Event/EEvent.cs @@ -79,6 +79,16 @@ /// 当本机手柄渴望插入时触发 /// 参数: 本地手柄序号[0,3] /// - OnLocalJoyDesireInvert + OnLocalJoyDesireInvert, + /// + /// 当Rom文件下载完毕时触发 + /// RomID + /// + OnRomFileDownloaded, + /// + /// 当Rom收藏状态变化时触发 + /// RomID + /// + OnRomStarStateChanged, //TODO 实现这个事件 } } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/ScreenScaler.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/ScreenScaler.cs index 228542ab..41af7649 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/ScreenScaler.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppSettings/ScreenScaler.cs @@ -106,7 +106,7 @@ namespace AxibugEmuOnline.Client switch (platform) { case RomPlatformType.Nes: return new Vector2Int(256, 240); - default: return new Vector2Int(256, 240); + default: throw new System.NotImplementedException($"未实现的平台:{platform}"); } } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/HttpAPI.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/HttpAPI.cs index d3e3bbc2..6a59e5d4 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/HttpAPI.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/HttpAPI.cs @@ -184,6 +184,7 @@ namespace AxibugEmuOnline.Client public string imgUrl; public string hash; public int stars; + public int isStar;//TODO 实现收藏标记 } [Serializable] public class Resp_CheckStandInfo diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomFile.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomFile.cs index 425828bd..e1f9c464 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomFile.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomFile.cs @@ -1,4 +1,5 @@ using AxibugEmuOnline.Client.ClientCore; +using AxibugEmuOnline.Client.Event; using AxibugProtobuf; using ICSharpCode.SharpZipLib.Zip; using System; @@ -54,8 +55,18 @@ namespace AxibugEmuOnline.Client public int Index { get; private set; } /// 在查询结果中的所在页 public int Page { get; private set; } - public string Hash => webData != null ? webData.hash : string.Empty; - + public string Hash => webData != null ? webData.hash : string.Empty; + /// 标记是否收藏 + public bool Star + { + get { return webData != null ? webData.isStar > 0 : false; } + set + { + if (webData == null) return; + webData.isStar = value ? 1 : 0; + } + } + public event Action OnDownloadOver; public event Action OnInfoFilled; @@ -79,6 +90,8 @@ namespace AxibugEmuOnline.Client File.WriteAllBytes(LocalFilePath, bytes); hasLocalFile = true; + + Eventer.Instance.PostEvent(EEvent.OnRomFileDownloaded, ID); } OnDownloadOver?.Invoke(this); })); diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomLib.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomLib.cs index fef19578..1a499722 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomLib.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/RomLib/RomLib.cs @@ -1,9 +1,11 @@ using AxibugEmuOnline.Client.ClientCore; using AxibugEmuOnline.Client.Common; +using AxibugEmuOnline.Client.Event; using AxibugProtobuf; using System; using System.Collections.Generic; using System.IO; +using System.Linq; using static AxibugEmuOnline.Client.HttpAPI; namespace AxibugEmuOnline.Client @@ -33,6 +35,16 @@ namespace AxibugEmuOnline.Client m_romSearchFunc = App.httpAPI.SearchNesRomList; break; } + + Eventer.Instance.RegisterEvent(EEvent.OnRomStarStateChanged, OnRomStarStateChanged); + } + + private void OnRomStarStateChanged(int romID, bool star) + { + var targetRom = nesRomFetchList.FirstOrDefault(rom => rom.ID == romID); + if (targetRom == null) return; + + targetRom.Star = star; } public RomFile GetRomFile(string romFileName) @@ -42,8 +54,6 @@ namespace AxibugEmuOnline.Client return romFile; } - - /// 清除所有下载的Rom文件 public void ClearRomFile() { diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/BgSettingsUI/UI_BgSettingItem_Color.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/BgSettingsUI/UI_BgSettingItem_Color.cs index 2676a2d4..ee7b52bd 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/BgSettingsUI/UI_BgSettingItem_Color.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/BgSettingsUI/UI_BgSettingItem_Color.cs @@ -1,4 +1,4 @@ -using AxibugEmuOnline.Client.ClientCore; +using AxibugEmuOnline.Client.ClientCore; using AxibugEmuOnline.Client.UI; using DG.Tweening; using DG.Tweening.Core; @@ -9,7 +9,7 @@ using UnityEngine; namespace AxibugEmuOnline.Client { /// - /// ɫUI + /// 背景颜色设置UI /// public class UI_BgSettingItem_Color : MenuItem, IVirtualItem { @@ -34,7 +34,7 @@ namespace AxibugEmuOnline.Client var color = Datacontext.CurrentColor; Icon.GetMaterial().SetColor("_Color1", color.color1); Icon.GetMaterial().SetColor("_Color2", color.color2); - SetBaseInfo("ɫ", "ɫ", color.Name); + SetBaseInfo("主题色", "设置主题色", color.Name); } public void SetDependencyProperty(object data) @@ -58,8 +58,9 @@ namespace AxibugEmuOnline.Client public class ColorOption : ExecuteMenu { public XMBColor Color; + public override string Name => Color.Name; - public ColorOption(XMBColor color) : base(color.Name) + public ColorOption(XMBColor color) { Color = color; } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/BgSettingsUI/UI_FilterItem.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/BgSettingsUI/UI_FilterItem.cs index 548702f9..e7dd6ab2 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/BgSettingsUI/UI_FilterItem.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/BgSettingsUI/UI_FilterItem.cs @@ -70,7 +70,9 @@ namespace AxibugEmuOnline.Client { private Filter m_filter; - public Opt_CreatePreset(Filter filter) : base("创建滤镜预设", Resources.LoadAll("Icons/XMB-Icons/misc")[0]) + public override string Name => "创建滤镜预设"; + public override Sprite Icon => Resources.LoadAll("Icons/XMB-Icons/misc")[0]; + public Opt_CreatePreset(Filter filter) { m_filter = filter; } @@ -101,7 +103,9 @@ namespace AxibugEmuOnline.Client private OptionUI_MenuItem m_ui; private List m_menu; - public Opt_Presets(Filter filter, FilterPreset preset) : base(preset.Name, null) + public override string Name => m_preset.Name; + + public Opt_Presets(Filter filter, FilterPreset preset) { m_filter = filter; m_preset = preset; @@ -151,8 +155,8 @@ namespace AxibugEmuOnline.Client public override bool Visible => m_param.ValueType.IsEnum || m_param.ValueType == typeof(float); + public override string Name => m_param.Name; public Opt_ParamEditor(Filter filter, FilterEffect.EditableParamerter editParam, FilterPreset preset) - : base(editParam.Name) { m_filter = filter; m_param = editParam; @@ -179,8 +183,9 @@ namespace AxibugEmuOnline.Client { private Filter m_filter; private FilterPreset m_preset; + public override string Name => "删除预设"; - public Opt_Delete(Filter filter, FilterPreset preset) : base("删除预设", null) + public Opt_Delete(Filter filter, FilterPreset preset) { m_filter = filter; m_preset = preset; diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/GamesUI/RomItem.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/GamesUI/RomItem.cs index df913641..480858c8 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/GamesUI/RomItem.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/GamesUI/RomItem.cs @@ -1,5 +1,8 @@ using AxibugEmuOnline.Client.ClientCore; +using AxibugEmuOnline.Client.Event; using AxibugEmuOnline.Client.UI; +using Coffee.UIExtensions; +using System; using UnityEngine; using UnityEngine.UI; @@ -16,12 +19,45 @@ namespace AxibugEmuOnline.Client Slider DownProgress; [SerializeField] GameObject FileReadyFlag; + [SerializeField] + UIShiny DownloadComplete; + [SerializeField] + GameObject Star; public int Index { get; set; } - private RomLib m_romlib => App.nesRomLib; + public bool IsStar + { + get + { + return m_romfile != null && m_romfile.InfoReady ? m_romfile.Star : false; + } + } + public int RomID { get { return m_romfile != null && m_romfile.InfoReady ? m_romfile.ID : -1; } } + + private RomLib m_romlib => App.nesRomLib; + + public bool RomInfoReady => m_romfile != null && m_romfile.InfoReady; + private RomFile m_romfile; + protected override void OnEnable() + { + Eventer.Instance.RegisterEvent(EEvent.OnRomFileDownloaded, OnRomDownloaded); + } + + protected override void OnDisable() + { + Eventer.Instance.UnregisterEvent(EEvent.OnRomFileDownloaded, OnRomDownloaded); + } + + private void OnRomDownloaded(int romID) + { + if (m_romfile == null || m_romfile.ID != romID) return; + + DownloadComplete.Play(); + } + public void SetData(object data) { Reset(); @@ -45,6 +81,14 @@ namespace AxibugEmuOnline.Client SetSelectState(data is ThirdMenuRoot && ((ThirdMenuRoot)data).SelectIndex == Index); } + protected override void OnSelected(float progress) + { + base.OnSelected(progress); + + if (m_romImage.sprite == null) LaunchUI.Instance.HideRomPreview(); + else LaunchUI.Instance.SetRomPreview(m_romImage.sprite); + } + public void Release() { m_romfile.OnInfoFilled -= OnRomInfoFilled; @@ -69,7 +113,9 @@ namespace AxibugEmuOnline.Client if (!m_romfile.InfoReady || url != m_romfile.ImageURL) return; m_romImage.sprite = img; + if (m_select) LaunchUI.Instance.SetRomPreview(img); }); + Star.SetActiveEx(m_romfile.Star); } } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/GamesUI/RomListMenuItem.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/GamesUI/RomListMenuItem.cs index 5a7241fa..79d49980 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/GamesUI/RomListMenuItem.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/GamesUI/RomListMenuItem.cs @@ -34,6 +34,7 @@ namespace AxibugEmuOnline.Client { new OptMenu_Search(this), new OptMenu_ShowAll(this), + new OptMenu_Fav(this), }; } @@ -68,8 +69,9 @@ namespace AxibugEmuOnline.Client public class OptMenu_Search : ExecuteMenu { private RomListMenuItem m_romListUI; + public override string Name => "搜索"; - public OptMenu_Search(RomListMenuItem romListUI, Sprite icon = null) : base("搜索", icon) + public OptMenu_Search(RomListMenuItem romListUI) { m_romListUI = romListUI; } @@ -90,9 +92,10 @@ namespace AxibugEmuOnline.Client { private RomListMenuItem m_ui; + public override string Name => "显示全部"; public override bool Visible => !string.IsNullOrWhiteSpace(m_ui.SearchKey); - public OptMenu_ShowAll(RomListMenuItem romListUI, Sprite icon = null) : base("显示全部", icon) + public OptMenu_ShowAll(RomListMenuItem romListUI) { m_ui = romListUI; } @@ -103,5 +106,32 @@ namespace AxibugEmuOnline.Client m_ui.RefreshUI(); } } + + public class OptMenu_Fav : ExecuteMenu + { + private RomListMenuItem m_romListUI; + private ThirdMenuRoot m_romListSub; + + private RomItem m_currentSelect => m_romListSub.GetItemUIByIndex(m_romListSub.SelectIndex) as RomItem; + + public override bool Visible => m_currentSelect.RomInfoReady; + + public override string Name { get { return m_currentSelect.IsStar ? "取消收藏" : "收藏"; } } + + public OptMenu_Fav(RomListMenuItem romListUI) + { + m_romListUI = romListUI; + m_romListSub = m_romListUI.SubMenuItemGroup as ThirdMenuRoot; + } + + public override void OnExcute(OptionUI optionUI, ref bool cancelHide) + { + var romItem = m_currentSelect; + if (!romItem.IsStar) + App.share.SendGameStar(romItem.RomID, 0); + else + App.share.SendGameStar(romItem.RomID, 1); + } + } } } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_FilterSetting.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_FilterSetting.cs index 31bd1d14..14c684f2 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_FilterSetting.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_FilterSetting.cs @@ -8,8 +8,9 @@ namespace AxibugEmuOnline.Client public class InGameUI_FilterSetting : ExpandMenu { private InGameUI m_gameUI; + public override string Name => "滤镜"; - public InGameUI_FilterSetting(InGameUI gameUI) : base("滤镜", null) + public InGameUI_FilterSetting(InGameUI gameUI) { m_gameUI = gameUI; } @@ -26,12 +27,11 @@ namespace AxibugEmuOnline.Client { private RomFile m_rom; + public override string Name => "取消滤镜"; public override bool IsApplied => App.settings.Filter.GetFilterSetting(m_rom).filter == null; - public FilterNone(RomFile rom) : base("取消滤镜", null) + public FilterNone(RomFile rom) { m_rom = rom; - - var currentFilterSetting = App.settings.Filter.GetFilterSetting(m_rom); } public override void OnExcute(OptionUI optionUI, ref bool cancelHide) @@ -58,8 +58,8 @@ namespace AxibugEmuOnline.Client return false; } } - - public FilterMenu(RomFile rom, Filter filter) : base(filter.Name, null) + public override string Name => m_filter.Name; + public FilterMenu(RomFile rom, Filter filter) { m_filter = filter; m_presetsMenuItems = new List { new FilterPresetMenu(rom, m_filter, m_filter.DefaultPreset) }; @@ -87,8 +87,8 @@ namespace AxibugEmuOnline.Client } } - - public FilterPresetMenu(RomFile rom, Filter filter, FilterPreset preset) : base(preset.Name, null) + public override string Name => m_preset.Name; + public FilterPresetMenu(RomFile rom, Filter filter, FilterPreset preset) { m_preset = preset; m_rom = rom; diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_LoadState.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_LoadState.cs index c6ddd582..9aa0d1b5 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_LoadState.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_LoadState.cs @@ -1,14 +1,12 @@ -using AxibugEmuOnline.Client.ClientCore; -using System.Diagnostics; - -namespace AxibugEmuOnline.Client +namespace AxibugEmuOnline.Client { public class InGameUI_LoadState : ExecuteMenu { private InGameUI m_gameUI; public override bool Visible => !m_gameUI.IsNetPlay; + public override string Name => "读取快照"; - public InGameUI_LoadState(InGameUI gameUI) : base("ȡ", null) + public InGameUI_LoadState(InGameUI gameUI) { m_gameUI = gameUI; } @@ -18,12 +16,9 @@ namespace AxibugEmuOnline.Client if (m_gameUI.IsNetPlay) return; object state = m_gameUI.GetQuickState(); - Stopwatch sw = Stopwatch.StartNew(); if (state != null) { m_gameUI.Core.LoadState(state); - sw.Stop(); - App.log.Info($"{m_gameUI.RomFile.Platform}====>ռغʱ:{sw.Elapsed.TotalMilliseconds}ms"); } } } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_QuitGame.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_QuitGame.cs index 03ed5166..1c05924b 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_QuitGame.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_QuitGame.cs @@ -1,11 +1,11 @@ -namespace AxibugEmuOnline.Client +namespace AxibugEmuOnline.Client { public class InGameUI_QuitGame : ExecuteMenu { private InGameUI m_gameUI; + public override string Name => "退出"; - - public InGameUI_QuitGame(InGameUI gameUI) : base("˳", null) + public InGameUI_QuitGame(InGameUI gameUI) { m_gameUI = gameUI; } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_Reset.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_Reset.cs index 02cbbaf7..a804dd66 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_Reset.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_Reset.cs @@ -1,14 +1,14 @@ -using AxibugEmuOnline.Client.ClientCore; +using AxibugEmuOnline.Client.ClientCore; namespace AxibugEmuOnline.Client { public class InGameUI_Reset : ExecuteMenu { private InGameUI m_gameUI; - + public override string Name => "复位"; public override bool Visible => !m_gameUI.IsNetPlay || App.roomMgr.IsHost; - public InGameUI_Reset(InGameUI gameUI) : base("λ", null) + public InGameUI_Reset(InGameUI gameUI) { m_gameUI = gameUI; } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_SaveState.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_SaveState.cs index 8c44d1ee..c6cbee4d 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_SaveState.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_SaveState.cs @@ -1,4 +1,4 @@ -using AxibugEmuOnline.Client.ClientCore; +using AxibugEmuOnline.Client.ClientCore; using System.Diagnostics; namespace AxibugEmuOnline.Client @@ -8,8 +8,9 @@ namespace AxibugEmuOnline.Client private InGameUI m_gameUI; public override bool Visible => !m_gameUI.IsNetPlay; + public override string Name => "保存快照"; - public InGameUI_SaveState(InGameUI gameUI) : base("", null) + public InGameUI_SaveState(InGameUI gameUI) { m_gameUI = gameUI; } @@ -23,7 +24,7 @@ namespace AxibugEmuOnline.Client m_gameUI.SaveQuickState(state); sw.Stop(); - App.log.Info($"{m_gameUI.RomFile.Platform}====>ȡպʱ:{sw.Elapsed.TotalMilliseconds}ms"); + App.log.Info($"{m_gameUI.RomFile.Platform}====>获取快照耗时:{sw.Elapsed.TotalMilliseconds}ms"); } } } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_Scaler.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_Scaler.cs index 2fc9d92c..4eb06201 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_Scaler.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/InGameUI/InGameUI_Scaler.cs @@ -8,8 +8,8 @@ namespace AxibugEmuOnline.Client public class InGameUI_Scaler : ExpandMenu { private List m_subMenus = new List(); - - public InGameUI_Scaler(InGameUI inGameUI) : base("屏幕比例", null) + public override string Name => "屏幕比例"; + public InGameUI_Scaler(InGameUI inGameUI) { m_subMenus.Add(new Scale(inGameUI, null)); foreach (EnumScalerMode scaleModeValue in Enum.GetValues(typeof(EnumScalerMode))) @@ -48,8 +48,8 @@ namespace AxibugEmuOnline.Client else return false; } } - - public Scale(InGameUI inGameUI, EnumScalerMode? mode) : base(ModeToName(mode), null) + public override string Name => ModeToName(m_mode); + public Scale(InGameUI inGameUI, EnumScalerMode? mode) { m_mode = mode; m_gameUI = inGameUI; diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/LaunchUI.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/LaunchUI.cs index ec562ffb..999f503b 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/LaunchUI.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/LaunchUI.cs @@ -1,5 +1,6 @@ -using AxibugEmuOnline.Client.ClientCore; +using AxibugEmuOnline.Client.ClientCore; using AxibugEmuOnline.Client.UI; +using Coffee.UIExtensions; using DG.Tweening; using DG.Tweening.Core; using DG.Tweening.Plugins.Options; @@ -14,7 +15,12 @@ namespace AxibugEmuOnline.Client RectTransform MainMenuRoot; [SerializeField] MainMenuController MainMenu; - public Image BG; + [SerializeField] + Image XMBBackground; + [SerializeField] + Image RomPreviewBigPic; + [SerializeField] + CanvasGroup XMBCG_For_RomPreviewBigPic; Vector2 m_mainLayoutPosition; [SerializeField] @@ -25,12 +31,20 @@ namespace AxibugEmuOnline.Client public static LaunchUI Instance { get; private set; } TweenerCore m_layoutTween; + AlphaWraper romPreviewWraper; private void Awake() { Instance = this; m_mainLayoutPosition = MainMenuRoot.anchoredPosition; MainMenu.ListenControlAction = true; + romPreviewWraper = new AlphaWraper(XMBCG_For_RomPreviewBigPic, RomPreviewBigPic.GetComponent(), false); + + var uiEffect = RomPreviewBigPic.GetComponent(); + if (Application.platform == RuntimePlatform.PSP2) + uiEffect.blurMode = BlurMode.FastBlur; + else + uiEffect.blurMode = BlurMode.DetailBlur; } private void Start() @@ -46,14 +60,40 @@ namespace AxibugEmuOnline.Client public void HideMainMenu() { - BG.gameObject.SetActiveEx(false); + XMBBackground.gameObject.SetActiveEx(false); MainMenuRoot.gameObject.SetActiveEx(false); + RomPreviewBigPic.gameObject.SetActiveEx(false); } public void ShowMainMenu() { - BG.gameObject.SetActiveEx(true); + XMBBackground.gameObject.SetActiveEx(true); MainMenuRoot.gameObject.SetActiveEx(true); + + if (romPreviewWraper.On) + { + XMBCG_For_RomPreviewBigPic.gameObject.SetActive(false); + RomPreviewBigPic.gameObject.SetActive(true); + } + else if (!romPreviewWraper.On) + { + XMBCG_For_RomPreviewBigPic.gameObject.SetActive(true); + XMBCG_For_RomPreviewBigPic.alpha = 1; + RomPreviewBigPic.gameObject.SetActive(false); + } + } + + public void HideRomPreview() + { + romPreviewWraper.On = false; + } + + public void SetRomPreview(Sprite sp) + { + if (MainMenu.ListenControlAction) return; + + RomPreviewBigPic.sprite = sp; + romPreviewWraper.On = true; } public void ToDetailMenuLayout() @@ -89,6 +129,8 @@ namespace AxibugEmuOnline.Client .SetSpeedBased(); MainMenu.ListenControlAction = true; MainMenu.ExitDetailState(); + + HideRomPreview(); } } } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/MenuItemController.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/MenuItemController.cs index 841bad89..90b0ae00 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/MenuItemController.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/MenuItemController.cs @@ -42,7 +42,7 @@ namespace AxibugEmuOnline.Client if (m_selectIndex == -1) SelectIndex = 0; } - protected virtual MenuItem GetItemUIByIndex(int index) + public virtual MenuItem GetItemUIByIndex(int index) { return m_runtimeMenuUI[SelectIndex]; } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI.cs index 4de0cb41..c208606f 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI.cs @@ -35,18 +35,20 @@ namespace AxibugEmuOnline.Client value = Mathf.Clamp(value, 0, m_runtimeMenuItems.Count - 1); if (m_selectIndex == value) return; - var gap = value - m_selectIndex; - + var gap = value - m_selectIndex; + + var temp = value; while (!m_runtimeMenuItems[value].Visible) { - var temp = value; if (gap > 0) { - temp++; + temp++; + if (temp >= m_runtimeMenuItems.Count) return; } else { temp--; + if (temp < 0) return; } if (temp >= 0 && temp < m_runtimeMenuItems.Count) @@ -386,7 +388,6 @@ namespace AxibugEmuOnline.Client { /// 设置这个值以控制菜单中显示"已应用"标记 public virtual bool IsApplied { get; } - protected ExecuteMenu(string name, Sprite icon = null) : base(name, icon) { } public abstract void OnExcute(OptionUI optionUI, ref bool cancelHide); } @@ -396,7 +397,7 @@ namespace AxibugEmuOnline.Client /// public abstract class ExpandMenu : ExecuteMenu { - protected ExpandMenu(string name, Sprite icon = null) : base(name, icon) { } + protected ExpandMenu() : base() { } public sealed override void OnExcute(OptionUI optionUI, ref bool cancelHide) { @@ -411,7 +412,7 @@ namespace AxibugEmuOnline.Client /// public abstract class ValueSetMenu : OptionMenu { - protected ValueSetMenu(string name) : base(name) { } + protected ValueSetMenu() : base() { } public abstract Type ValueType { get; } public abstract object ValueRaw { get; } @@ -423,17 +424,11 @@ namespace AxibugEmuOnline.Client /// 不要直接继承这个类 public abstract class OptionMenu { - public string Name { get; protected set; } - public Sprite Icon { get; protected set; } + public abstract string Name { get; } + public virtual Sprite Icon { get; } public virtual bool Visible => true; public virtual bool Enable => true; - protected OptionMenu(string name, Sprite icon = null) - { - Name = name; - Icon = icon; - } - public virtual void OnFocus() { } public virtual void OnShow(OptionUI_MenuItem ui) { } public virtual void OnHide() { } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/RoomUI/RoomItem.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/RoomUI/RoomItem.cs index aeb938f0..08ed2334 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/RoomUI/RoomItem.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/RoomUI/RoomItem.cs @@ -3,6 +3,7 @@ using AxibugEmuOnline.Client.Event; using AxibugEmuOnline.Client.Manager; using AxibugEmuOnline.Client.UI; using AxibugProtobuf; +using Sony.Vita.Dialog; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; @@ -48,6 +49,14 @@ namespace AxibugEmuOnline.Client UpdateUI(roomInfo); } + protected override void OnSelected(float progress) + { + base.OnSelected(progress); + + if (Icon.sprite == null) LaunchUI.Instance.HideRomPreview(); + else LaunchUI.Instance.SetRomPreview(Icon.sprite); + } + public override bool OnEnterItem() { if (m_romFile == null) return false; @@ -128,8 +137,9 @@ namespace AxibugEmuOnline.Client { if (m_romFile == null) return; if (m_romFile.ImageURL != url) return; - SetIcon(sprite); + + if (m_select) LaunchUI.Instance.SetRomPreview(sprite); } public void SetDependencyProperty(object data) diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/ThirdMenuRoot.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/ThirdMenuRoot.cs index 0a615d61..f8bd88ac 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/ThirdMenuRoot.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/ThirdMenuRoot.cs @@ -45,7 +45,7 @@ namespace AxibugEmuOnline.Client SelectIndex = selectIndex; } - protected override MenuItem GetItemUIByIndex(int index) + public override MenuItem GetItemUIByIndex(int index) { return itemGroup.GetItemUIByDataIndex(index)?.GetComponent(); } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBBackGround.shader b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBBackGround.shader index 3c5de6f2..eb1a4e94 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBBackGround.shader +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBBackGround.shader @@ -5,12 +5,6 @@ [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} _Color ("Tint", Color) = (1,1,1,1) - _StencilComp ("Stencil Comparison", Float) = 8 - _Stencil ("Stencil ID", Float) = 0 - _StencilOp ("Stencil Operation", Float) = 0 - _StencilWriteMask ("Stencil Write Mask", Float) = 255 - _StencilReadMask ("Stencil Read Mask", Float) = 255 - _ColorMask ("Color Mask", Float) = 15 [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0 @@ -45,15 +39,6 @@ "CanUseSpriteAtlas"="True" } - Stencil - { - Ref [_Stencil] - Comp [_StencilComp] - Pass [_StencilOp] - ReadMask [_StencilReadMask] - WriteMask [_StencilWriteMask] - } - Cull Off Lighting Off ZWrite Off @@ -72,9 +57,6 @@ #include "UnityCG.cginc" #include "UnityUI.cginc" - #pragma multi_compile_local _ UNITY_UI_CLIP_RECT - #pragma multi_compile_local _ UNITY_UI_ALPHACLIP - struct appdata_t { float4 vertex : POSITION; @@ -94,12 +76,7 @@ }; fixed4 _Color; - fixed4 _TextureSampleAdd; - float4 _ClipRect; sampler2D _MainTex; - float4 _MainTex_ST; - float _UIMaskSoftnessX; - float _UIMaskSoftnessY; float wave(float x, float frequency, float speed, float midHeight, float maxHeight) { @@ -128,10 +105,7 @@ float2 pixelSize = vPosition.w; pixelSize /= float2(1, 1) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy)); - float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); - float2 maskUV = (v.vertex.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); - OUT.texcoord = TRANSFORM_TEX(v.texcoord.xy, _MainTex); - OUT.mask = float4(v.vertex.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_UIMaskSoftnessX, _UIMaskSoftnessY) + abs(pixelSize.xy))); + OUT.texcoord = v.texcoord.xy; OUT.color = v.color * _Color; return OUT; @@ -187,15 +161,6 @@ // Output to screen fixed4 fragColor = float4(col,1.0)*IN.color; - #ifdef UNITY_UI_CLIP_RECT - half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw); - fragColor.a *= m.x * m.y; - #endif - - #ifdef UNITY_UI_ALPHACLIP - clip (fragColor.a - 0.001); - #endif - return fragColor; } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBBackGroundPreview.shader b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBBackGroundPreview.shader deleted file mode 100644 index b428b37e..00000000 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBBackGroundPreview.shader +++ /dev/null @@ -1,207 +0,0 @@ -Shader "AxibugEmuOnline/XMBBackGroundPreview" -{ - Properties - { - [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} - _Color ("Tint", Color) = (1,1,1,1) - - _StencilComp ("Stencil Comparison", Float) = 8 - _Stencil ("Stencil ID", Float) = 0 - _StencilOp ("Stencil Operation", Float) = 0 - _StencilWriteMask ("Stencil Write Mask", Float) = 255 - _StencilReadMask ("Stencil Read Mask", Float) = 255 - - _ColorMask ("Color Mask", Float) = 15 - - [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0 - - [Space(10)] - _Color1("Color1",Color) = (0,0.4,1,1) - _Color2("Color2",Color) = (0,0.7,1,1) - - [Header(Wave1)] - _MidHeight1("MidHeight",Float) = 0.4 - _MaxHeight1("MaxHeigh",Float) = 0.5 - _Power1("Power",Float)=50.0 - _Frequency1("Frequency",Float)=2.0 - _Speed1("Speed",Float)=0.4 - - [Header(Wave2)] - _MidHeight2("MidHeight",Float) = 0.42 - _MaxHeight2("MaxHeigh",Float) = 0.54 - _Power2("Power",Float)=50.0 - _Frequency2("Frequency",Float)=2.1 - _Speed2("Speed",Float)=0.3 - } - - SubShader - { - Tags - { - "Queue"="Transparent" - "IgnoreProjector"="True" - "RenderType"="Transparent" - "PreviewType"="Plane" - "CanUseSpriteAtlas"="True" - } - - Stencil - { - Ref [_Stencil] - Comp [_StencilComp] - Pass [_StencilOp] - ReadMask [_StencilReadMask] - WriteMask [_StencilWriteMask] - } - - Cull Off - Lighting Off - ZWrite Off - ZTest [unity_GUIZTestMode] - Blend SrcAlpha OneMinusSrcAlpha - ColorMask [_ColorMask] - - Pass - { - Name "Default" - CGPROGRAM - #pragma vertex vert - #pragma fragment frag - #pragma target 2.0 - - #include "UnityCG.cginc" - #include "UnityUI.cginc" - - #pragma multi_compile_local _ UNITY_UI_CLIP_RECT - #pragma multi_compile_local _ UNITY_UI_ALPHACLIP - - struct appdata_t - { - float4 vertex : POSITION; - float4 color : COLOR; - float2 texcoord : TEXCOORD0; - UNITY_VERTEX_INPUT_INSTANCE_ID - }; - - struct v2f - { - float4 vertex : SV_POSITION; - fixed4 color : COLOR; - float2 texcoord : TEXCOORD0; - float4 worldPosition : TEXCOORD1; - float4 mask : TEXCOORD2; - UNITY_VERTEX_OUTPUT_STEREO - }; - - fixed4 _Color; - fixed4 _TextureSampleAdd; - float4 _ClipRect; - sampler2D _MainTex; - float4 _MainTex_ST; - float _UIMaskSoftnessX; - float _UIMaskSoftnessY; - - float wave(float x, float frequency, float speed, float midHeight, float maxHeight) - { - return (sin(frequency * (x + speed * (((1. - (pow(cos(0.002 * (_Time.y + 400.)), 2.) + 1.) / 2.) + .1) * 2048.))) * (maxHeight - midHeight)) + midHeight; - } - float percentHigh(float currentY, float waveHeight, float maxHeight, float power) - { - float percentWave = max(waveHeight - currentY, 0.0) / maxHeight; - return pow(1.0 - percentWave, power); - } - float waveColor(float2 uv, float waveHeight, float maxHeight, float frequency, float power) - { - float percentWave = percentHigh(uv.y, waveHeight, maxHeight, power); - return clamp(percentWave + 0.8, 0.0, 1.0); - } - - v2f vert(appdata_t v) - { - v2f OUT; - UNITY_SETUP_INSTANCE_ID(v); - UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT); - float4 vPosition = UnityObjectToClipPos(v.vertex); - OUT.worldPosition = v.vertex; - OUT.vertex = vPosition; - - float2 pixelSize = vPosition.w; - pixelSize /= float2(1, 1) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy)); - - float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); - float2 maskUV = (v.vertex.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); - OUT.texcoord = TRANSFORM_TEX(v.texcoord.xy, _MainTex); - OUT.mask = float4(v.vertex.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_UIMaskSoftnessX, _UIMaskSoftnessY) + abs(pixelSize.xy))); - - OUT.color = v.color * _Color; - return OUT; - } - - float3 _Color1; - float3 _Color2; - - float _MidHeight1; - float _MaxHeight1; - float _Power1; - float _Frequency1; - float _Speed1; - - float _MidHeight2; - float _MaxHeight2; - float _Power2; - float _Frequency2; - float _Speed2; - - fixed4 frag(v2f IN) : SV_Target - { - float2 uv= IN.texcoord; - // Lerped background - - float amount = (uv.x + uv.y) / 2.0; - float3 bg = lerp(_Color2, _Color1, amount); - - // Overlayed sine waves - float maxHeight1 = _MaxHeight1 + wave(0, 4.0,0.02, 0.0, 0.02); - float power1 = _Power1; //Higher power means thinner line - float frequency1 = _Frequency1 + wave(0.0, 3.0, 0.03, 0.0, 0.02); - float speed1 = _Speed1 + wave(0.0, 2.2, 0.04, 0.0, 0.01); - float waveHeight1 = wave(uv.x, frequency1, speed1, _MidHeight1, maxHeight1); - float waveCol1 = waveColor(uv, waveHeight1, maxHeight1, frequency1, power1); - - float midHeight2 = _MidHeight2; - float maxHeight2 = _MaxHeight2 + wave(0.0, 3.0, 0.04, 0.0, 0.02); - float power2 = _Power2; //Higher power means thinner line - float frequency2 = _Frequency2 + wave(0.0, 4.0, 0.05, 0.0, 0.02); - float speed2 = _Speed2 + wave(0.0, 2.0, 0.02, 0.0, 0.01); - float waveHeight2 = wave(uv.x, frequency2, speed2, midHeight2, maxHeight2); - float waveCol2 = waveColor(uv, waveHeight2, maxHeight2, frequency2, power2); - - float3 col = bg; - - float3 waveCol1_temp=col/waveCol1; - col = lerp(col,waveCol1_temp, step(uv.y, waveHeight1)); - - float3 waveCol2_temp=col/waveCol2; - col = lerp(col,waveCol2_temp, step(uv.y, waveHeight2)); - - // Output to screen - fixed4 fragColor = float4(col,1.0)*IN.color; - - #ifdef UNITY_UI_CLIP_RECT - half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw); - fragColor.a *= m.x * m.y; - #endif - - #ifdef UNITY_UI_ALPHACLIP - clip (fragColor.a - 0.001); - #endif - - return fragColor; - } - - - - ENDCG - } - } -} \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBBackGroundPreview.shader.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBBackGroundPreview.shader.meta deleted file mode 100644 index 87eeb81d..00000000 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBBackGroundPreview.shader.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 424d88aff12857f4aab1911fdb6e02e9 -ShaderImporter: - externalObjects: {} - defaultTextures: [] - nonModifiableTextures: [] - preprocessorOverride: 0 - userData: - assetBundleName: - assetBundleVariant: