master #87

Open
Alienjack wants to merge 5 commits from Alienjack/AxibugEmuOnline:master into master
26 changed files with 2785 additions and 1116 deletions

View File

@ -520,6 +520,77 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
gradient: {fileID: 46877084639177849}
--- !u!1 &1280900818828460255
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1718494758036642021}
- component: {fileID: 406189280625441644}
- component: {fileID: 6728379839034828402}
m_Layer: 5
m_Name: BoolEdit
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1718494758036642021
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1280900818828460255}
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: 7754613193470953066}
m_Father: {fileID: 278706555072840209}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &406189280625441644
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1280900818828460255}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: -1
m_PreferredHeight: 40
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!114 &6728379839034828402
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1280900818828460255}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c864ef7d3920dfc4cb69a86ef3af426b, type: 3}
m_Name:
m_EditorClassIdentifier:
txt_value: {fileID: 7822831767140937850}
--- !u!1 &1501213187178026014
GameObject:
m_ObjectHideFlags: 0
@ -723,6 +794,81 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
animator: {fileID: 8744505332349586225}
--- !u!1 &2011250662246569413
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2971252204166660888}
- component: {fileID: 8603130728764424453}
- component: {fileID: 5558698359590655883}
m_Layer: 5
m_Name: Background
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2971252204166660888
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2011250662246569413}
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: 623010347094537687}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.25}
m_AnchorMax: {x: 1, y: 0.75}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8603130728764424453
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2011250662246569413}
m_CullTransparentMesh: 1
--- !u!114 &5558698359590655883
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2011250662246569413}
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: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
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 &2471254561136382013
GameObject:
m_ObjectHideFlags: 0
@ -877,6 +1023,42 @@ MonoBehaviour:
m_Icon: {fileID: 394891843266770919}
ExpandFlag: {fileID: 1501213187178026014}
ApplyFlag: {fileID: 3335801350916860509}
--- !u!1 &2660711182228429640
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5502792356073001137}
m_Layer: 5
m_Name: Fill Area
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5502792356073001137
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2660711182228429640}
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: 9033422041994042558}
m_Father: {fileID: 623010347094537687}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.25}
m_AnchorMax: {x: 1, y: 0.75}
m_AnchoredPosition: {x: -5, y: 0}
m_SizeDelta: {x: -20, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &3335801350916860509
GameObject:
m_ObjectHideFlags: 0
@ -1260,6 +1442,8 @@ RectTransform:
m_Children:
- {fileID: 2450201408575734812}
- {fileID: 7216060871118576844}
- {fileID: 3461365397350504029}
- {fileID: 1718494758036642021}
- {fileID: 816049057894123782}
m_Father: {fileID: 4478785627166277610}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -1283,6 +1467,8 @@ MonoBehaviour:
m_MenuNameTxt: {fileID: 6349204039935213934}
m_Icon: {fileID: 1062489471918314902}
com_floatEdit: {fileID: 3979886008433050043}
com_intEdit: {fileID: 7283495606979218283}
com_boolEdit: {fileID: 6728379839034828402}
com_enumEdit: {fileID: 3614321873420207159}
--- !u!114 &4314371315188452187
MonoBehaviour:
@ -1330,6 +1516,178 @@ MonoBehaviour:
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &5368404913088401643
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5211094055976679099}
m_Layer: 5
m_Name: Handle Slide Area
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5211094055976679099
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5368404913088401643}
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: 4027954690118145370}
m_Father: {fileID: 623010347094537687}
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!1 &5564584920301875764
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7900345916139696652}
- component: {fileID: 4039086934110648845}
m_Layer: 5
m_Name: content
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7900345916139696652
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5564584920301875764}
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: 623010347094537687}
- {fileID: 345486178931433765}
m_Father: {fileID: 3461365397350504029}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &4039086934110648845
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5564584920301875764}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 0
m_Spacing: 5
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1
m_ChildControlWidth: 1
m_ChildControlHeight: 1
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1 &5830336849912211446
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3461365397350504029}
- component: {fileID: 9093150501524936851}
- component: {fileID: 7283495606979218283}
m_Layer: 5
m_Name: IntEdit
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3461365397350504029
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5830336849912211446}
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: 7900345916139696652}
m_Father: {fileID: 278706555072840209}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &9093150501524936851
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5830336849912211446}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: -1
m_PreferredHeight: 40
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!114 &7283495606979218283
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5830336849912211446}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: abad743de1574354f99efc5054aa6b43, type: 3}
m_Name:
m_EditorClassIdentifier:
slider: {fileID: 5919193658528722431}
txt_value: {fileID: 6075532957906331759}
--- !u!1 &5894141955990945432
GameObject:
m_ObjectHideFlags: 0
@ -1394,6 +1752,217 @@ MonoBehaviour:
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1 &6033457221832404715
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8543458054403131507}
- component: {fileID: 6646371810488858664}
- component: {fileID: 7822831767140937850}
- component: {fileID: 3722671482862039384}
m_Layer: 5
m_Name: value
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8543458054403131507
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6033457221832404715}
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: 7754613193470953066}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6646371810488858664
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6033457221832404715}
m_CullTransparentMesh: 1
--- !u!114 &7822831767140937850
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6033457221832404715}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 12800000, guid: 33a3bdf8f6bd1ec4eba7c4bc58183212, type: 3}
m_FontSize: 20
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 2
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 1
m_LineSpacing: 1
m_Text: ENUMNAME
--- !u!114 &3722671482862039384
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6033457221832404715}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: -1
m_PreferredHeight: -1
m_FlexibleWidth: 1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &6058311224544485353
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 623010347094537687}
- component: {fileID: 5919193658528722431}
- component: {fileID: 5682207136112565641}
m_Layer: 5
m_Name: Slider
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &623010347094537687
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6058311224544485353}
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: 2971252204166660888}
- {fileID: 5502792356073001137}
- {fileID: 5211094055976679099}
m_Father: {fileID: 7900345916139696652}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &5919193658528722431
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6058311224544485353}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 0
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 3790767580891084363}
m_FillRect: {fileID: 9033422041994042558}
m_HandleRect: {fileID: 4027954690118145370}
m_Direction: 0
m_MinValue: 0
m_MaxValue: 1
m_WholeNumbers: 0
m_Value: 0
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
--- !u!114 &5682207136112565641
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6058311224544485353}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: -1
m_PreferredHeight: -1
m_FlexibleWidth: 5
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &6312116949113707702
GameObject:
m_ObjectHideFlags: 0
@ -1466,6 +2035,106 @@ MonoBehaviour:
m_EditorClassIdentifier:
slider: {fileID: 6489571631904078165}
txt_value: {fileID: 6176548475786947694}
--- !u!1 &6551251729527098609
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 345486178931433765}
- component: {fileID: 7323868397581272064}
- component: {fileID: 6075532957906331759}
- component: {fileID: 6388778664118236617}
m_Layer: 5
m_Name: value
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &345486178931433765
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6551251729527098609}
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: 7900345916139696652}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7323868397581272064
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6551251729527098609}
m_CullTransparentMesh: 1
--- !u!114 &6075532957906331759
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6551251729527098609}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 12800000, guid: 33a3bdf8f6bd1ec4eba7c4bc58183212, type: 3}
m_FontSize: 20
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 2
m_MaxSize: 20
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 1
m_LineSpacing: 1
m_Text: 0
--- !u!114 &6388778664118236617
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6551251729527098609}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: 50
m_PreferredHeight: -1
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &6669948312920191200
GameObject:
m_ObjectHideFlags: 0
@ -1675,6 +2344,144 @@ MonoBehaviour:
m_EffectColor: {r: 0, g: 0, b: 0, a: 0.5}
m_EffectDistance: {x: 1.5, y: -1.5}
m_UseGraphicAlpha: 1
--- !u!1 &7579340952198812870
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 9033422041994042558}
- component: {fileID: 9210239002563918603}
- component: {fileID: 4055457614720979564}
m_Layer: 5
m_Name: Fill
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &9033422041994042558
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7579340952198812870}
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: 5502792356073001137}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 10, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &9210239002563918603
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7579340952198812870}
m_CullTransparentMesh: 1
--- !u!114 &4055457614720979564
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7579340952198812870}
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: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
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 &7928927824150591534
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7754613193470953066}
- component: {fileID: 4099568322977131793}
m_Layer: 5
m_Name: content
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7754613193470953066
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7928927824150591534}
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: 8543458054403131507}
m_Father: {fileID: 1718494758036642021}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &4099568322977131793
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7928927824150591534}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 0
m_Spacing: 5
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1
m_ChildControlWidth: 1
m_ChildControlHeight: 1
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1 &8045610840842517781
GameObject:
m_ObjectHideFlags: 0
@ -2064,6 +2871,81 @@ MonoBehaviour:
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &8670820869058111882
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4027954690118145370}
- component: {fileID: 4961390550090550147}
- component: {fileID: 3790767580891084363}
m_Layer: 5
m_Name: Handle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4027954690118145370
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8670820869058111882}
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: 5211094055976679099}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 20, y: -20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4961390550090550147
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8670820869058111882}
m_CullTransparentMesh: 1
--- !u!114 &3790767580891084363
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8670820869058111882}
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: 10911, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
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 &8884391103430529053
GameObject:
m_ObjectHideFlags: 0

View File

@ -21,7 +21,6 @@ namespace AxibugEmuOnline.Client.ClientCore
public static AppLogin login;
public static AppChat chat;
public static UserDataManager user;
//public static AppNetGame netgame;
public static AppEmu emu;
/// <summary>
/// nes Rom库
@ -36,6 +35,7 @@ namespace AxibugEmuOnline.Client.ClientCore
public static AppRoom roomMgr;
public static AppSettings settings;
public static AppShare share;
public static GamePadManager gamePadMgr;
private static object gameSavMgr;
static bool bTest;
static string mTestSrvIP;
@ -70,7 +70,6 @@ namespace AxibugEmuOnline.Client.ClientCore
chat = new AppChat();
user = new UserDataManager();
emu = new AppEmu();
//netgame = new AppNetGame();
httpAPI = new HttpAPI();
if (bUseLocalWebApi)
httpAPI.WebHost = mLocalWebApi;
@ -80,6 +79,8 @@ namespace AxibugEmuOnline.Client.ClientCore
roomMgr = new AppRoom();
share = new AppShare();
gameSavMgr = new AppGameSavMgr();
gamePadMgr = new GamePadManager();
bTest = isTest;
mTestSrvIP = testSrvIP;
var go = new GameObject("[AppAxibugEmuOnline]");
@ -202,6 +203,9 @@ namespace AxibugEmuOnline.Client.ClientCore
private static void Tick()
{
nesRomLib.ExecuteFetchRomInfo();
starRomLib.ExecuteFetchRomInfo();
gamePadMgr.Update();
}
public static Coroutine StartCoroutine(IEnumerator itor)

View File

@ -1,4 +1,5 @@
using AxibugEmuOnline.Client.ClientCore;
using System.Text;
using UnityEngine;
namespace AxibugEmuOnline.Client

View File

@ -1,6 +1,7 @@
using Assets.Script.AppMain.Filter;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using UnityEngine;
@ -53,12 +54,12 @@ namespace AxibugEmuOnline.Client
var rangeAtt = param.GetCustomAttribute<RangeAttribute>();
float min = 0;
float max = 10;
if (rangeAtt != null)
{
min = rangeAtt.min; max = rangeAtt.max;
}
if (rangeAtt != null) { min = rangeAtt.min; max = rangeAtt.max; }
var editableParam = new EditableParamerter(param.Name, paramObj, min, max);
var descrip = param.GetCustomAttribute<DescriptionAttribute>();
string name = descrip != null ? descrip.Description : param.Name;
var editableParam = new EditableParamerter(name, paramObj, min, max);
m_editableParamList.Add(editableParam);
}
}
@ -86,16 +87,24 @@ namespace AxibugEmuOnline.Client
public object MinValue { get; private set; }
public object MaxValue { get; private set; }
public EditableParamerter(string name, FilterParameter paramObject, object minValue, object maxValue)
public EditableParamerter(string name, FilterParameter paramObject, float minValue, float maxValue)
{
m_paramObject = paramObject;
Name = name;
var paramType = paramObject.GetType();
if (paramObject.ValueType == typeof(int))
{
MinValue = (int)minValue;
MaxValue = (int)maxValue;
}
else if (paramObject.ValueType == typeof(float))
{
MinValue = minValue;
MaxValue = maxValue;
}
}
public void ResetToDefault() => m_paramObject.Value = null;

View File

@ -331,6 +331,18 @@ namespace AxibugEmuOnline.Client
float.TryParse(rawStr, out floatVal);
return floatVal;
}
else if (valueType == typeof(int))
{
int intVal;
int.TryParse(rawStr, out intVal);
return intVal;
}
else if (valueType == typeof(bool))
{
bool boolVal;
bool.TryParse(rawStr, out boolVal);
return boolVal;
}
else if (valueType.IsEnum)
{
var names = Enum.GetNames(valueType);

View File

@ -29,20 +29,75 @@ namespace Assets.Script.AppMain.Filter
{
m_defaultValue = defaultValue;
}
public static implicit operator T(FilterParameter<T> value)
{
return value.GetValue();
}
public static implicit operator FilterParameter<T>(T value)
{
return new FilterParameter<T>(value);
}
}
public class BoolParameter : FilterParameter<bool>
{
public BoolParameter(bool defaultValue) : base(defaultValue) { }
public static implicit operator bool(BoolParameter value)
{
return value.GetValue();
}
public static implicit operator BoolParameter(bool value)
{
return new BoolParameter(value);
}
}
public class Vector2Parameter : FilterParameter<Vector2>
{
public Vector2Parameter(Vector2 defaultValue) : base(defaultValue) { }
public static implicit operator Vector2(Vector2Parameter value)
{
return value.GetValue();
}
public static implicit operator Vector2Parameter(Vector2 value)
{
return new Vector2Parameter(value);
}
}
public class FloatParameter : FilterParameter<float>
{
public FloatParameter(float defaultValue) : base(defaultValue) { }
public static implicit operator float(FloatParameter value)
{
return value.GetValue();
}
public static implicit operator FloatParameter(float value)
{
return new FloatParameter(value);
}
}
public class IntParameter : FilterParameter<int>
{
public IntParameter(int defaultValue) : base(defaultValue) { }
public static implicit operator int(IntParameter value)
{
return value.GetValue();
}
public static implicit operator IntParameter(int value)
{
return new IntParameter(value);
}
}
}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 36463068bd4c2274cb302669fa552345
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,173 @@
using Assets.Script.AppMain.Filter;
using AxibugEmuOnline.Client;
using System.ComponentModel;
using UnityEngine;
using Random = UnityEngine.Random;
public class SimpleCRT : FilterEffect
{
public override string Name => nameof(SimpleCRT);
protected override string ShaderName => "Filter/yunoda-3DCG/SimpleCRT";
[Range(0, 1000)][Description("White Noise Freq")] public IntParameter whiteNoiseFrequency = new IntParameter(1);
[Range(0, 1)][Description("White Noise Time Left (sec)")] public FloatParameter whiteNoiseLength = new FloatParameter(0.1f);
private float whiteNoiseTimeLeft;
[Range(0, 1000)][Description("Screen Jump Freq")] public IntParameter screenJumpFrequency = 1;
[Range(0, 1f)][Description("Screen Jump Length")] public FloatParameter screenJumpLength = 0.2f;
[Range(0, 1f)][Description("Jump Min")] public FloatParameter screenJumpMinLevel = 0.1f;
[Range(0, 1f)][Description("Jump Max")] public FloatParameter screenJumpMaxLevel = 0.9f;
private float screenJumpTimeLeft;
[Range(0, 1f)][Description("Flickering Strength")] public FloatParameter flickeringStrength = 0.002f;
[Range(0, 333f)][Description("Flickering Cycle")] public FloatParameter flickeringCycle = 111f;
[Description("Slip Page")] public BoolParameter isSlippage = true;
[Description("Slip Noise")] public BoolParameter isSlippageNoise = true;
[Range(0, 1)][Description("Slip Strength")] public FloatParameter slippageStrength = 0.005f;
[Range(0, 100)][Description("Slip Intervalw")] public float slippageInterval = 1f;
[Range(0, 330)][Description("Slip Scroll Speed")] public float slippageScrollSpeed = 33f;
[Range(0, 100f)][Description("Slip Size")] public FloatParameter slippageSize = 11f;
[Range(0, 1f)][Description("Chromatic Aberration Strength")] public FloatParameter chromaticAberrationStrength = 0.005f;
[Description("Chromatic Aberration")] public bool isChromaticAberration = true;
[Description("Multiple Ghost")] public BoolParameter isMultipleGhost = true;
[Range(0, 1f)][Description("Multiple Ghost Strength")] public FloatParameter multipleGhostStrength = 0.01f;
[Description("Scanline")] public BoolParameter isScanline = true;
[Description("Monochrome")] public BoolParameter isMonochrome = false;
[Description("Letter Box")] public bool isLetterBox = false;
public bool isLetterBoxEdgeBlur = false;
[Description("Letter Box Type")] public FilterParameter<LeterBoxType> letterBoxType = default(LeterBoxType);
public enum LeterBoxType
{
Black,
Blur
}
#region Properties in shader
private int _WhiteNoiseOnOff;
private int _ScanlineOnOff;
private int _MonochormeOnOff;
private int _ScreenJumpLevel;
private int _FlickeringStrength;
private int _FlickeringCycle;
private int _SlippageStrength;
private int _SlippageSize;
private int _SlippageInterval;
private int _SlippageScrollSpeed;
private int _SlippageNoiseOnOff;
private int _SlippageOnOff;
private int _ChromaticAberrationStrength;
private int _ChromaticAberrationOnOff;
private int _MultipleGhostOnOff;
private int _MultipleGhostStrength;
private int _LetterBoxOnOff;
private int _LetterBoxType;
private int _LetterBoxEdgeBlurOnOff;
private int _DecalTex;
private int _DecalTexOnOff;
private int _DecalTexPos;
private int _DecalTexScale;
private int _FilmDirtOnOff;
private int _FilmDirtTex;
#endregion
protected override void OnInit(Material renderMat)
{
base.OnInit(renderMat);
_WhiteNoiseOnOff = Shader.PropertyToID("_WhiteNoiseOnOff");
_ScanlineOnOff = Shader.PropertyToID("_ScanlineOnOff");
_MonochormeOnOff = Shader.PropertyToID("_MonochormeOnOff");
_ScreenJumpLevel = Shader.PropertyToID("_ScreenJumpLevel");
_FlickeringStrength = Shader.PropertyToID("_FlickeringStrength");
_FlickeringCycle = Shader.PropertyToID("_FlickeringCycle");
_SlippageStrength = Shader.PropertyToID("_SlippageStrength");
_SlippageSize = Shader.PropertyToID("_SlippageSize");
_SlippageInterval = Shader.PropertyToID("_SlippageInterval");
_SlippageScrollSpeed = Shader.PropertyToID("_SlippageScrollSpeed");
_SlippageNoiseOnOff = Shader.PropertyToID("_SlippageNoiseOnOff");
_SlippageOnOff = Shader.PropertyToID("_SlippageOnOff");
_ChromaticAberrationStrength = Shader.PropertyToID("_ChromaticAberrationStrength");
_ChromaticAberrationOnOff = Shader.PropertyToID("_ChromaticAberrationOnOff");
_MultipleGhostOnOff = Shader.PropertyToID("_MultipleGhostOnOff");
_MultipleGhostStrength = Shader.PropertyToID("_MultipleGhostStrength");
_LetterBoxOnOff = Shader.PropertyToID("_LetterBoxOnOff");
_LetterBoxType = Shader.PropertyToID("_LetterBoxType");
_DecalTex = Shader.PropertyToID("_DecalTex");
_DecalTexOnOff = Shader.PropertyToID("_DecalTexOnOff");
_DecalTexPos = Shader.PropertyToID("_DecalTexPos");
_DecalTexScale = Shader.PropertyToID("_DecalTexScale");
_FilmDirtOnOff = Shader.PropertyToID("_FilmDirtOnOff");
_FilmDirtTex = Shader.PropertyToID("_FilmDirtTex");
}
protected override void OnRenderer(Material renderMat, Texture src, RenderTexture result)
{
SetShaderParameter(renderMat);
Graphics.Blit(src, result, renderMat);
}
private void SetShaderParameter(Material material)
{
///////White noise
whiteNoiseTimeLeft -= 0.01f;
if (whiteNoiseTimeLeft <= 0)
{
if (Random.Range(0, 1000) < whiteNoiseFrequency)
{
material.SetInteger(_WhiteNoiseOnOff, 1);
whiteNoiseTimeLeft = whiteNoiseLength;
}
else
{
material.SetInteger(_WhiteNoiseOnOff, 0);
}
}
//////
material.SetInteger(_LetterBoxOnOff, isLetterBox ? 0 : 1);
//material.SetInteger(_LetterBoxEdgeBlurOnOff, isLetterBoxEdgeBlur ? 0 : 1);
material.SetInteger(_LetterBoxType, (int)letterBoxType.GetValue());
material.SetInteger(_ScanlineOnOff, isScanline ? 1 : 0);
material.SetInteger(_MonochormeOnOff, isMonochrome ? 1 : 0);
material.SetFloat(_FlickeringStrength, flickeringStrength);
material.SetFloat(_FlickeringCycle, flickeringCycle);
material.SetFloat(_ChromaticAberrationStrength, chromaticAberrationStrength);
material.SetInteger(_ChromaticAberrationOnOff, isChromaticAberration ? 1 : 0);
material.SetInteger(_MultipleGhostOnOff, isMultipleGhost ? 1 : 0);
material.SetFloat(_MultipleGhostStrength, multipleGhostStrength);
//////Slippage
material.SetInteger(_SlippageOnOff, isSlippage ? 1 : 0);
material.SetFloat(_SlippageInterval, slippageInterval);
material.SetFloat(_SlippageNoiseOnOff, isSlippageNoise ? Random.Range(0, 1f) : 1);
material.SetFloat(_SlippageScrollSpeed, slippageScrollSpeed);
material.SetFloat(_SlippageStrength, slippageStrength);
material.SetFloat(_SlippageSize, slippageSize);
//////
//////Screen Jump Noise
screenJumpTimeLeft -= 0.01f;
if (screenJumpTimeLeft <= 0)
{
if (Random.Range(0, 1000) < screenJumpFrequency)
{
var level = Random.Range(screenJumpMinLevel, screenJumpMaxLevel);
material.SetFloat(_ScreenJumpLevel, level);
screenJumpTimeLeft = screenJumpLength;
}
else
{
material.SetFloat(_ScreenJumpLevel, 0);
}
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: d4ffc7492874c2241827f1d70c24a1e3

View File

@ -0,0 +1,237 @@
Shader "Filter/yunoda-3DCG/SimpleCRT"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_DecalTex ("Decal Texture", 2D) = "white" {}
_FilmDirtTex ("Dirt Texture", 2D) = "white" {}
}
SubShader
{
Pass
{
CGPROGRAM
#include "UnityCG.cginc"
#pragma vertex vert
#pragma fragment frag
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv : TEXCOORD0;
float2 decaluv : TEXCOORD1;
float4 vertex : SV_POSITION;
};
sampler2D _MainTex;
float4 _MainTex_ST;
float4 _MainTex_TexelSize;
int _WhiteNoiseOnOff;
int _ScanlineOnOff;
int _MonochormeOnOff;
int _LetterBoxOnOff;
int _LetterBoxEdgeBlur;
int _LetterBoxType;
float _ScreenJumpLevel;
float _FlickeringStrength;
float _FlickeringCycle;
int _SlippageOnOff;
float _SlippageStrength;
float _SlippageInterval;
float _SlippageScrollSpeed;
float _SlippageNoiseOnOff;
float _SlippageSize;
float _ChromaticAberrationStrength;
int _ChromaticAberrationOnOff;
int _MultipleGhostOnOff;
float _MultipleGhostStrength;
sampler2D _DecalTex;
float4 _DecalTex_ST;
int _DecalTexOnOff;
float2 _DecalTexPos;
float2 _DecalTexScale;
int _FilmDirtOnOff;
sampler2D _FilmDirtTex;
float4 _FilmDirtTex_ST;
float GetRandom(float x);
float EaseIn(float t0, float t1, float t);
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
o.decaluv = TRANSFORM_TEX(v.uv, _DecalTex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
float2 uv = i.uv;
/////Jump noise
uv.y = frac(uv.y + _ScreenJumpLevel);
/////
/////frickering
float flickeringNoise = GetRandom(_Time.y);
float flickeringMask = pow(abs(sin(i.uv.y * _FlickeringCycle + _Time.y)), 10);
uv.x = uv.x + (flickeringNoise * _FlickeringStrength * flickeringMask);
/////
/////slippage
float scrollSpeed = _Time.x * _SlippageScrollSpeed;
float slippageMask = pow(abs(sin(i.uv.y * _SlippageInterval + scrollSpeed)), _SlippageSize);
float stepMask = round(sin(i.uv.y * _SlippageInterval + scrollSpeed - 1));
uv.x = uv.x + (_SlippageNoiseOnOff * _SlippageStrength * slippageMask * stepMask) * _SlippageOnOff;
/////
/////Chromatic Aberration
float red = tex2D(_MainTex, float2(uv.x - _ChromaticAberrationStrength * _ChromaticAberrationOnOff, uv.y)).r;
float green = tex2D(_MainTex, float2(uv.x, uv.y)).g;
float blue = tex2D(_MainTex, float2(uv.x + _ChromaticAberrationStrength * _ChromaticAberrationOnOff, uv.y)).b;
float4 color = float4(red, green, blue, 1);
/////
/////Multiple Ghost
float4 ghost1st = tex2D(_MainTex, uv - float2(1, 0) * _MultipleGhostStrength * _MultipleGhostOnOff);
float4 ghost2nd = tex2D(_MainTex, uv - float2(1, 0) * _MultipleGhostStrength * 2 * _MultipleGhostOnOff);
color = color * 0.8 + ghost1st * 0.15 + ghost2nd * 0.05;
/////
/////File dirt
float2 pp = -1.0 + 2.0 * uv;
float time = _Time.x;
float aaRad = 0.1;
float2 nseLookup2 = pp + time * 1000;
float3 nse2 =
tex2D(_FilmDirtTex, 0.1 * nseLookup2.xy).xyz +
tex2D(_FilmDirtTex, 0.01 * nseLookup2.xy).xyz +
tex2D(_FilmDirtTex, 0.004 * nseLookup2.xy).xyz;
float thresh = 0.6;
float mul1 = smoothstep(thresh - aaRad, thresh + aaRad, nse2.x);
float mul2 = smoothstep(thresh - aaRad, thresh + aaRad, nse2.y);
float mul3 = smoothstep(thresh - aaRad, thresh + aaRad, nse2.z);
float seed = tex2D(_FilmDirtTex, float2(time * 0.35, time)).x;
float result = clamp(0, 1, seed + 0.7);
result += 0.06 * EaseIn(19.2, 19.4, time);
float band = 0.05;
if(_FilmDirtOnOff == 1)
{
if( 0.3 < seed && 0.3 + band > seed )
color *= mul1 * result;
else if( 0.6 < seed && 0.6 + band > seed )
color *= mul2 * result;
else if( 0.9 < seed && 0.9 + band > seed )
color *= mul3 * result;
}
/////
/////Letter box
float band_uv = fmod(_MainTex_TexelSize.z, 640) / _MainTex_TexelSize.z / 2;
if(i.uv.x < band_uv || 1 - band_uv < i.uv.x)
{
float pi = 6.28318530718;
float directions = 16.0;
float quality = 3.0;
float size = 8.0;
float2 Radius = size * _MainTex_ST.zw;
float4 samplingColor = tex2D(_MainTex, uv);
for(float d = 0.0; d < pi; d += pi / directions)
{
for(float i = 1.0 / quality; i <= 1.0; i += 1.0 / quality)
{
samplingColor += tex2D(_MainTex, uv + float2(cos(d), sin(d)) * 0.015 * i);
}
}
samplingColor /= quality * directions - 15.0;
if(_LetterBoxOnOff == 1)
{
color = color;
}
else if(_LetterBoxType == 0) // LetterBox is Black
{
color = 0;
}
else if(_LetterBoxType == 1) // LetterBox is Blur
{
color = samplingColor;
}
}
/////
/////White noise
if(_WhiteNoiseOnOff == 1)
{
return frac(sin(dot(i.uv, float2(12.9898, 78.233)) + _Time.x) * 43758.5453);
}
/////
/////Decal texture
float4 decal = tex2D(_DecalTex, (i.decaluv - _DecalTexPos) * _DecalTexScale) * _DecalTexOnOff;
color = color * (1 - decal.a) + decal;
/////
/////Scanline
float scanline = sin((i.uv.y + _Time.x) * 800.0) * 0.04;
color -= scanline * _ScanlineOnOff;
/////
//////scanline noise
float noiseAlpha = 1;
if(pow(sin(uv.y + _Time.y * 2), 200) >= 0.999)
{
noiseAlpha = GetRandom(uv.y);
//color *= noiseAlpha;
}
//////
//////Monochorome
if(_MonochormeOnOff == 1)
{
color.xyz = 0.299f * color.r + 0.587f * color.g + 0.114f * color.b;
}
//////
return color;
}
float GetRandom(float x)
{
return frac(sin(dot(x, float2(12.9898, 78.233))) * 43758.5453);
}
float EaseIn(float t0, float t1, float t)
{
return 2.0 * smoothstep(t0, 2.0 * t1 - t0, t);
}
ENDCG
}
}
}

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: fdf9f1937116ab84c97a58a4cf82fbf8
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5fe26f58ab822c44888b86305c5326e0
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,26 @@
namespace AxibugEmuOnline.Client.Manager
{
public partial class GamePadManager
{
/// <summary>
/// 被Unity所识别的通用GamePad类
/// </summary>
public class GamePad
{
internal GamePadInfo m_info;
public int Index => m_info.Index;
public string Name => m_info.Name;
public bool Offline { get; internal set; }
internal GamePad(GamePadInfo info)
{
m_info = info;
}
public override string ToString()
{
return $"{Index}:{Name}{(Offline ? "(Offline)" : string.Empty)}";
}
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: c2c0a06020f65a747af5490a6112361b

View File

@ -0,0 +1,121 @@
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace AxibugEmuOnline.Client.Manager
{
public partial class GamePadManager
{
#region Events
public delegate void GamePadConnectedHandle(GamePad newConnectGamePad);
/// <summary> 当一个手柄连接时触发 </summary>
public event GamePadConnectedHandle OnGamePadConnected;
public delegate void GamePadDisConnectedHandle(GamePad disConnectGamePad);
/// <summary> 当一个手柄断开时触发 </summary>
public event GamePadDisConnectedHandle OnGamePadDisConnected;
#endregion
Dictionary<GamePadInfo, GamePad> m_gamePads = new Dictionary<GamePadInfo, GamePad>();
HashSet<GamePadInfo> m_temp = new HashSet<GamePadInfo>();
public void Update()
{
m_temp.Clear();
foreach (var info in m_gamePads.Keys)
m_temp.Add(info); //记录需要被移除的手柄
var devices = Input.GetJoystickNames();
for (int i = 0; i < devices.Length; i++)
{
var info = new GamePadInfo { Index = i, Name = devices[i] };
m_temp.Remove(info);
if (!m_gamePads.ContainsKey(info))
{
m_gamePads[info] = new GamePad(info);
OnGamePadConnected?.Invoke(m_gamePads[info]);
};
}
foreach (var info in m_temp)
{
if (m_gamePads.TryGetValue(info, out GamePad gp))
{
m_gamePads.Remove(info);
gp.Offline = true;
OnGamePadDisConnected?.Invoke(gp);
}
}
}
/// <summary>
/// 获取所有已连接的手柄,返回的结果顺序与手柄序号无关
/// </summary>
/// <returns></returns>
public GamePad[] GetGamePads()
{
return m_gamePads.Values.ToArray();
}
internal struct GamePadInfo : IEquatable<GamePadInfo>, IComparable<GamePadInfo>
{
internal int Index;
internal string Name;
public override bool Equals(object obj)
{
if (obj is GamePadInfo)
{
return Equals((GamePadInfo)obj);
}
return false;
}
public bool Equals(GamePadInfo other)
{
return Index == other.Index && Name == other.Name;
}
public override int GetHashCode()
{
// Custom hash code implementation without HashCombine
int hash = 17;
hash = hash * 31 + Index.GetHashCode();
hash = hash * 31 + (Name != null ? Name.GetHashCode() : 0);
return hash;
}
public int CompareTo(GamePadInfo other)
{
int indexComparison = Index.CompareTo(other.Index);
if (indexComparison != 0)
{
return indexComparison;
}
return string.Compare(Name, other.Name, StringComparison.Ordinal);
}
public static bool operator ==(GamePadInfo left, GamePadInfo right)
{
return left.Equals(right);
}
public static bool operator !=(GamePadInfo left, GamePadInfo right)
{
return !(left == right);
}
public static bool operator <(GamePadInfo left, GamePadInfo right)
{
return left.CompareTo(right) < 0;
}
public static bool operator >(GamePadInfo left, GamePadInfo right)
{
return left.CompareTo(right) > 0;
}
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: ce4d215abea527e4a8cf1103cbfecf6b

View File

@ -43,6 +43,8 @@ namespace AxibugEmuOnline.Client
private void OnRomStarStateChanged(int romID, bool star)
{
if (nesRomFetchList == null) return;
var targetRom = nesRomFetchList.FirstOrDefault(rom => rom.ID == romID);
if (targetRom == null) return;

View File

@ -153,7 +153,7 @@ namespace AxibugEmuOnline.Client
private FilterEffect.EditableParamerter m_param;
private FilterPreset m_preset;
public override bool Visible => m_param.ValueType.IsEnum || m_param.ValueType == typeof(float);
public override bool Visible => true;
public override string Name => m_param.Name;
public Opt_ParamEditor(Filter filter, FilterEffect.EditableParamerter editParam, FilterPreset preset)

View File

@ -139,6 +139,7 @@ namespace AxibugEmuOnline.Client
{
DownloadingFlag.SetActiveEx(false);
FileReadyFlag.SetActiveEx(false);
Star.SetActiveEx(IsStar);
if (m_romfile == null) return;
if (!m_romfile.InfoReady) return;

View File

@ -8,6 +8,10 @@ namespace AxibugEmuOnline.Client
[SerializeField]
OptionUI_ValueEditItem_FloatEdit com_floatEdit;
[SerializeField]
OptionUI_ValueEditItem_IntEdit com_intEdit;
[SerializeField]
OptionUI_ValueEditItem_BoolEdit com_boolEdit;
[SerializeField]
OptionUI_ValueEditItem_EnumEdit com_enumEdit;
IValueEditControl m_currentCom;
@ -15,6 +19,8 @@ namespace AxibugEmuOnline.Client
protected override void OnSetData(OptionMenu menuData)
{
com_floatEdit.gameObject.SetActive(false);
com_intEdit.gameObject.SetActive(false);
com_boolEdit.gameObject.SetActive(false);
com_enumEdit.gameObject.SetActive(false);
if (menuData is ValueSetMenu)
@ -24,13 +30,21 @@ namespace AxibugEmuOnline.Client
{
m_currentCom = com_floatEdit;
}
else if(valueMenu.ValueType == typeof(int))
{
m_currentCom = com_intEdit;
}
else if(valueMenu.ValueType == typeof(bool))
{
m_currentCom = com_boolEdit;
}
else if (valueMenu.ValueType.IsEnum)
{
m_currentCom = com_enumEdit;
}
else
{
App.log.Warning($"尚未支持的数据类型:{valueMenu.ValueType}");
App.log.Error($"尚未支持的数据类型:{valueMenu.ValueType}");
return;
}

View File

@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace AxibugEmuOnline.Client
{
public class OptionUI_ValueEditItem_BoolEdit : MonoBehaviour, IValueEditControl
{
[SerializeField]
Text txt_value;
private ValueSetMenu m_valueMenu;
public void SetData(ValueSetMenu valueMenu)
{
m_valueMenu = valueMenu;
txt_value.text = valueMenu.ValueRaw.ToString();
}
public void OnLeft()
{
OnExecute();
}
public void OnRight()
{
OnExecute();
}
public void OnExecute()
{
var value = (bool)m_valueMenu.ValueRaw;
value = !value;
txt_value.text = value.ToString();
m_valueMenu.OnValueChanged(value);
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: c864ef7d3920dfc4cb69a86ef3af426b

View File

@ -0,0 +1,58 @@
using UnityEngine;
using UnityEngine.UI;
namespace AxibugEmuOnline.Client
{
public class OptionUI_ValueEditItem_IntEdit : MonoBehaviour, IValueEditControl
{
[SerializeField]
Slider slider;
[SerializeField]
Text txt_value;
int m_step;
private ValueSetMenu m_valueMenu;
private void Awake()
{
slider.onValueChanged.AddListener(OnSliderValueChanged);
}
private void OnSliderValueChanged(float value)
{
int intValue = (int)value;
txt_value.text = $"{intValue}";
if (!m_dataSetting) m_valueMenu.OnValueChanged(intValue);
}
bool m_dataSetting;
public void SetData(ValueSetMenu valueMenu)
{
m_dataSetting = true;
m_valueMenu = valueMenu;
slider.minValue = (int)valueMenu.Min;
slider.maxValue = (int)valueMenu.Max;
slider.value = (int)valueMenu.ValueRaw;
slider.wholeNumbers = true;
m_step = 1;
m_dataSetting = false;
}
public void OnLeft()
{
var newValue = Mathf.Clamp(slider.value - m_step, slider.minValue, slider.maxValue);
slider.value = newValue;
}
public void OnRight()
{
var newValue = Mathf.Clamp(slider.value + m_step, slider.minValue, slider.maxValue);
slider.value = newValue;
}
public void OnExecute()
{
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: abad743de1574354f99efc5054aa6b43