Compare commits

...

9 Commits

41 changed files with 10031 additions and 818 deletions

View File

@ -124,11 +124,11 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 793983410033291345}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
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_Children: []
m_Father: {fileID: 5397686940312333149}
m_Father: {fileID: 4478785627166277610}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@ -207,8 +207,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Direction: 0
m_Color1: {r: 1, g: 1, b: 1, a: 1}
m_Color2: {r: 1, g: 1, b: 1, a: 1}
m_Color1: {r: 0.032306872, g: 0.24870302, b: 0.6226415, a: 1}
m_Color2: {r: 0.7264151, g: 0.67501783, b: 0.67501783, a: 1}
m_Color3: {r: 1, g: 1, b: 1, a: 1}
m_Color4: {r: 1, g: 1, b: 1, a: 1}
m_Rotation: 0
@ -230,6 +230,102 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
gradient: {fileID: 46877084639177849}
--- !u!1 &1501213187178026014
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4264754383554125665}
- component: {fileID: 1867204054070772534}
- component: {fileID: 9114498533396602649}
- component: {fileID: 8983615257379814102}
m_Layer: 5
m_Name: expandArrow
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4264754383554125665
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1501213187178026014}
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_Children: []
m_Father: {fileID: 2780569438310375802}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: -5, y: 0}
m_SizeDelta: {x: 20, y: 20}
m_Pivot: {x: 1, y: 0.5}
--- !u!222 &1867204054070772534
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1501213187178026014}
m_CullTransparentMesh: 1
--- !u!114 &9114498533396602649
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1501213187178026014}
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: 561609785760361907, guid: d518d00d4940e854bbe45d9ef891401a, 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!114 &8983615257379814102
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1501213187178026014}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 1
m_MinWidth: -1
m_MinHeight: -1
m_PreferredWidth: -1
m_PreferredHeight: -1
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &1731066637017514641
GameObject:
m_ObjectHideFlags: 0
@ -244,6 +340,7 @@ GameObject:
- component: {fileID: 8330179430250887958}
- component: {fileID: 8744505332349586225}
- component: {fileID: 2568349821411169439}
- component: {fileID: 7857863493876124730}
m_Layer: 5
m_Name: SelectBorder
m_TagString: Untagged
@ -262,12 +359,12 @@ RectTransform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 5397686940312333149}
m_Father: {fileID: 4478785627166277610}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 204, y: 488}
m_AnchoredPosition: {x: 204, y: 518}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2800056879890978085
@ -359,6 +456,18 @@ CanvasGroup:
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
--- !u!114 &7857863493876124730
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1731066637017514641}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f9054446a969bf4eaf7998f3ba23334, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &2500436782395572584
GameObject:
m_ObjectHideFlags: 0
@ -384,13 +493,14 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2500436782395572584}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
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_Children:
- {fileID: 6503369113137645357}
- {fileID: 1714682891259844147}
m_Father: {fileID: 5397686940312333149}
- {fileID: 4264754383554125665}
m_Father: {fileID: 4478785627166277610}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@ -438,7 +548,8 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_MenuNameTxt: {fileID: 1824253632728291860}
m_Icon: {fileID: 394891843266770919}
--- !u!1 &3968697266383191021
ExpandFlag: {fileID: 1501213187178026014}
--- !u!1 &4478785627166277609
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -446,46 +557,62 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5397686940312333149}
- component: {fileID: 1188777947975519706}
- component: {fileID: 4924150661256616665}
- component: {fileID: 8076475514644024618}
- component: {fileID: 4478785627166277610}
- component: {fileID: 4478785627166277611}
- component: {fileID: 7033441668005100640}
- component: {fileID: 6385618308193594113}
- component: {fileID: 5813794464938889090}
m_Layer: 5
m_Name: MenuRoot
m_Name: OptionUI
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5397686940312333149
--- !u!224 &4478785627166277610
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3968697266383191021}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_GameObject: {fileID: 4478785627166277609}
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_Children:
- {fileID: 8581099496228509946}
- {fileID: 2780569438310375802}
- {fileID: 2404013603202822047}
m_Father: {fileID: 4478785627166277610}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 1, y: 0.5}
--- !u!114 &1188777947975519706
m_SizeDelta: {x: 300, y: 0}
m_Pivot: {x: 0, y: 0.5}
--- !u!114 &4478785627166277611
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3968697266383191021}
m_GameObject: {fileID: 4478785627166277609}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d9077edba700447499a21395109542df, type: 3}
m_Name:
m_EditorClassIdentifier:
MenuRoot: {fileID: 4478785627166277610}
SelectBorder: {fileID: 7857863493876124730}
TEMPLATE_EXECUTEITEM: {fileID: 3721725547312714320}
--- !u!114 &7033441668005100640
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4478785627166277609}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
@ -505,13 +632,13 @@ MonoBehaviour:
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!114 &4924150661256616665
--- !u!114 &6385618308193594113
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3968697266383191021}
m_GameObject: {fileID: 4478785627166277609}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
@ -519,19 +646,19 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_HorizontalFit: 2
m_VerticalFit: 0
--- !u!114 &8076475514644024618
--- !u!114 &5813794464938889090
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3968697266383191021}
m_GameObject: {fileID: 4478785627166277609}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreLayout: 0
m_IgnoreLayout: 1
m_MinWidth: 300
m_MinHeight: -1
m_PreferredWidth: -1
@ -539,58 +666,6 @@ MonoBehaviour:
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
--- !u!1 &4478785627166277609
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4478785627166277610}
- component: {fileID: 4478785627166277611}
m_Layer: 5
m_Name: OptionUI
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4478785627166277610
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4478785627166277609}
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_Children:
- {fileID: 5397686940312333149}
m_Father: {fileID: 0}
m_RootOrder: 0
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 &4478785627166277611
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4478785627166277609}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d9077edba700447499a21395109542df, type: 3}
m_Name:
m_EditorClassIdentifier:
MenuRoot: {fileID: 5397686940312333149}
SelectBorder: {fileID: 2404013603202822047}
TEMPLATE_EXECUTEITEM: {fileID: 3721725547312714320}
--- !u!1 &6998597834321643812
GameObject:
m_ObjectHideFlags: 0

View File

@ -29,6 +29,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 3531919739979819162}
- {fileID: 3531919738411886375}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -50,6 +51,248 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_InputUI: {fileID: 3531919739979819165}
m_OptionUI: {fileID: 3531919738411886374}
--- !u!1001 &1091051462859282637
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 3531919739338806919}
m_Modifications:
- target: {fileID: 1471584936616359931, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1471584936616359931, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1471584936616359931, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1471584936616359931, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1471584936616359931, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4264754383554125665, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277609, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_Name
value: OptionUI
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277609, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_Pivot.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_RootOrder
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMax.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMin.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5397686940312333149, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMax.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5397686940312333149, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5397686940312333149, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5397686940312333149, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5397686940312333149, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5397686940312333149, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5397686940312333149, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.x
value: 300
objectReference: {fileID: 0}
- target: {fileID: 5397686940312333149, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
--- !u!224 &3531919738411886375 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
m_PrefabInstance: {fileID: 1091051462859282637}
m_PrefabAsset: {fileID: 0}
--- !u!114 &3531919738411886374 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 4478785627166277611, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
m_PrefabInstance: {fileID: 1091051462859282637}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d9077edba700447499a21395109542df, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1001 &6972157500961473863
PrefabInstance:
m_ObjectHideFlags: 0
@ -61,6 +304,10 @@ PrefabInstance:
propertyPath: m_Name
value: InputUI
objectReference: {fileID: 0}
- target: {fileID: 5891255890837614044, guid: 179ef233a0b40a74f8df0748c664b5e8, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5891255890837614045, guid: 179ef233a0b40a74f8df0748c664b5e8, type: 3}
propertyPath: m_Pivot.x
value: 0.5

View File

@ -189,11 +189,6 @@ Transform:
m_Father: {fileID: 1335662459}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!224 &246947326 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
m_PrefabInstance: {fileID: 4478785627007410708}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &730698711
PrefabInstance:
m_ObjectHideFlags: 0
@ -893,6 +888,30 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 433493635188225987, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 433493635188225987, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 433493635188225987, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 433493635188225987, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 433493635188225987, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 433493635188225987, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 434206311029499062, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.x
value: 0
@ -997,6 +1016,46 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 515101244734287703, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 515101244734287703, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 515101244734287703, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 515101244734287703, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 560833136917821499, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 560833136917821499, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 560833136917821499, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 560833136917821499, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 560833136917821499, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 560833136917821499, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 563304444218541648, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@ -2629,6 +2688,46 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1617432139679373121, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1617432139679373121, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1617432139679373121, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1617432139679373121, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1629246332396699693, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1629246332396699693, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1629246332396699693, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1629246332396699693, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1629246332396699693, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1629246332396699693, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1639091783724093882, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_IsActive
value: 1
@ -2741,6 +2840,26 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1646705603364066293, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1646705603364066293, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1646705603364066293, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1646705603364066293, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1646705603364066293, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1658567943976033715, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@ -3465,6 +3584,26 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2097821101133927282, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2097821101133927282, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2097821101133927282, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2097821101133927282, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2097821101133927282, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2109641687598391630, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@ -3785,6 +3924,26 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2242378001832588895, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2242378001832588895, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2242378001832588895, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2242378001832588895, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2261392835986641119, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2283731329581844488, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@ -3801,6 +3960,30 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2298948418585052454, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2298948418585052454, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2298948418585052454, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2298948418585052454, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2298948418585052454, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2298948418585052454, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2299169133302906607, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@ -3817,6 +4000,30 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2301618648506114355, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2301618648506114355, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2301618648506114355, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2301618648506114355, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2301618648506114355, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2301618648506114355, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2307580199213839136, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@ -4189,6 +4396,26 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2555636614651084257, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2555636614651084257, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2555636614651084257, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2555636614651084257, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2555636614651084257, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2570020065536772792, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@ -5161,6 +5388,30 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3047448863496350514, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3047448863496350514, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3047448863496350514, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3047448863496350514, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3047448863496350514, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3047448863496350514, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3065236765831592141, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@ -5205,6 +5456,10 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3084723018630676171, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3154498213895607299, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@ -6013,6 +6268,74 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3612790534640125431, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3612790534640125431, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3612790534640125431, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3612790534640125431, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3612790534640125431, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3631393560901342767, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3631393560901342767, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3631393560901342767, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3631393560901342767, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3631393560901342767, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3631393560901342767, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3635022460874666554, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3635022460874666554, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3635022460874666554, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3635022460874666554, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3635022460874666554, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3635022460874666554, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3640313018005224074, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@ -6037,6 +6360,22 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3642064278729834819, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3642064278729834819, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3642064278729834819, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3642064278729834819, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3643954362455321425, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@ -6065,6 +6404,10 @@ PrefabInstance:
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3672584404589193155, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3684860244587291615, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@ -6441,6 +6784,26 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3956080153857384719, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3956080153857384719, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3956080153857384719, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3956080153857384719, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3956080153857384719, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3960100005450127155, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@ -6985,6 +7348,30 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4260109152942166820, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4260109152942166820, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4260109152942166820, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4260109152942166820, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4260109152942166820, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4260109152942166820, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4269336691263603641, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.x
value: 0
@ -7017,6 +7404,30 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4273905905144980713, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4273905905144980713, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4273905905144980713, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4273905905144980713, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4273905905144980713, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4295139994851313373, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4299858207917882754, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@ -7521,6 +7932,26 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4578492792357404689, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4578492792357404689, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4578492792357404689, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4578492792357404689, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4578492792357404689, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4580572921649082145, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@ -8373,6 +8804,26 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5049760705468783806, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5049760705468783806, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5049760705468783806, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5049760705468783806, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5049760705468783806, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5058772841383810360, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@ -10861,6 +11312,30 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6719905869711622945, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6719905869711622945, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6719905869711622945, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6719905869711622945, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6719905869711622945, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6719905869711622945, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6757017606895647100, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@ -11725,6 +12200,26 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7362106881215994835, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7362106881215994835, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7362106881215994835, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7362106881215994835, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7362106881215994835, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7363278619993251616, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
propertyPath: m_SizeDelta.x
value: 0
@ -14993,9 +15488,8 @@ RectTransform:
m_LocalScale: {x: 0, y: 0, z: 0}
m_Children:
- {fileID: 1983793178}
- {fileID: 246947326}
- {fileID: 1318590597}
- {fileID: 939125854}
- {fileID: 1318590597}
m_Father: {fileID: 1335662459}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -15200,14 +15694,62 @@ PrefabInstance:
m_Modification:
m_TransformParent: {fileID: 1599240741}
m_Modifications:
- target: {fileID: 1796925837646122750, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1796925837646122750, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1796925837646122750, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1796925837646122750, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1796925837646122750, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1796925837646122750, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3004640554767743415, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3004640554767743415, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3004640554767743415, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3004640554767743415, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3004640554767743415, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3004640554767743415, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3531919738411886375, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3531919739338806916, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_Name
value: Overlay
objectReference: {fileID: 0}
- target: {fileID: 3531919739338806916, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3531919739338806919, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_Pivot.x
value: 0.5
@ -15218,7 +15760,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 3531919739338806919, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_RootOrder
value: 3
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3531919739338806919, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_AnchorMax.x
@ -15292,190 +15834,29 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3531919739979819163, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_IsActive
- target: {fileID: 6153230212222214112, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6153230212222214112, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6153230212222214112, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6153230212222214112, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6153230212222214112, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6153230212222214112, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3}
--- !u!1001 &4478785627007410708
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 1599240741}
m_Modifications:
- target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277609, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_Name
value: OptionUI
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277609, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_RootOrder
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMax.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4478785627166277610, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5397686940312333149, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7896211045508186424, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_Color.a
value: 0.69803923
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}

View File

@ -29,6 +29,7 @@ namespace AxibugEmuOnline.Client.ClientCore
public static AppRoom roomMgr;
public static AppSettings settings;
public static FilterManager filter;
public static AppShare share;
#region Mono
public static TickLoop tickLoop;
private static CoroutineRunner coRunner;
@ -55,6 +56,7 @@ namespace AxibugEmuOnline.Client.ClientCore
nesRomLib = new RomLib(EnumPlatform.NES);
CacheMgr = new CacheManager();
roomMgr = new AppRoom();
share = new AppShare();
filter = new FilterManager(initer.m_filterVolume, initer.m_filterPreview,initer.m_xmbBg);
var go = new GameObject("[AppAxibugEmuOnline]");
GameObject.DontDestroyOnLoad(go);

View File

@ -5,6 +5,18 @@
// 添加你自己需要的事件类型
OnChatMsg,
//自己的信息更新(比如改名更新)
OnSelfInfoUpdate,
//更新其他用户信息
OnOtherUserInfoUpdate,
//当收藏数发生变化
OnDoStars,
//用户列表,登录和离开
OnUserListAllUpdate,
OnUserLogin,
OnUserLoginOut,
OnRoomListAllUpdate,//房间列表全量刷新
OnRoomListSingleAdd,//房间列表中新增房间

View File

@ -0,0 +1,14 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace AxibugEmuOnline.Client
{
public static class EventInvoker
{
public delegate void OnFilterPresetRemovedHandle(FilterManager.Filter filter, FilterManager.FilterPreset removedPreset);
public static event OnFilterPresetRemovedHandle OnFilterPresetRemoved;
public static void RaiseFilterPresetRemoved(FilterManager.Filter filter, FilterManager.FilterPreset removedPreset)
=> OnFilterPresetRemoved.Invoke(filter, removedPreset);
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a972101d3e63f1d4db974980d86cbdd2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -9,10 +9,12 @@ namespace AxibugEmuOnline.Client
public PostProcessVolume m_filterVolume;
public CanvasGroup m_filterPreview;
public CanvasGroup m_xmbBg;
public static string dev_UUID;
private void Awake()
{
App.Init(this);
dev_UUID = SystemInfo.deviceUniqueIdentifier;
}
}
}

View File

@ -3,6 +3,7 @@ using AxibugEmuOnline.Client.Common;
using AxibugEmuOnline.Client.Network;
using AxibugProtobuf;
using System;
using UnityEngine;
namespace AxibugEmuOnline.Client.Manager
{
@ -22,11 +23,23 @@ namespace AxibugEmuOnline.Client.Manager
LastLoginGuid = Guid.NewGuid().ToString();
App.user.userdata.Account = LastLoginGuid;
AxibugProtobuf.DeviceType devType;
if (Application.platform == RuntimePlatform.PSP2)
devType = AxibugProtobuf.DeviceType.Psv;
else if (Application.platform == RuntimePlatform.Android)
devType = AxibugProtobuf.DeviceType.Android;
else if (Application.platform == RuntimePlatform.IPhonePlayer)
devType = AxibugProtobuf.DeviceType.Ios;
else
devType = AxibugProtobuf.DeviceType.Pc;
Protobuf_Login msg = new Protobuf_Login()
{
LoginType = 0,
Account = App.user.userdata.Account,
LoginType = LoginType.UseDevice,
DeviceStr = Initer.dev_UUID,
DeviceType = devType,
};
App.network.SendToServer((int)CommandID.CmdLogin, ProtoBufHelper.Serizlize(msg));
}
@ -40,6 +53,8 @@ namespace AxibugEmuOnline.Client.Manager
App.log.Info("获取Room列表");
App.roomMgr.SendGetRoomList();
App.log.Info("获取在线玩家列表");
App.user.Send_GetUserList();
}
else
{

View File

@ -0,0 +1,46 @@
using AxibugEmuOnline.Client.ClientCore;
using AxibugEmuOnline.Client.Common;
using AxibugEmuOnline.Client.Event;
using AxibugEmuOnline.Client.Network;
using AxibugProtobuf;
namespace AxibugEmuOnline.Client.Manager
{
public class AppShare
{
public AppShare()
{
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdGameMark, RecvGameStar);
}
/// <summary>
/// 发送收藏
/// </summary>
/// <param name="RomID"></param>
/// <param name="Motion">[0]收藏[1]取消收藏</param>
public void SendGameStar(int RomID, PlatformType Platform, int Motion)
{
Protobuf_Game_Mark req = new Protobuf_Game_Mark()
{
State = Motion,
RomID = RomID,
PlatformType = Platform
};
App.log.Info($"LeavnRoom");
App.network.SendToServer((int)CommandID.CmdGameMark, ProtoBufHelper.Serizlize(req));
}
/// <summary>
/// 离开房间成功
/// </summary>
/// <param name="reqData"></param>
void RecvGameStar(byte[] reqData)
{
Protobuf_Game_Mark_RESP msg = ProtoBufHelper.DeSerizlize<Protobuf_Game_Mark_RESP>(reqData);
Eventer.Instance.PostEvent(EEvent.OnDoStars, msg.PlatformType, msg.RomID);
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 8a704bd24172e02428eeba6b94674011
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -94,9 +94,10 @@ namespace AxibugEmuOnline.Client
PlayerPrefs.SetString($"Filter_{Name}_PresetList", json);
}
public MsgBool CreatePreset(string presetName,out FilterPreset newPreset)
public MsgBool CreatePreset(string presetName, out FilterPreset newPreset)
{
newPreset = null;
if (string.IsNullOrWhiteSpace(presetName)) return "名称不能为空";
if (Presets.Count(p => p.Name == presetName) != 0) return "名称重复";
newPreset = new FilterPreset(presetName);
@ -107,6 +108,14 @@ namespace AxibugEmuOnline.Client
return true;
}
public void RemovePreset(FilterPreset preset)
{
if (!Presets.Remove(preset)) return;
savePresets();
EventInvoker.RaiseFilterPresetRemoved(this, preset);
}
public void ResetPreset()
{
foreach (var param in Paramerters)
@ -127,6 +136,8 @@ namespace AxibugEmuOnline.Client
}
}
}
[Serializable]

View File

@ -1,4 +1,12 @@
using AxibugEmuOnline.Client.ClientCore;
using AxibugEmuOnline.Client.Common;
using AxibugEmuOnline.Client.Event;
using AxibugEmuOnline.Client.Network;
using AxibugProtobuf;
using System.Collections.Generic;
using System.Linq;
using UnityEngine.EventSystems;
using static AxibugEmuOnline.Client.ClientCore.RomDB;
namespace AxibugEmuOnline.Client.Manager
{
@ -6,6 +14,7 @@ namespace AxibugEmuOnline.Client.Manager
{
public long UID { get; set; }
public string Account { get; set; }
public string NickName { get; set; }
}
public class MainUserDataBase : UserDataBase
@ -19,19 +28,29 @@ namespace AxibugEmuOnline.Client.Manager
{
//注册重连成功事件,以便后续自动登录
App.network.OnReConnected += OnReConnected;
//网络事件注册
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdUserOnlinelist, RecvUserOnlinelist);
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdUserJoin, RecvCmdUserJoin);
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdUserLeave, RecvGetUserLeave);
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdModifyNickName, RecvModifyNickName);
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdUpdateSelfUserInfo, RecvUpdateSelfUserInfo);
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdUpdateOtherUserInfo, RecvUpdateOtherUserInfo);
}
public MainUserDataBase userdata { get; private set; } = new MainUserDataBase();
public bool IsLoggedIn => userdata.IsLoggedIn;
Dictionary<long, UserDataBase> DictUID2User = new Dictionary<long, UserDataBase>();
public int OnlinePlayerCount => DictUID2User.Count;
public void InitMainUserData(string UName, long UID)
{
userdata.Account = UName;
userdata.NickName = UName;
userdata.IsLoggedIn = true;
userdata.UID = UID;
//以及其他数据初始化
//...
}
/// <summary>
/// 登出
/// </summary>
@ -41,7 +60,6 @@ namespace AxibugEmuOnline.Client.Manager
//以及其他数据清理
//...
}
/// <summary>
/// 当重连成功
/// </summary>
@ -53,5 +71,143 @@ namespace AxibugEmuOnline.Client.Manager
App.login.Login();
}
}
#region
public void UpdateOrAddUser(UserMiniInfo minfo, out bool isNewUser)
{
lock (DictUID2User)
{
if (!DictUID2User.ContainsKey(minfo.UID))
{
DictUID2User[minfo.UID] = new UserDataBase()
{
UID = minfo.UID,
NickName = minfo.NickName,
Account = "",
};
isNewUser = true;
}
else
{
isNewUser = false;
DictUID2User[minfo.UID].NickName = minfo.NickName;
}
}
}
public void RemoveUser(long UID)
{
bool bflag = false;
string UName = "";
lock (DictUID2User)
{
if (DictUID2User.ContainsKey(UID))
{
UName = DictUID2User[UID].NickName;
DictUID2User.Remove(UID);
bflag = true;
}
}
if (bflag)
{
//抛出用户离开事件
Eventer.Instance.PostEvent(EEvent.OnUserLoginOut, UID, UName);
}
}
public UserDataBase GetUserByUid(long UID)
{
lock (DictUID2User)
{
if (DictUID2User.ContainsKey(UID))
{
return DictUID2User[UID];
}
return null;
}
}
public UserDataBase[] GetUserList()
{
UserDataBase[] ulist = new UserDataBase[DictUID2User.Count];
long[] UIDs = DictUID2User.Keys.ToArray();
for (int i = 0; i < UIDs.Length; i++)
{
ulist[i] = DictUID2User[UIDs[i]];
}
return ulist;
}
#endregion
/// <summary>
/// 请求拉取房间列表
/// </summary>
public void Send_GetUserList()
{
Protobuf_UserList msg = new Protobuf_UserList()
{
};
App.network.SendToServer((int)CommandID.CmdUserOnlinelist, ProtoBufHelper.Serizlize(msg));
}
public void RecvUserOnlinelist(byte[] reqData)
{
Protobuf_UserList_RESP msg = ProtoBufHelper.DeSerizlize<Protobuf_UserList_RESP>(reqData);
for (int i = 0; i < msg.UserList.Count; i++)
{
UserMiniInfo mi = msg.UserList[i];
UpdateOrAddUser(mi, out bool isNewUser);
}
Eventer.Instance.PostEvent(EEvent.OnUserListAllUpdate);
}
public void RecvCmdUserJoin(byte[] reqData)
{
Protobuf_UserJoin_RESP msg = ProtoBufHelper.DeSerizlize<Protobuf_UserJoin_RESP>(reqData);
UpdateOrAddUser(msg.UserInfo, out bool isNewUser);
if (isNewUser)
Eventer.Instance.PostEvent(EEvent.OnUserLogin, msg.UserInfo.UID, msg.UserInfo.NickName);
}
public void RecvGetUserLeave(byte[] reqData)
{
Protobuf_UserLeave_RESP msg = ProtoBufHelper.DeSerizlize<Protobuf_UserLeave_RESP>(reqData);
RemoveUser(msg.UID);
}
/// <summary>
/// 发送修改昵称请求
/// </summary>
/// <param name="NickName"></param>
public void Send_ModifyNickName(string NickName)
{
Protobuf_Modify_NickName msg = new Protobuf_Modify_NickName()
{
NickName = NickName
};
App.network.SendToServer((int)CommandID.CmdModifyNickName, ProtoBufHelper.Serizlize(msg));
}
void RecvModifyNickName(byte[] reqData)
{
Protobuf_Modify_NickName_RESP msg = ProtoBufHelper.DeSerizlize<Protobuf_Modify_NickName_RESP>(reqData);
}
private void RecvUpdateSelfUserInfo(byte[] reqData)
{
Protobuf_Update_UserInfo_RESP msg = ProtoBufHelper.DeSerizlize<Protobuf_Update_UserInfo_RESP>(reqData);
userdata.NickName = msg.UserInfo.NickName;
Eventer.Instance.PostEvent(EEvent.OnSelfInfoUpdate);
}
private void RecvUpdateOtherUserInfo(byte[] reqData)
{
Protobuf_Update_OtherUserInfo_RESP msg = ProtoBufHelper.DeSerizlize<Protobuf_Update_OtherUserInfo_RESP>(reqData);
UserDataBase userdata = GetUserByUid(msg.UID);
if (userdata == null)
return;
userdata.NickName = msg.UserInfo.NickName;
//TODO其他
Eventer.Instance.PostEvent(EEvent.OnOtherUserInfoUpdate, msg.UID);
}
}
}

View File

@ -51,7 +51,7 @@ namespace AxibugEmuOnline.Client
var options = Datacontext.Presets.Select(preset => new ColorOption(preset)).ToList();
var currentColor = Datacontext.CurrentColor;
var index = options.FindIndex(op => op.Color.GetHashCode() == currentColor.GetHashCode());
OptionUI.Instance.Pop(options, Mathf.Clamp(index, 0, options.Count - 1));
OverlayManager.Pop(options, Mathf.Clamp(index, 0, options.Count - 1));
return false;
}

View File

@ -46,7 +46,7 @@ namespace AxibugEmuOnline.Client
opts.Add(new Opt_CreatePreset(Datacontext));
opts.AddRange(Datacontext.Presets.Select(p => new Opt_Presets(Datacontext, p)));
OptionUI.Instance.Pop(opts, onClose: () =>
OverlayManager.Pop(opts, onClose: () =>
{
App.filter.EnableFilterPreview();
Datacontext.ResetPreset();
@ -83,15 +83,35 @@ namespace AxibugEmuOnline.Client
}, "ΪԤÉèÉèÖÃÒ»¸öÃû³Æ", string.Empty);
}
}
public class Opt_Presets : ExecuteMenu
public class Opt_Presets : ExpandMenu
{
private Filter m_filter;
private FilterPreset m_preset;
private OptionUI_MenuItem m_ui;
public Opt_Presets(Filter filter, FilterPreset preset) : base(preset.Name, null)
{
m_filter = filter;
m_preset = preset;
}
public override void OnShow(OptionUI_MenuItem ui)
{
EventInvoker.OnFilterPresetRemoved += EventInvoker_OnFilterPresetRemoved;
m_ui = ui;
base.OnShow(ui);
}
public override void OnHide()
{
EventInvoker.OnFilterPresetRemoved -= EventInvoker_OnFilterPresetRemoved;
}
private void EventInvoker_OnFilterPresetRemoved(Filter filter, FilterPreset removedPreset)
{
if (filter != m_filter || m_preset != removedPreset) return;
m_ui.OptionUI.RemoveItem(m_ui);
}
public override void OnFocus()
@ -100,9 +120,26 @@ namespace AxibugEmuOnline.Client
App.filter.EnableFilter(m_filter);
}
public override void OnExcute(OptionUI optionUI, ref bool cancelHide)
protected override List<OptionMenu> GetOptionMenus()
{
return new List<OptionMenu> { new Opt_Delete(m_filter, m_preset) };
}
public class Opt_Delete : ExecuteMenu
{
private Filter m_filter;
private FilterPreset m_preset;
public Opt_Delete(Filter filter, FilterPreset preset) : base("ɾ³ýÔ¤Éè", null)
{
m_filter = filter;
m_preset = preset;
}
public override void OnExcute(OptionUI optionUI, ref bool cancelHide)
{
m_filter.RemovePreset(m_preset);
}
}
}
}

View File

@ -33,7 +33,7 @@ namespace AxibugEmuOnline.Client
protected virtual void Update()
{
if (Registed)
if (Registed && Enable)
{
m_pulsInvoker_Left.Update(Time.deltaTime);
m_pulsInvoker_Right.Update(Time.deltaTime);

View File

@ -62,7 +62,7 @@ namespace AxibugEmuOnline.Client
protected override void OnCmdOptionMenu()
{
OptionUI.Instance.Pop(m_options);
OverlayManager.Pop(m_options);
}
public class OptMenu_Search : ExecuteMenu

View File

@ -99,7 +99,7 @@ namespace AxibugEmuOnline.Client
protected override void OnCmdOptionMenu()
{
OptionUI.Instance.Pop(menus, 0, PopMenu_OnHide);
OverlayManager.Pop(menus, 0, PopMenu_OnHide);
if (!IsNetPlay)//单人模式暂停模拟器
{

View File

@ -8,19 +8,20 @@ namespace AxibugEmuOnline.Client
{
public class OptionUI : CommandExecuter
{
public static OptionUI Instance { get; private set; }
[SerializeField]
RectTransform MenuRoot;
[SerializeField]
RectTransform SelectBorder;
Selector SelectBorder;
[Space]
[Header("模板")]
[SerializeField] OptionUI_ExecuteItem TEMPLATE_EXECUTEITEM;
private OptionUI m_child;
private OptionUI m_parent;
public override bool AloneMode => true;
public override bool Enable => m_bPoped;
public override bool Enable => m_bPoped && (m_child == null || !m_child.m_bPoped);
private bool m_bPoped = false;
private List<OptionUI_MenuItem> m_runtimeMenuItems = new List<OptionUI_MenuItem>();
@ -31,44 +32,43 @@ namespace AxibugEmuOnline.Client
get { return m_selectIndex; }
set
{
var selectableItems = m_runtimeMenuItems.Where(t => t.Visible).ToList();
value = Mathf.Clamp(value, 0, selectableItems.Count - 1);
value = Mathf.Clamp(value, 0, m_runtimeMenuItems.Count - 1);
if (m_selectIndex == value) return;
var gap = value - m_selectIndex;
while (!m_runtimeMenuItems[value].Visible)
{
var temp = value;
if (gap > 0)
{
temp++;
}
else
{
temp--;
}
if (temp >= 0 && temp < m_runtimeMenuItems.Count)
value = temp;
}
m_selectIndex = value;
OptionUI_MenuItem optionUI_MenuItem = selectableItems[m_selectIndex];
OptionUI_MenuItem optionUI_MenuItem = m_runtimeMenuItems[m_selectIndex];
optionUI_MenuItem.OnFocus();
var itemUIRect = optionUI_MenuItem.transform as RectTransform;
SelectBorder.pivot = itemUIRect.pivot;
SelectBorder.sizeDelta = itemUIRect.rect.size;
//ÖØÖÃÑ¡ÔñÓαêµÄ¶¯»­
SelectBorder.gameObject.SetActive(false);
SelectBorder.gameObject.SetActive(true);
DOTween.To(() => SelectBorder.position, (value) => SelectBorder.position = value, itemUIRect.position, 0.125f);
SelectBorder.SetAsLastSibling();
SelectBorder.Target = itemUIRect;
}
}
protected override void Awake()
{
Instance = this;
TEMPLATE_EXECUTEITEM.gameObject.SetActiveEx(false);
SelectBorder.gameObject.SetActiveEx(false);
base.Awake();
}
private void Start()
{
Canvas.ForceUpdateCanvases();
var width = MenuRoot.rect.size.x;
var temp = MenuRoot.anchoredPosition;
temp.x = width;
MenuRoot.anchoredPosition = temp;
}
protected override void Update()
{
UpdateMenuState();
@ -77,6 +77,58 @@ namespace AxibugEmuOnline.Client
}
private void UpdateMenuState()
{
bool dirty = false;
dirty = checkDirty();
if (dirty)
{
RebuildSelectIndex();
}
}
private void RebuildSelectIndex()
{
Canvas.ForceUpdateCanvases();
SelectIndex = Mathf.Clamp(SelectIndex, 0, m_runtimeMenuItems.Count - 1);
var selectItem = m_runtimeMenuItems[SelectIndex];
if (selectItem.Visible == false)
{
bool find = false;
int currentSelect = SelectIndex;
while (currentSelect > 0)
{
currentSelect--;
if (m_runtimeMenuItems[currentSelect].Visible)
{
find = true;
}
}
if (!find)
{
currentSelect = SelectIndex;
while (currentSelect < m_runtimeMenuItems.Count)
{
if (m_runtimeMenuItems[currentSelect].Visible)
{
find = true;
}
currentSelect++;
}
}
if (find)
SelectIndex = currentSelect;
}
else
{
var itemUIRect = selectItem.transform as RectTransform;
SelectBorder.Target = itemUIRect;
}
}
private bool checkDirty()
{
bool dirty = false;
foreach (var menuItem in m_runtimeMenuItems)
@ -87,47 +139,8 @@ namespace AxibugEmuOnline.Client
menuItem.gameObject.SetActive(menuItem.Visible);
}
}
if (dirty)
{
Canvas.ForceUpdateCanvases();
if (m_runtimeMenuItems[SelectIndex].Visible == false)
{
bool find = false;
int currentSelect = SelectIndex;
while (currentSelect > 0)
{
currentSelect--;
if (m_runtimeMenuItems[currentSelect].Visible)
{
find = true;
}
}
if (!find)
{
currentSelect = SelectIndex;
while (currentSelect < m_runtimeMenuItems.Count)
{
if (m_runtimeMenuItems[currentSelect].Visible)
{
find = true;
}
currentSelect++;
}
}
if (find)
SelectIndex = currentSelect;
}
else
{
var selectItem = m_runtimeMenuItems[SelectIndex];
var itemUIRect = selectItem.transform as RectTransform;
SelectBorder.pivot = itemUIRect.pivot;
SelectBorder.position = itemUIRect.position;
SelectBorder.sizeDelta = itemUIRect.rect.size;
}
}
return dirty;
}
IKeyMapperChanger m_lastCS;
@ -145,11 +158,7 @@ namespace AxibugEmuOnline.Client
Canvas.ForceUpdateCanvases();
OptionUI_MenuItem optionUI_MenuItem = m_runtimeMenuItems[m_selectIndex];
var itemUIRect = optionUI_MenuItem.transform as RectTransform;
SelectBorder.pivot = itemUIRect.pivot;
SelectBorder.position = itemUIRect.position;
SelectBorder.sizeDelta = itemUIRect.rect.size;
SelectBorder.SetAsLastSibling();
SelectBorder.Target = optionUI_MenuItem.transform as RectTransform;
}
public void Pop<T>(List<T> menus, int defaultIndex = 0, Action onClose = null) where T : OptionMenu
@ -167,24 +176,35 @@ namespace AxibugEmuOnline.Client
optionUI_MenuItem.OnFocus();
var itemUIRect = optionUI_MenuItem.transform as RectTransform;
SelectBorder.pivot = itemUIRect.pivot;
SelectBorder.position = itemUIRect.position;
SelectBorder.sizeDelta = itemUIRect.rect.size;
SelectBorder.SetAsLastSibling();
SelectBorder.Target = itemUIRect;
if (!m_bPoped)
{
m_bPoped = true;
Vector2 start = new Vector2(0, MenuRoot.anchoredPosition.y);
Vector2 end = new Vector2(-MenuRoot.rect.width, MenuRoot.anchoredPosition.y);
DOTween.To(
() => MenuRoot.anchoredPosition.x,
() => start,
(value) =>
{
var temp = MenuRoot.anchoredPosition;
temp.x = value;
MenuRoot.anchoredPosition = temp;
var moveDelta = value - start;
start = value;
var topParent = m_parent;
while (topParent != null && topParent.m_parent != null)
{
topParent = topParent.m_parent;
}
if (topParent != null)
{
topParent.MenuRoot.anchoredPosition += moveDelta;
}
else
{
MenuRoot.anchoredPosition += moveDelta;
}
},
0,
end,
0.3f
).SetEase(Ease.OutCubic);
@ -205,16 +225,30 @@ namespace AxibugEmuOnline.Client
CommandDispatcher.Instance.UnRegistController(this);
Canvas.ForceUpdateCanvases();
var width = MenuRoot.rect.width;
Vector2 start = new Vector2(-MenuRoot.rect.width, MenuRoot.anchoredPosition.y);
Vector2 end = new Vector2(0, MenuRoot.anchoredPosition.y);
DOTween.To(
() => MenuRoot.anchoredPosition.x,
() => start,
(value) =>
{
var temp = MenuRoot.anchoredPosition;
temp.x = value;
MenuRoot.anchoredPosition = temp;
var moveDelta = value - start;
start = value;
var topParent = m_parent;
while (topParent != null && topParent.m_parent != null)
{
topParent = topParent.m_parent;
}
if (topParent != null)
{
topParent.MenuRoot.anchoredPosition += moveDelta;
}
else
{
MenuRoot.anchoredPosition += moveDelta;
}
},
width,
end,
0.3f
).SetEase(Ease.OutCubic);
@ -233,7 +267,7 @@ namespace AxibugEmuOnline.Client
{
var menuUI = GameObject.Instantiate(TEMPLATE_EXECUTEITEM.gameObject, TEMPLATE_EXECUTEITEM.transform.parent).GetComponent<OptionUI_ExecuteItem>();
menuUI.gameObject.SetActive(true);
menuUI.SetData(executeMenu);
menuUI.SetData(this, executeMenu);
m_runtimeMenuItems.Add(menuUI);
}
else
@ -246,6 +280,7 @@ namespace AxibugEmuOnline.Client
{
foreach (var item in m_runtimeMenuItems)
{
item.OnHide();
Destroy(item.gameObject);
}
m_runtimeMenuItems.Clear();
@ -266,6 +301,14 @@ namespace AxibugEmuOnline.Client
Hide();
}
protected override void OnCmdSelectItemRight()
{
var executer = m_runtimeMenuItems[SelectIndex];
if (!executer.IsExpandMenu) return;
OnCmdEnter();
}
protected override bool OnCmdEnter()
{
var executer = m_runtimeMenuItems[SelectIndex];
@ -275,10 +318,42 @@ namespace AxibugEmuOnline.Client
return false;
}
/// <summary>
/// 展开下级菜单
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="menus"></param>
/// <param name="defaultIndex"></param>
/// <param name="onClose"></param>
public void ExpandSubMenu<T>(List<T> menus, int defaultIndex = 0, Action onClose = null) where T : OptionMenu
{
if (m_child == null)
{
var sourcePrefab = Resources.Load<GameObject>("UIPrefabs/OptionUI");
m_child = Instantiate(sourcePrefab, transform).GetComponent<OptionUI>();
m_child.name = $"{name}_Sub";
m_child.m_parent = this;
}
Canvas.ForceUpdateCanvases();
m_child.Pop(menus, 0, onClose);
}
public void RemoveItem(OptionUI_MenuItem ui)
{
var index = m_runtimeMenuItems.IndexOf(ui);
if (index == -1) return;
m_runtimeMenuItems.Remove(ui);
ui.OnHide();
Destroy(ui.gameObject);
RebuildSelectIndex();
}
}
/// <summary>
/// 带有执行行为的菜单
/// </summary>
@ -289,6 +364,22 @@ namespace AxibugEmuOnline.Client
public abstract void OnExcute(OptionUI optionUI, ref bool cancelHide);
}
/// <summary>
/// 带有展开行为的菜单
/// </summary>
public abstract class ExpandMenu : ExecuteMenu
{
protected ExpandMenu(string name, Sprite icon = null) : base(name, icon) { }
public sealed override void OnExcute(OptionUI optionUI, ref bool cancelHide)
{
cancelHide = true;
optionUI.ExpandSubMenu(GetOptionMenus());
}
protected abstract List<OptionMenu> GetOptionMenus();
}
/// <summary>
/// 带有值类型显示和编辑的菜单
/// </summary>
@ -324,6 +415,7 @@ namespace AxibugEmuOnline.Client
public virtual void OnFocus() { }
public virtual void OnShow(OptionUI_MenuItem ui) { }
public virtual void OnHide() { }
}
/// <summary> 不要直接继承这个类 </summary>
public abstract class ValueSetMenu : OptionMenu

View File

@ -1,7 +1,18 @@
using UnityEngine;
namespace AxibugEmuOnline.Client
{
public class OptionUI_ExecuteItem : OptionUI_MenuItem<ExecuteMenu>
{
public GameObject ExpandFlag;
protected override void OnSetData(OptionMenu menuData)
{
base.OnSetData(menuData);
ExpandFlag.SetActiveEx(IsExpandMenu);
}
public override void OnExecute(OptionUI optionUI, ref bool cancelHide)
{
MenuData.OnExcute(optionUI, ref cancelHide);

View File

@ -11,11 +11,12 @@ namespace AxibugEmuOnline.Client
public Image IconUI => m_Icon;
public bool Visible => m_Menu.Visible;
public OptionUI OptionUI { get; private set; }
protected OptionMenu m_Menu;
public void SetData(OptionMenu menuData)
public void SetData(OptionUI optionUI, OptionMenu menuData)
{
OptionUI = optionUI;
m_Menu = menuData;
m_MenuNameTxt.text = menuData.Name;
if (menuData.Icon == null) m_Icon.gameObject.SetActiveEx(false);
@ -29,10 +30,13 @@ namespace AxibugEmuOnline.Client
OnSetData(menuData);
}
public bool IsExpandMenu => m_Menu is ExpandMenu;
protected abstract void OnSetData(OptionMenu menuData);
public abstract void OnExecute(OptionUI optionUI, ref bool cancelHide);
public abstract void OnFocus();
public virtual void OnHide() { }
}
public abstract class OptionUI_MenuItem<T> : OptionUI_MenuItem
@ -49,5 +53,10 @@ namespace AxibugEmuOnline.Client
{
MenuData.OnFocus();
}
public override void OnHide()
{
MenuData.OnHide();
}
}
}

View File

@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using UnityEngine;
namespace AxibugEmuOnline.Client
@ -9,6 +10,8 @@ namespace AxibugEmuOnline.Client
[SerializeField]
InputUI m_InputUI;
[SerializeField]
OptionUI m_OptionUI;
private void Awake()
{
@ -23,6 +26,10 @@ namespace AxibugEmuOnline.Client
return s_ins.m_InputUI;
}
public static void Pop<T>(List<T> menus, int defaultIndex = 0, Action onClose = null) where T : OptionMenu
{
s_ins.m_OptionUI.Pop(menus, defaultIndex, onClose);
}
public static void PopMsg(string msg)
{

View File

@ -0,0 +1,54 @@
using DG.Tweening;
using DG.Tweening.Core;
using DG.Tweening.Plugins.Options;
using UnityEngine;
namespace AxibugEmuOnline.Client
{
public class Selector : MonoBehaviour
{
private RectTransform m_rect => transform as RectTransform;
private RectTransform m_target;
private TweenerCore<Vector3, Vector3, VectorOptions> m_trackTween;
public RectTransform Target
{
get => m_target;
set
{
if (m_target == value) return;
m_target = value;
//ÖØÖÃÑ¡ÔñÓαêµÄ¶¯»­
gameObject.SetActive(false);
gameObject.SetActive(true);
var itemUIRect = m_target.transform as RectTransform;
m_rect.pivot = itemUIRect.pivot;
m_rect.sizeDelta = itemUIRect.rect.size;
m_rect.SetAsLastSibling();
if (m_trackTween != null)
{
m_trackTween.Kill();
m_trackTween = null;
}
m_trackTween = DOTween.To(() => m_rect.position, (value) => m_rect.position = value, itemUIRect.position, 0.125f);
m_trackTween.onComplete = () => m_trackTween = null;
}
}
private void LateUpdate()
{
if (m_trackTween != null)
{
m_trackTween.endValue = Target.position;
}
if (Target == null) return;
m_rect.position = Target.position;
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 5f9054446a969bf4eaf7998f3ba23334
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -10,7 +10,7 @@ InputManager:
descriptiveName:
descriptiveNegativeName:
negativeButton:
positiveButton: return
positiveButton:
altNegativeButton:
altPositiveButton:
gravity: 0
@ -26,7 +26,7 @@ InputManager:
descriptiveName:
descriptiveNegativeName:
negativeButton:
positiveButton: escape
positiveButton:
altNegativeButton:
altPositiveButton:
gravity: 0

View File

@ -3,7 +3,7 @@
public enum EEvent
{
// 添加你自己需要的事件类型
OnUserJoin,
OnUserLeave
OnUserOnline,
OnUserOffline
}
}

View File

@ -13,8 +13,10 @@ namespace AxibugEmuOnline.Server
public static LogManager g_Log;
public static LoginManager g_Login;
public static ChatManager g_Chat;
public static UserManager g_UserMgr;
public static IOCPNetWork g_SocketMgr;
public static RoomManager g_Room;
public static GameShareManager g_GameShareMgr;
public static void InitServer(int port)
{
@ -26,8 +28,10 @@ namespace AxibugEmuOnline.Server
g_Log = new LogManager();
g_Login = new LoginManager();
g_Chat = new ChatManager();
g_SocketMgr = new IOCPNetWork(1024, 4096*2);
g_UserMgr = new UserManager();
g_SocketMgr = new IOCPNetWork(1024, 4096 * 2);
g_Room = new RoomManager();
g_GameShareMgr = new GameShareManager();
g_SocketMgr.Init();
g_SocketMgr.Start(new IPEndPoint(IPAddress.Any.Address, port));

View File

@ -1,6 +1,10 @@
using AxibugEmuOnline.Server.Common;
using AxibugEmuOnline.Server.Event;
using AxibugEmuOnline.Server.NetWork;
using AxibugProtobuf;
using MySql.Data.MySqlClient;
using MySqlX.XDevAPI;
using System.Collections.Generic;
using System.Net.Sockets;
using System.Timers;
@ -9,12 +13,14 @@ namespace AxibugEmuOnline.Server.Manager
public class ClientInfo
{
public long UID { get; set; }
public string NickName { get; set; }
public string Account { get; set; }
public string NickName { get; set; } = string.Empty;
public string Account { get; set; } = string.Empty;
public Socket _socket { get; set; }
public bool IsOffline { get; set; } = false;
public DateTime RegisterDT { get; set; }
public DateTime LogOutDT { get; set; }
public DateTime LogInDT { get; set; }
public DateTime LastLogInDT { get; set; }
public UserRoomState RoomState { get; set; } = new UserRoomState();
public TimeSpan LastStartPingTime { get; set; }
public int LastPingSeed { get; set; }
@ -81,6 +87,7 @@ namespace AxibugEmuOnline.Server.Manager
threadPingTick.Start();
}
public long GetNextUID()
{
return ++TestUIDSeed;
@ -104,7 +111,7 @@ namespace AxibugEmuOnline.Server.Manager
//通用处理
#region clientlist
public ClientInfo JoinNewClient(Protobuf_Login data, Socket _socket)
public ClientInfo JoinNewClient(long _uid, Socket _socket)
{
//也许这个函数需加lock
ClientInfo cinfo = GetClientForSocket(_socket);
@ -117,10 +124,8 @@ namespace AxibugEmuOnline.Server.Manager
{
cinfo = new ClientInfo()
{
UID = GetNextUID(),
UID = _uid,
_socket = _socket,
Account = data.Account,
NickName = data.Account,
IsOffline = false,
};
AddClient(cinfo);
@ -192,6 +197,10 @@ namespace AxibugEmuOnline.Server.Manager
}
}
public ClientInfo GetClientForUID(long UID)
{
return _DictUIDClient.ContainsKey(UID) ? _DictUIDClient[UID] : null;
}
public ClientInfo GetClientForSocket(Socket sk)
{
@ -221,8 +230,8 @@ namespace AxibugEmuOnline.Server.Manager
Console.WriteLine("标记玩家UID" + cinfo.UID + "为离线");
cinfo.IsOffline = true;
cinfo.LogOutDT = DateTime.Now;
AppSrv.g_Room.LeaveRoom(cinfo, cinfo.RoomState.RoomID);
EventSystem.Instance.PostEvent(EEvent.OnUserOffline, cinfo.UID);
}
public void RemoveClientForSocket(Socket sk)
@ -264,7 +273,6 @@ namespace AxibugEmuOnline.Server.Manager
public void OnCmdPing(Socket sk, byte[] reqData)
{
//AppSrv.g_Log.Debug($"OnCmdPing");
ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(sk);
Protobuf_Ping msg = ProtoBufHelper.DeSerizlize<Protobuf_Ping>(reqData);
//创建成功下行
@ -272,7 +280,7 @@ namespace AxibugEmuOnline.Server.Manager
{
Seed = msg.Seed,
};
AppSrv.g_ClientMgr.ClientSend(_c._socket, (int)CommandID.CmdPong, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(resp));
AppSrv.g_ClientMgr.ClientSend(sk, (int)CommandID.CmdPong, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(resp));
}
public void OnCmdPong(Socket sk, byte[] reqData)
{
@ -303,6 +311,7 @@ namespace AxibugEmuOnline.Server.Manager
}
#endregion
public void ClientSendALL(int CMDID, int ERRCODE, byte[] data, long SkipUID = -1)
{
ClientSend(ClientList, CMDID, ERRCODE, data, SkipUID);

View File

@ -0,0 +1,104 @@
using AxibugEmuOnline.Server.Common;
using AxibugEmuOnline.Server.Event;
using AxibugEmuOnline.Server.NetWork;
using AxibugProtobuf;
using MySql.Data.MySqlClient;
using System.Net.Sockets;
using static AxibugEmuOnline.Server.RoomManager;
namespace AxibugEmuOnline.Server.Manager
{
public class GameShareManager
{
public GameShareManager()
{
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdGameMark, RecvGameMark);
}
public void RecvGameMark(Socket _socket, byte[] reqData)
{
Protobuf_Game_Mark msg = ProtoBufHelper.DeSerizlize<Protobuf_Game_Mark>(reqData);
ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(_socket);
Protobuf_Game_Mark_RESP respData = new Protobuf_Game_Mark_RESP();
MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("RecvGameMark");
try
{
string query = "SELECT id from rom_stars where uid = ?uid and romid = ?platform and platform = ?romid";
bool bHad = false;
using (var command = new MySqlCommand(query, conn))
{
// 设置参数值
command.Parameters.AddWithValue("?uid", _c.UID);
command.Parameters.AddWithValue("?platform", 1);
command.Parameters.AddWithValue("?romid", msg.RomID);
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
if (reader.GetInt32(0) > 0)
bHad = true;
}
}
}
if (msg.State == 0)
{
if (bHad)
{
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdGameMark, (int)ErrorCode.ErrorRomAlreadyHadStar, ProtoBufHelper.Serizlize(respData));
return;
}
else
{
query = "INSERT INTO `haoyue_emu`.`rom_stars` (`uid`, `platform`, `romid`) VALUES (?uid, ?platform, ?romid);";
using (var command = new MySqlCommand(query, conn))
{
// 设置参数值
command.Parameters.AddWithValue("?uid", _c.UID);
command.Parameters.AddWithValue("?platform", (int)msg.PlatformType);
command.Parameters.AddWithValue("?romid", msg.RomID);
command.ExecuteNonQuery();
}
}
}
else//取消收藏
{
if (bHad)
{
query = "DELETE from rom_stars where uid = ?uid and romid = ?romid and platform = ?platform";
using (var command = new MySqlCommand(query, conn))
{
// 设置参数值
command.Parameters.AddWithValue("?uid", _c.UID);
command.Parameters.AddWithValue("?platform", (int)msg.PlatformType);
command.Parameters.AddWithValue("?romid", msg.RomID);
command.ExecuteNonQuery();
}
}
else
{
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdGameMark, (int)ErrorCode.ErrorRomDontHadStar, ProtoBufHelper.Serizlize(respData));
return;
}
}
//更新收藏数
query = "update romlist_nes set stars = (SELECT COUNT(id) from rom_stars where rom_stars.romid = ?romid and rom_stars.platform = ?platform) where romlist_nes.id = ?romid";
using (var command = new MySqlCommand(query, conn))
{
command.Parameters.AddWithValue("?platform", (int)msg.PlatformType);
command.Parameters.AddWithValue("?romid", msg.RomID);
command.ExecuteNonQuery();
}
}
catch (Exception e)
{
}
Haoyue_SQLPoolManager.EnqueueSQLConn(conn);
respData.PlatformType = msg.PlatformType;
respData.RomID = msg.RomID;
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdGameMark, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(respData));
}
}
}

View File

@ -1,6 +1,9 @@
using AxibugEmuOnline.Server.Common;
using AxibugEmuOnline.Server.Event;
using AxibugEmuOnline.Server.NetWork;
using AxibugProtobuf;
using MySql.Data.MySqlClient;
using Org.BouncyCastle.Ocsp;
using System.Net.Sockets;
namespace AxibugEmuOnline.Server.Manager
@ -10,24 +13,214 @@ namespace AxibugEmuOnline.Server.Manager
public LoginManager()
{
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdLogin, UserLogin);
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdModifyNickName, OnCmdModifyNickName);
}
public void UserLogin(Socket _socket, byte[] reqData)
void UserLogin(Socket _socket, byte[] reqData)
{
AppSrv.g_Log.Debug("收到新的登录请求");
AppSrv.g_Log.DebugCmd("UserLogin");
Protobuf_Login msg = ProtoBufHelper.DeSerizlize<Protobuf_Login>(reqData);
ClientInfo _c = AppSrv.g_ClientMgr.JoinNewClient(msg, _socket);
long _uid = 0;
AppSrv.g_Log.Info($"LoginType -> {msg.LoginType.ToString()}");
if (msg.LoginType == LoginType.UseDevice)
{
if (!GetUidByDevice(msg.DeviceStr, msg.DeviceType, out _uid))
{
byte[] ErrRespData = ProtoBufHelper.Serizlize(new Protobuf_Login_RESP()
{
Status = LoginResultStatus.AccountErr,
});
AppSrv.g_ClientMgr.ClientSend(_socket, (int)CommandID.CmdLogin, (int)ErrorCode.ErrorOk, ErrRespData);
return;
}
}
else
{
byte[] ErrRespData = ProtoBufHelper.Serizlize(new Protobuf_Login_RESP()
{
Status = LoginResultStatus.AccountErr,
});
AppSrv.g_ClientMgr.ClientSend(_socket, (int)CommandID.CmdLogin, (int)ErrorCode.ErrorOk, ErrRespData);
return;
}
ClientInfo _c = AppSrv.g_ClientMgr.JoinNewClient(_uid, _socket);
UpdateUserData(_uid, _c);
EventSystem.Instance.PostEvent(EEvent.OnUserOnline, _c.UID);
byte[] respData = ProtoBufHelper.Serizlize(new Protobuf_Login_RESP()
{
Status = LoginResultStatus.Ok,
RegDate = "",
LastLoginDate = "",
RegDate = _c.RegisterDT.ToString("yyyy-MM-dd HH:mm:ss"),
LastLoginDate = _c.LastLogInDT.ToString("yyyy-MM-dd HH:mm:ss"),
Token = "",
NickName = _c.NickName,
UID = _c.UID
});
AppSrv.g_Log.Info($"玩家登录成功 UID->{_c.UID} NikeName->{_c.NickName}");
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdLogin, (int)ErrorCode.ErrorOk, respData);
}
void OnCmdModifyNickName(Socket socket, byte[] reqData)
{
AppSrv.g_Log.DebugCmd("OnCmdModifyNikeName");
bool bDone = false;
ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(socket);
Protobuf_Modify_NickName msg = ProtoBufHelper.DeSerizlize<Protobuf_Modify_NickName>(reqData);
MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("ModifyNikeName");
try
{
string query = "update users set nikename = ?nikename where uid = ?uid ";
using (var command = new MySqlCommand(query, conn))
{
// 设置参数值
command.Parameters.AddWithValue("?uid", _c.UID);
command.Parameters.AddWithValue("?uid", msg.NickName);
if (command.ExecuteNonQuery() > 0)
{
bDone = true;
}
}
}
catch (Exception e)
{
}
Haoyue_SQLPoolManager.EnqueueSQLConn(conn);
if (bDone)
{
_c.NickName = msg.NickName;
UserMiniInfo miniinfo = new UserMiniInfo()
{
NickName = _c.NickName,
};
Protobuf_Update_UserInfo_RESP infodata = new Protobuf_Update_UserInfo_RESP()
{
UserInfo = miniinfo,
};
//回执给自己
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdUpdateSelfUserInfo, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(infodata));
Protobuf_Update_OtherUserInfo_RESP otherinfo = new Protobuf_Update_OtherUserInfo_RESP()
{
UID = _c.UID,
UserInfo = miniinfo
};
//广播给他人
AppSrv.g_ClientMgr.ClientSendALL((int)CommandID.CmdUpdateOtherUserInfo, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(otherinfo), SkipUID: _c.UID);
}
}
public bool GetUidByDevice(string deviceStr, DeviceType DeviceType, out long uid)
{
uid = 0;
bool bDone = true;
MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("GetUidByDevice");
try
{
string query = "SELECT uid from user_devices where device = ?deviceStr ";
using (var command = new MySqlCommand(query, conn))
{
// 设置参数值
command.Parameters.AddWithValue("?deviceStr", deviceStr);
// 执行查询并处理结果
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
uid = reader.GetInt64(0);
}
}
}
if (uid > 0)
{
AppSrv.g_Log.Info($"设备串:{deviceStr} 对应 UID:{uid}");
}
else
{
query = "INSERT INTO `haoyue_emu`.`users` (`nikename`, `regdate`, `lastlogindate`) VALUES (NULL,now(),now());SELECT LAST_INSERT_ID(); ";
using (var command = new MySqlCommand(query, conn))
{
// 设置参数值
// 执行查询并处理结果
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
uid = reader.GetInt64(0);
}
}
}
query = "INSERT INTO `haoyue_emu`.`user_devices` (`device`, `devicetype`, `uid`) VALUES (?deviceStr, ?DeviceType, ?uid);";
using (var command = new MySqlCommand(query, conn))
{
command.Parameters.AddWithValue("?deviceStr", deviceStr);
command.Parameters.AddWithValue("?DeviceType", (int)DeviceType);
command.Parameters.AddWithValue("?uid", uid);
if (command.ExecuteNonQuery() < 1)
bDone = false;
}
AppSrv.g_Log.Info($"创建新账户,设备:{deviceStr},设备类型:{DeviceType.ToString()},是否成功:{bDone}");
}
}
catch (Exception e)
{
bDone = false;
}
Haoyue_SQLPoolManager.EnqueueSQLConn(conn);
if (uid <= 0)
bDone = false;
return bDone;
}
public void UpdateUserData(long uid, ClientInfo _c)
{
MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("UpdateUserData");
try
{
string query = "SELECT account,nikename,regdate,lastlogindate from users where uid = ?uid ";
using (var command = new MySqlCommand(query, conn))
{
// 设置参数值
command.Parameters.AddWithValue("?uid", uid);
// 执行查询并处理结果
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
_c.Account = reader.IsDBNull(0) ? string.Empty : reader.GetString(0);
_c.NickName = reader.IsDBNull(1) ? string.Empty:reader.GetString(1);
_c.LogInDT = DateTime.Now;
_c.RegisterDT = reader.IsDBNull(2) ? DateTime.Now : reader.GetDateTime(2);
_c.LastLogInDT = reader.IsDBNull(3) ? DateTime.Now : reader.GetDateTime(3);
}
}
}
query = "update users set lastlogindate = now() where uid = ?uid ";
using (var command = new MySqlCommand(query, conn))
{
command.Parameters.AddWithValue("?uid", uid);
command.ExecuteNonQuery();
}
}
catch (Exception e)
{
}
Haoyue_SQLPoolManager.EnqueueSQLConn(conn);
}
}
}

View File

@ -2,9 +2,10 @@
using AxibugEmuOnline.Server.Manager;
using AxibugEmuOnline.Server.NetWork;
using AxibugProtobuf;
using MySql.Data.MySqlClient;
using System.Net.Sockets;
using System.Runtime.InteropServices;
using static System.Runtime.CompilerServices.RuntimeHelpers;
using System.Security.Policy;
namespace AxibugEmuOnline.Server
{
@ -94,6 +95,48 @@ namespace AxibugEmuOnline.Server
#endregion
#region
public enum RoomLogType
{
Create = 0,
Join = 1,
Leave = 2
}
public void RoomLog(long uid, int platform, int RoomID, int RomID, RoomLogType state)
{
MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("RoomLog");
try
{
string query = "INSERT INTO `haoyue_emu`.`room_log` (`uid`, `platform`, `romid`,`roomid`, `state`) VALUES ( ?uid, ?platform, ?romid, ?roomid, ?state);";
using (var command = new MySqlCommand(query, conn))
{
// 设置参数值
command.Parameters.AddWithValue("?uid", uid);
command.Parameters.AddWithValue("?platform", platform);
command.Parameters.AddWithValue("?romid", RomID);
command.Parameters.AddWithValue("?roomid", RoomID);
command.Parameters.AddWithValue("?state", state);
command.ExecuteNonQuery();
}
if (state == RoomLogType.Join)
{
query = "update romlist_nes set playcount = playcount + 1 where id = ?romid";
using (var command = new MySqlCommand(query, conn))
{
command.Parameters.AddWithValue("?romid", RomID);
command.ExecuteNonQuery();
}
}
}
catch (Exception e)
{
}
Haoyue_SQLPoolManager.EnqueueSQLConn(conn);
}
#endregion
private Protobuf_Room_MiniInfo GetProtoDataRoom(Data_RoomData room)
{
Protobuf_Room_MiniInfo result = new Protobuf_Room_MiniInfo()
@ -203,6 +246,8 @@ namespace AxibugEmuOnline.Server
SendRoomStepChange(newRoom);
SendRoomUpdateToAll(newRoom.RoomID, 0);
RoomLog(_c.UID, 1, newRoom.RoomID, newRoom.GameRomID, RoomLogType.Create);
}
public void OnCmdRoomJoin(Socket sk, byte[] reqData)
@ -241,6 +286,7 @@ namespace AxibugEmuOnline.Server
SendRoomUpdateToAll(room.RoomID, 0);
}
}
RoomLog(_c.UID, 1, room.RoomID, room.GameRomID, RoomLogType.Join);
}
public void OnCmdRoomLeave(Socket sk, byte[] reqData)
{
@ -305,6 +351,8 @@ namespace AxibugEmuOnline.Server
}
else
SendRoomUpdateToAll(room.RoomID, 0);
RoomLog(_c.UID,1,room.RoomID,room.GameRomID,RoomLogType.Leave);
}
public void OnHostPlayerUpdateStateRaw(Socket sk, byte[] reqData)
@ -783,7 +831,7 @@ namespace AxibugEmuOnline.Server
int oldPlayerCount = GetPlayerCount();
if (GetPlayerUIDByIdx(PlayerNum, out long hadUID))
{
errcode = ErrorCode.ErrorRoomSlotReadlyHadPlayer;
errcode = ErrorCode.ErrorRoomSlotAlreadlyHadPlayer;
return false;
}
AppSrv.g_Log.Debug($"Join _c.UID->{_c.UID} RoomID->{RoomID}");
@ -911,7 +959,7 @@ namespace AxibugEmuOnline.Server
this.ScreenRaw = NextStateRaw;
}
public bool GetNeedForwardTick(uint clientFrame,out long forwaFrame)
public bool GetNeedForwardTick(uint clientFrame, out long forwaFrame)
{
forwaFrame = 0;
//目标帧,客户端+服务器提前量

View File

@ -0,0 +1,81 @@
using AxibugEmuOnline.Server.Common;
using AxibugEmuOnline.Server.Event;
using AxibugEmuOnline.Server.NetWork;
using AxibugProtobuf;
using System.Net.Sockets;
namespace AxibugEmuOnline.Server.Manager
{
public class UserManager
{
public UserManager()
{
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdUserOnlinelist, RecvGetUserList);
//事件
EventSystem.Instance.RegisterEvent<long>(EEvent.OnUserOnline, OnUserJoin);
EventSystem.Instance.RegisterEvent<long>(EEvent.OnUserOffline, OnUserLeave);
}
#region
void OnUserJoin(long UID)
{
AppSrv.g_Log.Debug($"P2PUserManager->OnUserJoin UID->{UID}");
SendUserJoin(UID);
}
void OnUserLeave(long UID)
{
AppSrv.g_Log.Debug($"P2PUserManager->OnUserLeave UID->{UID}");
SendUserLeave(UID);
}
#endregion
public void RecvGetUserList(Socket _socket, byte[] reqData)
{
Protobuf_UserList msg = ProtoBufHelper.DeSerizlize<Protobuf_UserList>(reqData);
ClientInfo _c = AppSrv.g_ClientMgr.GetClientForSocket(_socket);
Protobuf_UserList_RESP respData = new Protobuf_UserList_RESP();
ClientInfo[] cArr = AppSrv.g_ClientMgr.GetOnlineClientList().ToArray();
respData.UserCount = cArr.Length;
for (int i = 0; i < cArr.Length; i++)
{
ClientInfo client = cArr[i];
respData.UserList.Add(new UserMiniInfo()
{
NickName = client.NickName,
UID = client.UID,
});
}
AppSrv.g_Log.Debug($"拉取用户列表->{respData.UserCount}个用户");
AppSrv.g_ClientMgr.ClientSend(_c, (int)CommandID.CmdUserOnlinelist, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(respData));
}
public void SendUserJoin(long UID)
{
ClientInfo _c = AppSrv.g_ClientMgr.GetClientForUID(UID);
if (_c == null)
return;
UserMiniInfo miniInfo = new UserMiniInfo();
miniInfo.NickName = _c.NickName;
UID = _c.UID;
Protobuf_UserJoin_RESP resp = new Protobuf_UserJoin_RESP()
{
UserInfo = miniInfo
};
AppSrv.g_ClientMgr.ClientSendALL((int)CommandID.CmdUserJoin, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(resp));
}
public void SendUserLeave(long UID)
{
Protobuf_UserLeave_RESP resp = new Protobuf_UserLeave_RESP()
{
UID = UID,
};
AppSrv.g_ClientMgr.ClientSendALL((int)CommandID.CmdUserLeave, (int)ErrorCode.ErrorOk, ProtoBufHelper.Serizlize(resp));
}
}
}

View File

@ -16,7 +16,7 @@ namespace AxibugEmuOnline.Server.NetWork
private void ClientNumberChange(int num, AsyncUserToken token)
{
Console.WriteLine("Client数发生变化");
Console.WriteLine($"Client数发生变化 num->{num}");
}
/// <summary>

View File

@ -4,7 +4,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project>
<PropertyGroup>
<History>True|2024-09-14T08:39:29.4677979Z||;True|2024-09-14T16:38:22.2398996+08:00||;True|2024-09-13T13:39:28.9591993+08:00||;True|2024-09-12T17:48:43.1521740+08:00||;True|2024-09-12T17:43:57.0504432+08:00||;True|2024-09-12T17:19:48.6392091+08:00||;True|2024-09-12T13:38:45.0141937+08:00||;False|2024-09-12T13:37:57.6131232+08:00||;True|2024-06-28T16:25:59.3159172+08:00||;True|2024-06-28T15:30:49.8257235+08:00||;</History>
<History>True|2024-11-28T11:58:55.3995125Z||;True|2024-09-14T16:39:29.4677979+08:00||;True|2024-09-14T16:38:22.2398996+08:00||;True|2024-09-13T13:39:28.9591993+08:00||;True|2024-09-12T17:48:43.1521740+08:00||;True|2024-09-12T17:43:57.0504432+08:00||;True|2024-09-12T17:19:48.6392091+08:00||;True|2024-09-12T13:38:45.0141937+08:00||;False|2024-09-12T13:37:57.6131232+08:00||;True|2024-06-28T16:25:59.3159172+08:00||;True|2024-06-28T15:30:49.8257235+08:00||;</History>
<LastFailureDetails />
</PropertyGroup>
</Project>

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,7 @@
using AxibugEmuOnline.Web.Common;
using Microsoft.AspNetCore.Mvc;
using MySql.Data.MySqlClient;
using Mysqlx.Crud;
namespace AxibugEmuOnline.Web.Controllers
{
@ -52,7 +53,6 @@ namespace AxibugEmuOnline.Web.Controllers
break;
}
string query = "SELECT count(id) FROM romlist_nes where `Name` like ?searchPattern " + GameTypeCond;
using (var command = new MySqlCommand(query, conn))
{
@ -70,7 +70,10 @@ namespace AxibugEmuOnline.Web.Controllers
}
}
query = $"SELECT id,`Name`,GameType,Note,RomUrl,ImgUrl,`Hash` FROM romlist_nes where `Name` like ?searchPattern {GameTypeCond} LIMIT ?offset, ?pageSize;";
string HotOrderBy = "ORDER BY playcount DESC, id ASC";
query = $"SELECT id,`Name`,GameType,Note,RomUrl,ImgUrl,`Hash`,`playcount`,`stars` FROM romlist_nes where `Name` like ?searchPattern {GameTypeCond} {HotOrderBy} LIMIT ?offset, ?pageSize;";
using (var command = new MySqlCommand(query, conn))
{
// ÉèÖòÎÊýÖµ
@ -93,7 +96,8 @@ namespace AxibugEmuOnline.Web.Controllers
url = !reader.IsDBNull(4) ? reader.GetString(4) : string.Empty,
imgUrl = !reader.IsDBNull(5) ? reader.GetString(5) : string.Empty,
hash = !reader.IsDBNull(6) ? reader.GetString(6) : string.Empty,
stars = 0,
playcount = reader.GetInt32(7),
stars = reader.GetInt32(8),
});
}
}
@ -103,7 +107,6 @@ namespace AxibugEmuOnline.Web.Controllers
return new JsonResult(resp);
}
[HttpGet]
public JsonResult RomInfo(int Ptype, int RomID)
{
@ -111,7 +114,7 @@ namespace AxibugEmuOnline.Web.Controllers
Resp_RomInfo resp = new Resp_RomInfo();
MySqlConnection conn = Haoyue_SQLPoolManager.DequeueSQLConn("NesRomList");
{
string query = $"SELECT id,`Name`,GameType,Note,RomUrl,ImgUrl,`Hash` FROM romlist_nes where id = ?romid;";
string query = $"SELECT id,`Name`,GameType,Note,RomUrl,ImgUrl,`Hash`,`playcount`,`stars` FROM romlist_nes where id = ?romid;";
using (var command = new MySqlCommand(query, conn))
{
// ÉèÖòÎÊýÖµ
@ -128,7 +131,8 @@ namespace AxibugEmuOnline.Web.Controllers
resp.url = !reader.IsDBNull(4) ? reader.GetString(4) : string.Empty;
resp.imgUrl = !reader.IsDBNull(5) ? reader.GetString(5) : string.Empty;
resp.hash = !reader.IsDBNull(6) ? reader.GetString(6) : string.Empty;
resp.stars = 0;
resp.playcount = reader.GetInt32(7);
resp.stars = reader.GetInt32(8);
}
}
}
@ -194,6 +198,7 @@ namespace AxibugEmuOnline.Web.Controllers
public string imgUrl { get; set; }
public string hash { get; set; }
public int stars { get; set; }
public int playcount { get; set; }
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -12,6 +12,15 @@ enum CommandID
CMD_LOGIN = 2001; // | Protobuf_Login | Protobuf_Login_RESP
CMD_USER_ONLINELIST = 3000; //线 | Protobuf_UserList | Protobuf_UserList_RESP
CMD_USER_JOIN = 3031; //线 Protobuf_UserOnline_RESP
CMD_USER_LEAVE = 3032; //线 Protobuf_UserOffline_RESP
CMD_USER_STATE_UPDATE = 3033; //线 Protobuf_UserState_RESP
CMD_Modify_NickName = 3101; // | Protobuf_Modify_NickName | Protobuf_Modify_NickName_RESP
CMD_Update_SelfUserInfo = 3110; // Protobuf_Update_UserInfo_RESP
CMD_Update_OtherUserInfo = 3112; // Protobuf_Update_OtherUserInfo_RESP
CMD_CHATMSG = 4001; //广 | Protobuf_ChatMsg | Protobuf_ChatMsg_RESP
//
@ -55,6 +64,8 @@ enum CommandID
//
CMD_Screen = 7001; // | 广 Protobuf_Screnn_Frame
CMD_GAME_MARK = 10101; // | Protobuf_Game_Mark | Protobuf_Game_Mark_RESP
}
enum ErrorCode
@ -63,14 +74,19 @@ enum ErrorCode
ERROR_OK = 1; //
ERROR_ROOM_NOT_FOUND = 10;//
ERROR_ROOM_SLOT_READLY_HAD_PLAYER=11;//
ERROR_ROOM_SLOT_ALREADLY_HAD_PLAYER=11;//
ERROR_ROOM_CANT_DO_CURR_STATE =50;//
ERROR_ROM_ALREADY_HAD_STAR =403;//
ERROR_ROM_DONT_HAD_STAR =404;//
}
enum LoginType
{
BaseDefault = 0;//使
UseDevice = 0;//使
UseAccount = 1;//使
UseHaoYueAccount = 2;//使
}
enum DeviceType
@ -82,6 +98,12 @@ enum DeviceType
PSV = 4;
}
enum PlatformType
{
All = 0;
Nes = 1;
}
//enum RoomPlayerState
//{
// None_PlayerState = 0;//
@ -135,16 +157,17 @@ message Protobuf_Pong
//
message Protobuf_Login
{
LoginType loginType = 1;// [0] [3] BF3 [4] BF4
DeviceType deviceType = 2;// [0]PC [1]AndroidPad预留 [3]IPad预留
string Account = 3;//
string Password = 4;//
LoginType loginType = 1;//
DeviceType deviceType = 2;// [0] PC [1] AndroidPad预留 [3] IPad预留
string deviceStr = 3;//
string Account = 4;//
string Password = 5;//
}
//
message Protobuf_Login_RESP
{
string DeviceUUID = 1;//
string NickName = 1;//
string Token = 2;//
string LastLoginDate = 3;//
string RegDate = 4;//
@ -152,6 +175,70 @@ message Protobuf_Login_RESP
int64 UID = 6;
}
//线
message Protobuf_UserList
{
}
//线
message Protobuf_UserList_RESP
{
int32 UserCount = 1;//
repeated UserMiniInfo UserList = 2;//
}
//线
message Protobuf_UserJoin_RESP
{
UserMiniInfo UserInfo = 1;//
}
//线
message Protobuf_UserLeave_RESP
{
int64 UID = 1;//ID
}
//线
message Protobuf_UserState_RESP
{
int64 UID = 1;//ID
int32 State = 2;//
}
message UserMiniInfo
{
int64 UID = 1;//ID
string NickName = 2;//
}
//
message Protobuf_Modify_NickName
{
string NickName = 1;//
}
//
message Protobuf_Modify_NickName_RESP
{
}
//
message Protobuf_Update_UserInfo_RESP
{
UserMiniInfo UserInfo = 1;//
}
//
message Protobuf_Update_OtherUserInfo_RESP
{
int64 UID = 1;//ID
UserMiniInfo UserInfo = 2;//
}
message Protobuf_Room_List
{
@ -277,3 +364,17 @@ message Protobuf_Room_Get_Screen_RESP
int32 FrameID = 2;//
bytes RawBitmap = 3;//
}
message Protobuf_Game_Mark
{
int32 RomID = 1;//RomID
int32 state = 2;//[0] [1]
PlatformType PlatformType = 3;//
}
message Protobuf_Game_Mark_RESP
{
int32 RomID = 1;//RomID
PlatformType PlatformType = 2;//
}

View File

@ -138,8 +138,6 @@ Response:
序列化C#实体类示例
```
class Resp_GameList
{
public int page { get; set; }
@ -148,18 +146,19 @@ Response:
public List<Resp_RomInfo> gameList { get; set; }
}
public class Resp_RomInfo
{
public int orderid { get; set; }
public int id { get; set; }
public string romName { get; set;}
public string gType { get; set; }
public string desc { get; set; }
public string url { get; set; }
public string imgUrl { get; set; }
public string hash { get; set; }
public int stars { get; set; }
}
public class Resp_RomInfo
{
public int orderid { get; set; }
public int id { get; set; }
public string romName { get; set; }
public string gType { get; set; }
public string desc { get; set; }
public string url { get; set; }
public string imgUrl { get; set; }
public string hash { get; set; }
public int stars { get; set; }
public int playcount { get; set; }
}
```

View File

@ -11,12 +11,25 @@
Target Server Version : 100311
File Encoding : 65001
Date: 16/07/2024 10:56:10
Date: 28/11/2024 19:55:49
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for rom_stars
-- ----------------------------
DROP TABLE IF EXISTS `rom_stars`;
CREATE TABLE `rom_stars` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`platform` int(11) NOT NULL,
`romid` int(11) NOT NULL,
`logdate` datetime NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Fixed;
-- ----------------------------
-- Table structure for romlist_nes
-- ----------------------------
@ -29,7 +42,58 @@ CREATE TABLE `romlist_nes` (
`GameType` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`Note` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`Hash` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`playcount` int(11) NOT NULL DEFAULT 0,
`stars` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`Id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 2702 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for room_log
-- ----------------------------
DROP TABLE IF EXISTS `room_log`;
CREATE TABLE `room_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`platform` int(11) NOT NULL,
`romid` int(11) NOT NULL,
`roomid` int(11) NULL DEFAULT NULL,
`state` int(11) NOT NULL,
`logdate` datetime NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Fixed;
-- ----------------------------
-- Table structure for room_log_state
-- ----------------------------
DROP TABLE IF EXISTS `room_log_state`;
CREATE TABLE `room_log_state` (
`id` int(11) NOT NULL,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for user_devices
-- ----------------------------
DROP TABLE IF EXISTS `user_devices`;
CREATE TABLE `user_devices` (
`device` varchar(80) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`devicetype` int(11) NOT NULL,
`uid` int(11) NOT NULL
) ENGINE = MyISAM CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for users
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`uid` int(11) NOT NULL AUTO_INCREMENT,
`account` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`regdate` datetime NOT NULL DEFAULT current_timestamp(),
`nikename` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`lastlogindate` datetime NULL DEFAULT NULL,
PRIMARY KEY (`uid`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 9 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;