Merge pull request 'master' (#85) from Alienjack/AxibugEmuOnline:master into master

Reviewed-on: sin365/AxibugEmuOnline#85
This commit is contained in:
sin365 2025-01-08 11:05:49 +08:00
commit 31da819ad0
28 changed files with 570 additions and 341 deletions

View File

@ -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

View File

@ -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

View File

@ -190,7 +190,7 @@ namespace Coffee.UIExtensions
/// <summary>
/// Blur effect mode(readonly).
/// </summary>
public BlurMode blurMode { get { return m_BlurMode; } }
public BlurMode blurMode { get { return m_BlurMode; }set { m_BlurMode = value; } }
/// <summary>
/// Color for the color effect.

View File

@ -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

View File

@ -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

View File

@ -79,6 +79,16 @@
/// 当本机手柄渴望插入时触发
/// <para>参数: <see cref="int"/> 本地手柄序号[0,3]</para>
/// </summary>
OnLocalJoyDesireInvert
OnLocalJoyDesireInvert,
/// <summary>
/// 当Rom文件下载完毕时触发
/// <para><see cref="int"/>RomID</para>
/// </summary>
OnRomFileDownloaded,
/// <summary>
/// 当Rom收藏状态变化时触发
/// <para><see cref="int"/>RomID</para>
/// </summary>
OnRomStarStateChanged, //TODO 实现这个事件
}
}

View File

@ -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}");
}
}

View File

@ -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

View File

@ -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; }
/// <summary> 在查询结果中的所在页 </summary>
public int Page { get; private set; }
public string Hash => webData != null ? webData.hash : string.Empty;
public string Hash => webData != null ? webData.hash : string.Empty;
/// <summary> 标记是否收藏 </summary>
public bool Star
{
get { return webData != null ? webData.isStar > 0 : false; }
set
{
if (webData == null) return;
webData.isStar = value ? 1 : 0;
}
}
public event Action<RomFile> 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);
}));

View File

@ -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<int, bool>(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;
}
/// <summary> 清除所有下载的Rom文件 </summary>
public void ClearRomFile()
{

View File

@ -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
{
/// <summary>
/// ąłž°ŃŐÉŤÉčÖĂUI
/// 背景颜色设置UI
/// </summary>
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;
}

View File

@ -70,7 +70,9 @@ namespace AxibugEmuOnline.Client
{
private Filter m_filter;
public Opt_CreatePreset(Filter filter) : base("创建滤镜预设", Resources.LoadAll<Sprite>("Icons/XMB-Icons/misc")[0])
public override string Name => "创建滤镜预设";
public override Sprite Icon => Resources.LoadAll<Sprite>("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<OptionMenu> 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;

View File

@ -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<int>(EEvent.OnRomFileDownloaded, OnRomDownloaded);
}
protected override void OnDisable()
{
Eventer.Instance.UnregisterEvent<int>(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);
}
}

View File

@ -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);
}
}
}
}

View File

@ -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<OptionMenu> { 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;

View File

@ -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");
}
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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");
}
}
}

View File

@ -8,8 +8,8 @@ namespace AxibugEmuOnline.Client
public class InGameUI_Scaler : ExpandMenu
{
private List<OptionMenu> m_subMenus = new List<OptionMenu>();
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;

View File

@ -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<Vector2, Vector2, VectorOptions> m_layoutTween;
AlphaWraper romPreviewWraper;
private void Awake()
{
Instance = this;
m_mainLayoutPosition = MainMenuRoot.anchoredPosition;
MainMenu.ListenControlAction = true;
romPreviewWraper = new AlphaWraper(XMBCG_For_RomPreviewBigPic, RomPreviewBigPic.GetComponent<CanvasGroup>(), false);
var uiEffect = RomPreviewBigPic.GetComponent<UIEffect>();
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();
}
}
}

View File

@ -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];
}

View File

@ -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
{
/// <summary> 设置这个值以控制菜单中显示"已应用"标记 </summary>
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
/// </summary>
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
/// </summary>
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
/// <summary> 不要直接继承这个类 </summary>
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() { }

View File

@ -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)

View File

@ -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<MenuItem>();
}

View File

@ -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;
}

View File

@ -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
}
}
}

View File

@ -1,10 +0,0 @@
fileFormatVersion: 2
guid: 424d88aff12857f4aab1911fdb6e02e9
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
preprocessorOverride: 0
userData:
assetBundleName:
assetBundleVariant: