Compare commits
8 Commits
def785b3a3
...
b66df94086
Author | SHA1 | Date | |
---|---|---|---|
b66df94086 | |||
|
ad021664db | ||
|
d5be477dd8 | ||
|
7eac4e7586 | ||
|
e1fb708d6e | ||
|
abc68f68c3 | ||
|
c47b241e42 | ||
|
f4adf4e20f |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b17ea495662467846ae5d736a9545fac
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,973 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &29419265480821815
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8126322204359135913}
|
||||||
|
- component: {fileID: 2718916271043989317}
|
||||||
|
- component: {fileID: 3380485461544738227}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Descript
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8126322204359135913
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 29419265480821815}
|
||||||
|
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: 8789823129857705082}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 33}
|
||||||
|
m_Pivot: {x: 0, y: 1}
|
||||||
|
--- !u!222 &2718916271043989317
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 29419265480821815}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &3380485461544738227
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 29419265480821815}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_FontData:
|
||||||
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_FontSize: 20
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_BestFit: 0
|
||||||
|
m_MinSize: 2
|
||||||
|
m_MaxSize: 300
|
||||||
|
m_Alignment: 4
|
||||||
|
m_AlignByGeometry: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_HorizontalOverflow: 1
|
||||||
|
m_VerticalOverflow: 1
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Text: DESCRIPTION
|
||||||
|
--- !u!1 &734025543935719296
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1323634865265500141}
|
||||||
|
- component: {fileID: 5792146190930927166}
|
||||||
|
- component: {fileID: 2619187604372594158}
|
||||||
|
- component: {fileID: 1779247868001543556}
|
||||||
|
- component: {fileID: 4496630961732192070}
|
||||||
|
- component: {fileID: 2059277597780235898}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: shadowIcon
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1323634865265500141
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 734025543935719296}
|
||||||
|
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: 6087025893861054323}
|
||||||
|
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!222 &5792146190930927166
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 734025543935719296}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &2619187604372594158
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 734025543935719296}
|
||||||
|
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: 21300000, guid: 230e155ce0d5a8d4283675d040631efc, 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 &1779247868001543556
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 734025543935719296}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f8b2ed11d675446c5a49da1ea296d490, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Version: 300
|
||||||
|
m_EffectMaterial: {fileID: 21305736874167728, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
|
||||||
|
m_EffectFactor: 0
|
||||||
|
m_ColorFactor: 0
|
||||||
|
m_BlurFactor: 0
|
||||||
|
m_EffectMode: 0
|
||||||
|
m_ColorMode: 1
|
||||||
|
m_BlurMode: 3
|
||||||
|
m_AdvancedBlur: 1
|
||||||
|
m_ShadowBlur: 1
|
||||||
|
m_ShadowStyle: 0
|
||||||
|
m_ShadowColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
m_EffectDistance: {x: 1, y: -1}
|
||||||
|
m_UseGraphicAlpha: 1
|
||||||
|
m_EffectColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_AdditionalShadows: []
|
||||||
|
--- !u!114 &4496630961732192070
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 734025543935719296}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 0848bff101191904ead4bb831f7084db, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_BlurFactor: 1
|
||||||
|
m_Style: 3
|
||||||
|
m_AdditionalShadows: []
|
||||||
|
m_EffectColor: {r: 1, g: 1, b: 1, a: 0}
|
||||||
|
m_EffectDistance: {x: 8, y: 8}
|
||||||
|
m_UseGraphicAlpha: 0
|
||||||
|
--- !u!95 &2059277597780235898
|
||||||
|
Animator:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 734025543935719296}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Avatar: {fileID: 0}
|
||||||
|
m_Controller: {fileID: 9100000, guid: 0b3ccf7414d2ead43be0cd33b6e1b53c, type: 2}
|
||||||
|
m_CullingMode: 0
|
||||||
|
m_UpdateMode: 0
|
||||||
|
m_ApplyRootMotion: 0
|
||||||
|
m_LinearVelocityBlending: 0
|
||||||
|
m_WarningMessage:
|
||||||
|
m_HasTransformHierarchy: 1
|
||||||
|
m_AllowConstantClipSamplingOptimization: 1
|
||||||
|
m_KeepAnimatorControllerStateOnDisable: 0
|
||||||
|
--- !u!1 &1776357407830023228
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 6087025893861054323}
|
||||||
|
- component: {fileID: 7036072602178187444}
|
||||||
|
- component: {fileID: 6771349210554360888}
|
||||||
|
- component: {fileID: 3709368495556978651}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Icon
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &6087025893861054323
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1776357407830023228}
|
||||||
|
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: 1323634865265500141}
|
||||||
|
- {fileID: 331028397738758164}
|
||||||
|
m_Father: {fileID: 8754483333502849411}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 1, y: 0.5}
|
||||||
|
--- !u!222 &7036072602178187444
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1776357407830023228}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &6771349210554360888
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1776357407830023228}
|
||||||
|
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: 21300000, guid: 230e155ce0d5a8d4283675d040631efc, 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 &3709368495556978651
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1776357407830023228}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_IgnoreLayout: 0
|
||||||
|
m_MinWidth: -1
|
||||||
|
m_MinHeight: -1
|
||||||
|
m_PreferredWidth: 144
|
||||||
|
m_PreferredHeight: 104
|
||||||
|
m_FlexibleWidth: -1
|
||||||
|
m_FlexibleHeight: -1
|
||||||
|
m_LayoutPriority: 1
|
||||||
|
--- !u!1 &1813396448589485488
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4467178468921796307}
|
||||||
|
- component: {fileID: 8568189430970172828}
|
||||||
|
- component: {fileID: 6941538197753025297}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: SelectArrow
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &4467178468921796307
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1813396448589485488}
|
||||||
|
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: 331028397738758164}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 0, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 63, y: 70}
|
||||||
|
m_Pivot: {x: 0, y: 0.5}
|
||||||
|
--- !u!222 &8568189430970172828
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1813396448589485488}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &6941538197753025297
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1813396448589485488}
|
||||||
|
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: 0
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: -1023481969782777897, 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!1 &3189920797946144379
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1998281097548910301}
|
||||||
|
- component: {fileID: 5344633969095406978}
|
||||||
|
- component: {fileID: 5700455559359757662}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Room_Template
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1998281097548910301
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3189920797946144379}
|
||||||
|
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: 8754483333502849411}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 144, y: 104}
|
||||||
|
m_Pivot: {x: 0, y: 0.5}
|
||||||
|
--- !u!114 &5344633969095406978
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3189920797946144379}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 13190caeb949d3541bfcb2b2f66b5d45, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
Icon: {fileID: 6771349210554360888}
|
||||||
|
Txt: {fileID: 991446423622995247}
|
||||||
|
Descript: {fileID: 3380485461544738227}
|
||||||
|
Root: {fileID: 8754483333502849411}
|
||||||
|
ShadowIcon: {fileID: 2619187604372594158}
|
||||||
|
InfoNode: {fileID: 5331629140490413834}
|
||||||
|
SubMenuItemGroup: {fileID: 4672405243908051711}
|
||||||
|
SelectScale: 1
|
||||||
|
UnSelectScale: 1
|
||||||
|
RomGroupRoot: {fileID: 3086674949377227884}
|
||||||
|
--- !u!114 &5700455559359757662
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3189920797946144379}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_IgnoreLayout: 0
|
||||||
|
m_MinWidth: -1
|
||||||
|
m_MinHeight: -1
|
||||||
|
m_PreferredWidth: 200
|
||||||
|
m_PreferredHeight: 230
|
||||||
|
m_FlexibleWidth: -1
|
||||||
|
m_FlexibleHeight: -1
|
||||||
|
m_LayoutPriority: 1
|
||||||
|
--- !u!1 &3462611600707696275
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 2303118795734916657}
|
||||||
|
- component: {fileID: 6792036789108903940}
|
||||||
|
- component: {fileID: 4997733671603798451}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: viewport
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &2303118795734916657
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3462611600707696275}
|
||||||
|
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: 8865437771338118001}
|
||||||
|
m_Father: {fileID: 331028397738758164}
|
||||||
|
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!222 &6792036789108903940
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3462611600707696275}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &4997733671603798451
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3462611600707696275}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 0}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 0}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &3811189825355447390
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 331028397738758164}
|
||||||
|
- component: {fileID: 3428297980621487917}
|
||||||
|
- component: {fileID: 4672405243908051711}
|
||||||
|
- component: {fileID: 3086674949377227884}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: RomGroupScroll
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &331028397738758164
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3811189825355447390}
|
||||||
|
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: 2303118795734916657}
|
||||||
|
- {fileID: 4467178468921796307}
|
||||||
|
m_Father: {fileID: 6087025893861054323}
|
||||||
|
m_RootOrder: 1
|
||||||
|
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: 0.000015258789, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0, y: 0.5}
|
||||||
|
--- !u!114 &3428297980621487917
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3811189825355447390}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Content: {fileID: 8865437771338118001}
|
||||||
|
m_Horizontal: 0
|
||||||
|
m_Vertical: 1
|
||||||
|
m_MovementType: 0
|
||||||
|
m_Elasticity: 0.1
|
||||||
|
m_Inertia: 1
|
||||||
|
m_DecelerationRate: 0.135
|
||||||
|
m_ScrollSensitivity: 1
|
||||||
|
m_Viewport: {fileID: 2303118795734916657}
|
||||||
|
m_HorizontalScrollbar: {fileID: 0}
|
||||||
|
m_VerticalScrollbar: {fileID: 0}
|
||||||
|
m_HorizontalScrollbarVisibility: 0
|
||||||
|
m_VerticalScrollbarVisibility: 0
|
||||||
|
m_HorizontalScrollbarSpacing: 0
|
||||||
|
m_VerticalScrollbarSpacing: 0
|
||||||
|
m_OnValueChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
--- !u!114 &4672405243908051711
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3811189825355447390}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 1d1e3e91ac34bc8468f357ee247ffb6a, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
PulseInvoke_Delay: 0.4
|
||||||
|
PulseInvoke_Interval: 0.05
|
||||||
|
m_menuItemRoot: {fileID: 0}
|
||||||
|
SubMenuItemTemplate: {fileID: 0}
|
||||||
|
alphaGroup: {fileID: 0}
|
||||||
|
m_selectItemPosition: {x: 50, y: -51}
|
||||||
|
step: 50
|
||||||
|
splitStep: 200
|
||||||
|
m_selectArrow: {fileID: 4467178468921796307}
|
||||||
|
ArrowOffset: 60
|
||||||
|
WidthFix: 280
|
||||||
|
itemGroup: {fileID: 6055880809428073973}
|
||||||
|
srollRect: {fileID: 3428297980621487917}
|
||||||
|
--- !u!225 &3086674949377227884
|
||||||
|
CanvasGroup:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3811189825355447390}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Alpha: 1
|
||||||
|
m_Interactable: 1
|
||||||
|
m_BlocksRaycasts: 1
|
||||||
|
m_IgnoreParentGroups: 0
|
||||||
|
--- !u!1 &3993825260653792697
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8789823129857705082}
|
||||||
|
- component: {fileID: 3252398029444565139}
|
||||||
|
- component: {fileID: 5331629140490413834}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: InfoNode
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8789823129857705082
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3993825260653792697}
|
||||||
|
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: 6095356919362338847}
|
||||||
|
- {fileID: 8126322204359135913}
|
||||||
|
m_Father: {fileID: 8754483333502849411}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0, y: 0.5}
|
||||||
|
--- !u!114 &3252398029444565139
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3993825260653792697}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Padding:
|
||||||
|
m_Left: 20
|
||||||
|
m_Right: 0
|
||||||
|
m_Top: 0
|
||||||
|
m_Bottom: 0
|
||||||
|
m_ChildAlignment: 3
|
||||||
|
m_Spacing: 0
|
||||||
|
m_ChildForceExpandWidth: 0
|
||||||
|
m_ChildForceExpandHeight: 1
|
||||||
|
m_ChildControlWidth: 1
|
||||||
|
m_ChildControlHeight: 0
|
||||||
|
m_ChildScaleWidth: 0
|
||||||
|
m_ChildScaleHeight: 0
|
||||||
|
m_ReverseArrangement: 0
|
||||||
|
--- !u!225 &5331629140490413834
|
||||||
|
CanvasGroup:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3993825260653792697}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Alpha: 1
|
||||||
|
m_Interactable: 1
|
||||||
|
m_BlocksRaycasts: 1
|
||||||
|
m_IgnoreParentGroups: 0
|
||||||
|
--- !u!1 &5340761592919397836
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 6095356919362338847}
|
||||||
|
- component: {fileID: 7651669947470814669}
|
||||||
|
- component: {fileID: 991446423622995247}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Name
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &6095356919362338847
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5340761592919397836}
|
||||||
|
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: 8789823129857705082}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 33}
|
||||||
|
m_Pivot: {x: 0, y: 1}
|
||||||
|
--- !u!222 &7651669947470814669
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5340761592919397836}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &991446423622995247
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5340761592919397836}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_FontData:
|
||||||
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_FontSize: 20
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_BestFit: 0
|
||||||
|
m_MinSize: 2
|
||||||
|
m_MaxSize: 300
|
||||||
|
m_Alignment: 4
|
||||||
|
m_AlignByGeometry: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_HorizontalOverflow: 1
|
||||||
|
m_VerticalOverflow: 1
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Text: NAME
|
||||||
|
--- !u!1 &6164337287601107676
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8865437771338118001}
|
||||||
|
- component: {fileID: 6055880809428073973}
|
||||||
|
- component: {fileID: 1286529697012677180}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: RomGroup
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8865437771338118001
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6164337287601107676}
|
||||||
|
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: 2303118795734916657}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0, y: 1}
|
||||||
|
--- !u!114 &6055880809428073973
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6164337287601107676}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fdacbe30e88f6a844a435595a4affdbb, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Padding:
|
||||||
|
m_Left: 0
|
||||||
|
m_Right: 0
|
||||||
|
m_Top: 0
|
||||||
|
m_Bottom: 0
|
||||||
|
m_ChildAlignment: 0
|
||||||
|
m_StartCorner: 0
|
||||||
|
m_StartAxis: 0
|
||||||
|
m_CellSize: {x: 500, y: 200}
|
||||||
|
m_Spacing: {x: 0, y: 20}
|
||||||
|
m_Constraint: 1
|
||||||
|
m_ConstraintCount: 1
|
||||||
|
ItemTemplate: {fileID: 1998281097548910301, guid: 0ac8c8821ffacb847b872cdb10e0ac3d, type: 3}
|
||||||
|
ViewRect: {fileID: 2303118795734916657}
|
||||||
|
PauseUpdateView: 0
|
||||||
|
--- !u!114 &1286529697012677180
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6164337287601107676}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_HorizontalFit: 0
|
||||||
|
m_VerticalFit: 2
|
||||||
|
--- !u!1 &8290338740711049006
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8754483333502849411}
|
||||||
|
- component: {fileID: 3637207717728009549}
|
||||||
|
- component: {fileID: 557410003364511780}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Root
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8754483333502849411
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8290338740711049006}
|
||||||
|
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: 6087025893861054323}
|
||||||
|
- {fileID: 8789823129857705082}
|
||||||
|
m_Father: {fileID: 1998281097548910301}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 0, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 130}
|
||||||
|
m_Pivot: {x: 0, y: 0.5}
|
||||||
|
--- !u!114 &3637207717728009549
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8290338740711049006}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Padding:
|
||||||
|
m_Left: 0
|
||||||
|
m_Right: 0
|
||||||
|
m_Top: 0
|
||||||
|
m_Bottom: 0
|
||||||
|
m_ChildAlignment: 3
|
||||||
|
m_Spacing: 0
|
||||||
|
m_ChildForceExpandWidth: 0
|
||||||
|
m_ChildForceExpandHeight: 0
|
||||||
|
m_ChildControlWidth: 1
|
||||||
|
m_ChildControlHeight: 1
|
||||||
|
m_ChildScaleWidth: 0
|
||||||
|
m_ChildScaleHeight: 0
|
||||||
|
m_ReverseArrangement: 0
|
||||||
|
--- !u!114 &557410003364511780
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8290338740711049006}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_HorizontalFit: 2
|
||||||
|
m_VerticalFit: 0
|
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 71eabba88b30a4945b153dbaa6237441
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e9879fcba0e254649a3af3b232352110
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0ac8c8821ffacb847b872cdb10e0ac3d
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
File diff suppressed because it is too large
Load Diff
@ -67,7 +67,7 @@ namespace AxibugEmuOnline.Client.ClientCore
|
|||||||
}
|
}
|
||||||
|
|
||||||
var importNode = GameObject.Find("IMPORTENT");
|
var importNode = GameObject.Find("IMPORTENT");
|
||||||
GameObject.DontDestroyOnLoad(importNode);
|
if (importNode != null) GameObject.DontDestroyOnLoad(importNode);
|
||||||
|
|
||||||
StartCoroutine(AppTickFlow());
|
StartCoroutine(AppTickFlow());
|
||||||
RePullNetInfo();
|
RePullNetInfo();
|
||||||
@ -97,7 +97,7 @@ namespace AxibugEmuOnline.Client.ClientCore
|
|||||||
|
|
||||||
static IEnumerator StartNetInit()
|
static IEnumerator StartNetInit()
|
||||||
{
|
{
|
||||||
if (App.network.isConnected)
|
if (App.network.isConnected)
|
||||||
yield break;
|
yield break;
|
||||||
|
|
||||||
int platform = 0;
|
int platform = 0;
|
||||||
|
@ -59,5 +59,19 @@ namespace AxibugEmuOnline.Client.Common
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public static string FileMD5Hash(byte[] data)
|
||||||
|
{
|
||||||
|
using (var md5 = MD5.Create())
|
||||||
|
{
|
||||||
|
using (var stream = new MemoryStream(data))
|
||||||
|
{
|
||||||
|
var hash = md5.ComputeHash(stream);
|
||||||
|
var sb = new StringBuilder(hash.Length * 2);
|
||||||
|
foreach (var b in hash)
|
||||||
|
sb.AppendFormat("{0:x2}", b);
|
||||||
|
return sb.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,6 @@ namespace AxibugEmuOnline.Client.Common
|
|||||||
public static KeyCode Up => KeyCode.Joystick1Button8;
|
public static KeyCode Up => KeyCode.Joystick1Button8;
|
||||||
public static KeyCode Right => KeyCode.Joystick1Button9;
|
public static KeyCode Right => KeyCode.Joystick1Button9;
|
||||||
public static KeyCode Down => KeyCode.Joystick1Button10;
|
public static KeyCode Down => KeyCode.Joystick1Button10;
|
||||||
public static KeyCode Left => KeyCode.Joystick1Button11
|
public static KeyCode Left => KeyCode.Joystick1Button11;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
8
AxibugEmuOnline.Client/Assets/Script/ControlSchemes.meta
Normal file
8
AxibugEmuOnline.Client/Assets/Script/ControlSchemes.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 04e926e140ae5bc4fa46bd64067261cf
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,55 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace AxibugEmuOnline.Client
|
||||||
|
{
|
||||||
|
public abstract class ControlScheme
|
||||||
|
{
|
||||||
|
private static ControlScheme m_current;
|
||||||
|
public static ControlScheme Current
|
||||||
|
{
|
||||||
|
get => m_current;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
m_current = value;
|
||||||
|
|
||||||
|
Dictionary<KeyCode, EnumCommand> mapper = new Dictionary<KeyCode, EnumCommand>();
|
||||||
|
m_current.SetUIKeys(mapper);
|
||||||
|
CommandDispatcher.Instance.SetKeyMapper(mapper);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Name { get; private set; }
|
||||||
|
|
||||||
|
public virtual void SetUIKeys(Dictionary<KeyCode, EnumCommand> uiKeyMapper)
|
||||||
|
{
|
||||||
|
uiKeyMapper[KeyCode.A] = EnumCommand.SelectItemLeft;
|
||||||
|
uiKeyMapper[KeyCode.D] = EnumCommand.SelectItemRight;
|
||||||
|
uiKeyMapper[KeyCode.W] = EnumCommand.SelectItemUp;
|
||||||
|
uiKeyMapper[KeyCode.S] = EnumCommand.SelectItemDown;
|
||||||
|
uiKeyMapper[KeyCode.K] = EnumCommand.Enter;
|
||||||
|
uiKeyMapper[KeyCode.L] = EnumCommand.Back;
|
||||||
|
uiKeyMapper[KeyCode.I] = EnumCommand.OptionMenu;
|
||||||
|
|
||||||
|
uiKeyMapper[KeyCode.LeftArrow] = EnumCommand.SelectItemLeft;
|
||||||
|
uiKeyMapper[KeyCode.RightArrow] = EnumCommand.SelectItemRight;
|
||||||
|
uiKeyMapper[KeyCode.UpArrow] = EnumCommand.SelectItemUp;
|
||||||
|
uiKeyMapper[KeyCode.DownArrow] = EnumCommand.SelectItemDown;
|
||||||
|
uiKeyMapper[KeyCode.Return] = EnumCommand.Enter;
|
||||||
|
uiKeyMapper[KeyCode.Escape] = EnumCommand.Back;
|
||||||
|
uiKeyMapper[KeyCode.RightShift] = EnumCommand.OptionMenu;
|
||||||
|
uiKeyMapper[KeyCode.LeftShift] = EnumCommand.OptionMenu;
|
||||||
|
|
||||||
|
if (Application.platform == RuntimePlatform.PSP2)
|
||||||
|
{
|
||||||
|
uiKeyMapper[Common.PSVitaKey.Left] = EnumCommand.SelectItemLeft;
|
||||||
|
uiKeyMapper[Common.PSVitaKey.Right] = EnumCommand.SelectItemRight;
|
||||||
|
uiKeyMapper[Common.PSVitaKey.Up] = EnumCommand.SelectItemUp;
|
||||||
|
uiKeyMapper[Common.PSVitaKey.Down] = EnumCommand.SelectItemDown;
|
||||||
|
uiKeyMapper[Common.PSVitaKey.Circle] = EnumCommand.Enter;
|
||||||
|
uiKeyMapper[Common.PSVitaKey.Cross] = EnumCommand.Back;
|
||||||
|
uiKeyMapper[Common.PSVitaKey.Triangle] = EnumCommand.OptionMenu;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c29cb72b155d20a48a3a47a7a05160bd
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,24 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace AxibugEmuOnline.Client
|
||||||
|
{
|
||||||
|
public class NesGamingScheme : ControlScheme
|
||||||
|
{
|
||||||
|
public override void SetUIKeys(Dictionary<KeyCode, EnumCommand> uiKeyMapper)
|
||||||
|
{
|
||||||
|
uiKeyMapper[KeyCode.Escape] = EnumCommand.OptionMenu;
|
||||||
|
|
||||||
|
if (Application.platform == RuntimePlatform.PSP2)
|
||||||
|
{
|
||||||
|
uiKeyMapper[Common.PSVitaKey.L] = EnumCommand.OptionMenu;
|
||||||
|
uiKeyMapper[Common.PSVitaKey.R] = EnumCommand.OptionMenu;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static partial class ControlSchemeSetts
|
||||||
|
{
|
||||||
|
public static NesGamingScheme NES { get; private set; } = new NesGamingScheme();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a90914c97f6349a4e96302cc0ceeeed0
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,18 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace AxibugEmuOnline.Client
|
||||||
|
{
|
||||||
|
|
||||||
|
public class NormalScheme : ControlScheme
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public static partial class ControlSchemeSetts
|
||||||
|
{
|
||||||
|
public static NormalScheme Normal { get; private set; } = new NormalScheme();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d43d5934b9afba14782405dc1b6eb455
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
17
AxibugEmuOnline.Client/Assets/Script/IEmuCore.cs
Normal file
17
AxibugEmuOnline.Client/Assets/Script/IEmuCore.cs
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace AxibugEmuOnline.Client
|
||||||
|
{
|
||||||
|
public interface IEmuCore
|
||||||
|
{
|
||||||
|
object GetState();
|
||||||
|
byte[] GetStateBytes();
|
||||||
|
void LoadState(object state);
|
||||||
|
void LoadStateFromBytes(byte[] data);
|
||||||
|
void Pause();
|
||||||
|
void Resume();
|
||||||
|
void SetupScheme();
|
||||||
|
}
|
||||||
|
}
|
11
AxibugEmuOnline.Client/Assets/Script/IEmuCore.cs.meta
Normal file
11
AxibugEmuOnline.Client/Assets/Script/IEmuCore.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bb293dc53af6e384aaa9f35864fb6605
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -38,7 +38,7 @@ namespace AxibugEmuOnline.Client.Manager
|
|||||||
App.log.Info("登录成功");
|
App.log.Info("登录成功");
|
||||||
App.user.InitMainUserData(App.user.userdata.Account, msg.UID);
|
App.user.InitMainUserData(App.user.userdata.Account, msg.UID);
|
||||||
|
|
||||||
App.log.Info("获取服务器列表");
|
App.log.Info("获取Room列表");
|
||||||
App.roomMgr.SendGetRoomList();
|
App.roomMgr.SendGetRoomList();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -298,7 +298,7 @@ namespace AxibugEmuOnline.Client.Manager
|
|||||||
if (!InRoom)
|
if (!InRoom)
|
||||||
return;
|
return;
|
||||||
_Protobuf_Room_Leave.RoomID = mineRoomMiniInfo.RoomID;
|
_Protobuf_Room_Leave.RoomID = mineRoomMiniInfo.RoomID;
|
||||||
App.log.Info($"创建房间");
|
App.log.Info($"LeavnRoom");
|
||||||
App.network.SendToServer((int)CommandID.CmdRoomLeave, ProtoBufHelper.Serizlize(_Protobuf_Room_Leave));
|
App.network.SendToServer((int)CommandID.CmdRoomLeave, ProtoBufHelper.Serizlize(_Protobuf_Room_Leave));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
callback.Invoke(resp);
|
callback.Invoke(resp);
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerator GetNesRomInfo(int RomID, Action<Resp_RomInfo> callback)
|
public IEnumerator GetNesRomInfo(int RomID, Action<Resp_RomInfo> callback)
|
||||||
{
|
{
|
||||||
UnityWebRequest request = UnityWebRequest.Get($"{WebSiteApi}/RomInfo?PType={PlatformType.Nes}&RomID={RomID}");
|
UnityWebRequest request = UnityWebRequest.Get($"{WebSiteApi}/RomInfo?PType={PlatformType.Nes}&RomID={RomID}");
|
||||||
yield return request.SendWebRequest();
|
yield return request.SendWebRequest();
|
||||||
|
@ -11,12 +11,17 @@ namespace AxibugEmuOnline.Client
|
|||||||
{
|
{
|
||||||
private HttpAPI.Resp_RomInfo webData;
|
private HttpAPI.Resp_RomInfo webData;
|
||||||
private bool hasLocalFile;
|
private bool hasLocalFile;
|
||||||
private string fileName;
|
|
||||||
private EnumPlatform platform;
|
private EnumPlatform platform;
|
||||||
private UnityWebRequest downloadRequest;
|
private UnityWebRequest downloadRequest;
|
||||||
|
|
||||||
|
public bool IsUserRom { get; private set; }
|
||||||
|
|
||||||
/// <summary> 指示该Rom文件的存放路径 </summary>
|
/// <summary> 指示该Rom文件的存放路径 </summary>
|
||||||
public string LocalFilePath => $"{App.PersistentDataPath}/RemoteRoms/{platform}/{fileName}";
|
public string LocalFilePath =>
|
||||||
|
IsUserRom ?
|
||||||
|
$"{App.PersistentDataPath}/UserRoms/{platform}/{FileName}" :
|
||||||
|
$"{App.PersistentDataPath}/RemoteRoms/{platform}/{FileName}";
|
||||||
|
|
||||||
/// <summary> 指示该Rom文件是否已下载完毕 </summary>
|
/// <summary> 指示该Rom文件是否已下载完毕 </summary>
|
||||||
public bool RomReady => hasLocalFile;
|
public bool RomReady => hasLocalFile;
|
||||||
/// <summary> 指示是否正在下载Rom文件 </summary>
|
/// <summary> 指示是否正在下载Rom文件 </summary>
|
||||||
@ -29,14 +34,14 @@ namespace AxibugEmuOnline.Client
|
|||||||
/// <summary> 唯一标识 </summary>
|
/// <summary> 唯一标识 </summary>
|
||||||
public int ID => webData != null ? webData.id : -1;
|
public int ID => webData != null ? webData.id : -1;
|
||||||
/// <summary> 别名 </summary>
|
/// <summary> 别名 </summary>
|
||||||
public string Alias => webData.romName;
|
public string Alias => IsUserRom ? Path.GetFileNameWithoutExtension(FileName) : webData.romName;
|
||||||
/// <summary> 描述 </summary>
|
/// <summary> 描述 </summary>
|
||||||
public string Descript => webData.desc;
|
public string Descript => IsUserRom ? string.Empty : webData.desc;
|
||||||
/// <summary> 小图URL </summary>
|
/// <summary> 小图URL </summary>
|
||||||
public string ImageURL => webData.imgUrl;
|
public string ImageURL => IsUserRom ? string.Empty : webData.imgUrl;
|
||||||
|
|
||||||
/// <summary> 文件名 </summary>
|
/// <summary> 文件名 </summary>
|
||||||
public string FileName => fileName;
|
public string FileName { get; private set; }
|
||||||
/// <summary> 在查询结果中的索引 </summary>
|
/// <summary> 在查询结果中的索引 </summary>
|
||||||
public int Index { get; private set; }
|
public int Index { get; private set; }
|
||||||
/// <summary> 在查询结果中的所在页 </summary>
|
/// <summary> 在查询结果中的所在页 </summary>
|
||||||
@ -74,7 +79,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
|
|
||||||
public byte[] GetRomFileData()
|
public byte[] GetRomFileData()
|
||||||
{
|
{
|
||||||
if (webData == null) throw new Exception("Not Valid Rom");
|
if (!IsUserRom && webData == null) throw new Exception("Not Valid Rom");
|
||||||
if (!RomReady) throw new Exception("Rom File Not Downloaded");
|
if (!RomReady) throw new Exception("Rom File Not Downloaded");
|
||||||
|
|
||||||
var bytes = File.ReadAllBytes(LocalFilePath);
|
var bytes = File.ReadAllBytes(LocalFilePath);
|
||||||
@ -123,8 +128,8 @@ namespace AxibugEmuOnline.Client
|
|||||||
public void SetWebData(HttpAPI.Resp_RomInfo resp_RomInfo)
|
public void SetWebData(HttpAPI.Resp_RomInfo resp_RomInfo)
|
||||||
{
|
{
|
||||||
webData = resp_RomInfo;
|
webData = resp_RomInfo;
|
||||||
fileName = Path.GetFileName(webData.url);
|
FileName = Path.GetFileName(webData.url);
|
||||||
fileName = System.Net.WebUtility.UrlDecode(fileName);
|
FileName = System.Net.WebUtility.UrlDecode(FileName);
|
||||||
|
|
||||||
if (File.Exists(LocalFilePath))
|
if (File.Exists(LocalFilePath))
|
||||||
{
|
{
|
||||||
@ -142,5 +147,15 @@ namespace AxibugEmuOnline.Client
|
|||||||
|
|
||||||
OnInfoFilled?.Invoke();
|
OnInfoFilled?.Invoke();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private RomFile() { }
|
||||||
|
public static RomFile CreateExistRom(EnumPlatform platform, string fileName)
|
||||||
|
{
|
||||||
|
var res = new RomFile();
|
||||||
|
res.IsUserRom = true;
|
||||||
|
res.FileName = fileName;
|
||||||
|
res.hasLocalFile = File.Exists(res.LocalFilePath);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using AxibugEmuOnline.Client.ClientCore;
|
using AxibugEmuOnline.Client.ClientCore;
|
||||||
|
using AxibugEmuOnline.Client.Common;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
@ -30,6 +31,15 @@ namespace AxibugEmuOnline.Client
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public RomFile GetExistRom(string fileName)
|
||||||
|
{
|
||||||
|
var res = RomFile.CreateExistRom(m_platform, fileName);
|
||||||
|
|
||||||
|
nesRomFileNameMapper[res.FileName] = res;
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
public RomFile GetRomFile(string romFileName)
|
public RomFile GetRomFile(string romFileName)
|
||||||
{
|
{
|
||||||
RomFile romFile;
|
RomFile romFile;
|
||||||
@ -107,15 +117,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
|
|
||||||
public static string CalcHash(byte[] data)
|
public static string CalcHash(byte[] data)
|
||||||
{
|
{
|
||||||
return string.Empty; //todo : 等待远程仓库敲定hash算法
|
return Helper.FileMD5Hash(data);
|
||||||
//var hashBytes = MD5.Create().ComputeHash(data);
|
|
||||||
//StringBuilder sb = new StringBuilder();
|
|
||||||
//foreach (byte b in hashBytes)
|
|
||||||
//{
|
|
||||||
// sb.Append(b.ToString("x2"));
|
|
||||||
//}
|
|
||||||
|
|
||||||
//return sb.ToString();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using AxibugEmuOnline.Client.ClientCore;
|
using AxibugEmuOnline.Client.ClientCore;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Xml.Linq;
|
using System.Xml.Linq;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -8,7 +9,7 @@ using VirtualNes.Core.Debug;
|
|||||||
|
|
||||||
namespace AxibugEmuOnline.Client
|
namespace AxibugEmuOnline.Client
|
||||||
{
|
{
|
||||||
public class NesEmulator : MonoBehaviour
|
public class NesEmulator : MonoBehaviour, IEmuCore
|
||||||
{
|
{
|
||||||
public NES NesCore { get; private set; }
|
public NES NesCore { get; private set; }
|
||||||
|
|
||||||
@ -37,7 +38,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
NesCore = null;
|
NesCore = null;
|
||||||
Debug.LogError(ex);
|
App.log.Error(ex.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,7 +80,9 @@ namespace AxibugEmuOnline.Client
|
|||||||
m_bPause = false;
|
m_bPause = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
|
|
||||||
|
[Conditional("UNITY_EDITOR")]
|
||||||
[ContextMenu("ImportNesDB")]
|
[ContextMenu("ImportNesDB")]
|
||||||
public void ImportNesDB()
|
public void ImportNesDB()
|
||||||
{
|
{
|
||||||
@ -103,6 +106,32 @@ namespace AxibugEmuOnline.Client
|
|||||||
UnityEditor.EditorUtility.SetDirty(db);
|
UnityEditor.EditorUtility.SetDirty(db);
|
||||||
UnityEditor.AssetDatabase.SaveAssets();
|
UnityEditor.AssetDatabase.SaveAssets();
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
public void SetupScheme()
|
||||||
|
{
|
||||||
|
ControlScheme.Current = ControlSchemeSetts.NES;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void LoadState(object state)
|
||||||
|
{
|
||||||
|
NesCore.LoadState((State)state);
|
||||||
|
}
|
||||||
|
|
||||||
|
public object GetState()
|
||||||
|
{
|
||||||
|
return NesCore.GetState();
|
||||||
|
}
|
||||||
|
|
||||||
|
public byte[] GetStateBytes()
|
||||||
|
{
|
||||||
|
return NesCore.GetState().ToBytes();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void LoadStateFromBytes(byte[] data)
|
||||||
|
{
|
||||||
|
State st = new State();
|
||||||
|
st.FromByte(data);
|
||||||
|
NesCore.LoadState(st);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -17,39 +18,6 @@ namespace AxibugEmuOnline.Client
|
|||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
Instance = this;
|
Instance = this;
|
||||||
|
|
||||||
m_keyMapper[KeyCode.A] = EnumCommand.SelectItemLeft;
|
|
||||||
m_keyMapper[KeyCode.D] = EnumCommand.SelectItemRight;
|
|
||||||
m_keyMapper[KeyCode.W] = EnumCommand.SelectItemUp;
|
|
||||||
m_keyMapper[KeyCode.S] = EnumCommand.SelectItemDown;
|
|
||||||
m_keyMapper[KeyCode.K] = EnumCommand.Enter;
|
|
||||||
m_keyMapper[KeyCode.L] = EnumCommand.Back;
|
|
||||||
m_keyMapper[KeyCode.I] = EnumCommand.OptionMenu;
|
|
||||||
m_keyMapper[KeyCode.LeftArrow] = EnumCommand.SelectItemLeft;
|
|
||||||
m_keyMapper[KeyCode.RightArrow] = EnumCommand.SelectItemRight;
|
|
||||||
m_keyMapper[KeyCode.UpArrow] = EnumCommand.SelectItemUp;
|
|
||||||
m_keyMapper[KeyCode.DownArrow] = EnumCommand.SelectItemDown;
|
|
||||||
m_keyMapper[KeyCode.Return] = EnumCommand.Enter;
|
|
||||||
m_keyMapper[KeyCode.Escape] = EnumCommand.Back;
|
|
||||||
m_keyMapper[KeyCode.RightShift] = EnumCommand.OptionMenu;
|
|
||||||
m_keyMapper[KeyCode.LeftShift] = EnumCommand.OptionMenu;
|
|
||||||
|
|
||||||
|
|
||||||
if (Application.platform == RuntimePlatform.PSP2)
|
|
||||||
{
|
|
||||||
m_keyMapper[Common.PSVitaKey.Left] = EnumCommand.SelectItemLeft;
|
|
||||||
m_keyMapper[Common.PSVitaKey.Right] = EnumCommand.SelectItemRight;
|
|
||||||
m_keyMapper[Common.PSVitaKey.Up] = EnumCommand.SelectItemUp;
|
|
||||||
m_keyMapper[Common.PSVitaKey.Down] = EnumCommand.SelectItemDown;
|
|
||||||
m_keyMapper[Common.PSVitaKey.Circle] = EnumCommand.Enter;
|
|
||||||
m_keyMapper[Common.PSVitaKey.Cross] = EnumCommand.Back;
|
|
||||||
m_keyMapper[Common.PSVitaKey.Triangle] = EnumCommand.OptionMenu;
|
|
||||||
}
|
|
||||||
//ÊÖ±ú
|
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
@ -105,6 +73,15 @@ namespace AxibugEmuOnline.Client
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_waitMapperSetting != null)
|
||||||
|
m_keyMapper = m_waitMapperSetting;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Dictionary<KeyCode, EnumCommand> m_waitMapperSetting = null;
|
||||||
|
public void SetKeyMapper(Dictionary<KeyCode, EnumCommand> mapper)
|
||||||
|
{
|
||||||
|
m_waitMapperSetting = mapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<CommandExecuter> peekRegister(List<CommandExecuter> results)
|
private List<CommandExecuter> peekRegister(List<CommandExecuter> results)
|
||||||
@ -134,12 +111,14 @@ namespace AxibugEmuOnline.Client
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
public void GetRegisters(out IReadOnlyList<CommandExecuter> normal, out IReadOnlyList<CommandExecuter> alone)
|
public void GetRegisters(out IReadOnlyList<CommandExecuter> normal, out IReadOnlyList<CommandExecuter> alone)
|
||||||
{
|
{
|
||||||
normal = m_register;
|
normal = m_register;
|
||||||
alone = m_registerHigh;
|
alone = m_registerHigh;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
using AxibugEmuOnline.Client.ClientCore;
|
using AxibugEmuOnline.Client.ClientCore;
|
||||||
using AxibugEmuOnline.Client.Event;
|
using AxibugEmuOnline.Client.Event;
|
||||||
using AxibugEmuOnline.Client.Manager;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using VirtualNes.Core;
|
|
||||||
|
|
||||||
namespace AxibugEmuOnline.Client
|
namespace AxibugEmuOnline.Client
|
||||||
{
|
{
|
||||||
@ -18,7 +15,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
public bool IsOnline => App.roomMgr.RoomState > AxibugProtobuf.RoomGameState.OnlyHost;
|
public bool IsOnline => App.roomMgr.RoomState > AxibugProtobuf.RoomGameState.OnlyHost;
|
||||||
|
|
||||||
private RomFile m_rom;
|
private RomFile m_rom;
|
||||||
private object m_core;
|
public IEmuCore Core { get; private set; }
|
||||||
private object m_state;
|
private object m_state;
|
||||||
|
|
||||||
private List<OptionMenu> menus = new List<OptionMenu>();
|
private List<OptionMenu> menus = new List<OptionMenu>();
|
||||||
@ -43,11 +40,6 @@ namespace AxibugEmuOnline.Client
|
|||||||
Instance = null;
|
Instance = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 获取模拟器核心对象
|
|
||||||
/// </summary>
|
|
||||||
/// <typeparam name="T">模拟器核心对象类型</typeparam>
|
|
||||||
public T GetCore<T>() => (T)m_core;
|
|
||||||
/// <summary> ±£´æ¿ìËÙ¿ìÕÕ </summary>
|
/// <summary> ±£´æ¿ìËÙ¿ìÕÕ </summary>
|
||||||
public void SaveQuickState(object state)
|
public void SaveQuickState(object state)
|
||||||
{
|
{
|
||||||
@ -58,27 +50,17 @@ namespace AxibugEmuOnline.Client
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <typeparam name="T"></typeparam>
|
/// <typeparam name="T"></typeparam>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public bool GetQuickState<T>(out T state)
|
public object GetQuickState()
|
||||||
{
|
{
|
||||||
state = default(T);
|
return m_state;
|
||||||
|
|
||||||
if (m_state is T)
|
|
||||||
{
|
|
||||||
state = (T)m_state;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Show(RomFile currentRom, object core)
|
public void Show(RomFile currentRom, IEmuCore core)
|
||||||
{
|
{
|
||||||
CommandDispatcher.Instance.RegistController(this);
|
CommandDispatcher.Instance.RegistController(this);
|
||||||
|
|
||||||
m_rom = currentRom;
|
m_rom = currentRom;
|
||||||
m_core = core;
|
Core = core;
|
||||||
m_stepPerformer.Reset();
|
m_stepPerformer.Reset();
|
||||||
|
|
||||||
if (App.user.IsLoggedIn)
|
if (App.user.IsLoggedIn)
|
||||||
@ -113,6 +95,8 @@ namespace AxibugEmuOnline.Client
|
|||||||
Eventer.Instance.UnregisterEvent<int>(EEvent.OnRoomWaitStepChange, OnServerStepUpdate);
|
Eventer.Instance.UnregisterEvent<int>(EEvent.OnRoomWaitStepChange, OnServerStepUpdate);
|
||||||
App.roomMgr.SendLeavnRoom();
|
App.roomMgr.SendLeavnRoom();
|
||||||
App.emu.StopGame();
|
App.emu.StopGame();
|
||||||
|
|
||||||
|
ControlScheme.Current = ControlSchemeSetts.Normal;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,15 +17,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
public override void OnExcute()
|
public override void OnExcute()
|
||||||
{
|
{
|
||||||
Stopwatch sw = Stopwatch.StartNew();
|
Stopwatch sw = Stopwatch.StartNew();
|
||||||
switch (m_gameUI.RomFile.Platform)
|
m_gameUI.Core.LoadState(m_gameUI.GetQuickState());
|
||||||
{
|
|
||||||
case EnumPlatform.NES:
|
|
||||||
if (m_gameUI.GetQuickState<State>(out var quickState))
|
|
||||||
{
|
|
||||||
m_gameUI.GetCore<NesEmulator>().NesCore.LoadState(quickState);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
sw.Stop();
|
sw.Stop();
|
||||||
App.log.Info($"{m_gameUI.RomFile.Platform}====>快照加载耗时:{sw.Elapsed.TotalMilliseconds}ms");
|
App.log.Info($"{m_gameUI.RomFile.Platform}====>快照加载耗时:{sw.Elapsed.TotalMilliseconds}ms");
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using AxibugEmuOnline.Client.ClientCore;
|
using AxibugEmuOnline.Client.ClientCore;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
using System.Security.Cryptography;
|
using System.Security.Cryptography;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
@ -19,13 +20,8 @@ namespace AxibugEmuOnline.Client
|
|||||||
public override void OnExcute()
|
public override void OnExcute()
|
||||||
{
|
{
|
||||||
Stopwatch sw = Stopwatch.StartNew();
|
Stopwatch sw = Stopwatch.StartNew();
|
||||||
switch (m_gameUI.RomFile.Platform)
|
object state = m_gameUI.Core.GetState();
|
||||||
{
|
m_gameUI.SaveQuickState(state);
|
||||||
case EnumPlatform.NES:
|
|
||||||
var state = m_gameUI.GetCore<NesEmulator>().NesCore.GetState();
|
|
||||||
m_gameUI.SaveQuickState(state);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
sw.Stop();
|
sw.Stop();
|
||||||
App.log.Info($"{m_gameUI.RomFile.Platform}====>获取快照耗时:{sw.Elapsed.TotalMilliseconds}ms");
|
App.log.Info($"{m_gameUI.RomFile.Platform}====>获取快照耗时:{sw.Elapsed.TotalMilliseconds}ms");
|
||||||
}
|
}
|
||||||
|
@ -26,22 +26,14 @@ namespace AxibugEmuOnline.Client
|
|||||||
PauseCore();
|
PauseCore();
|
||||||
if (App.roomMgr.IsHost)
|
if (App.roomMgr.IsHost)
|
||||||
{
|
{
|
||||||
if (m_inGameUI.RomFile.Platform == EnumPlatform.NES)
|
var stateRaw = m_inGameUI.Core.GetStateBytes();
|
||||||
{
|
App.roomMgr.SendHostRaw(stateRaw);
|
||||||
var stateRaw = m_inGameUI.GetCore<NesEmulator>().NesCore.GetState().ToBytes();
|
|
||||||
App.roomMgr.SendHostRaw(stateRaw);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
//加载存档并发送Ready通知
|
//加载存档并发送Ready通知
|
||||||
case 1:
|
case 1:
|
||||||
PauseCore();
|
PauseCore();
|
||||||
var state = new State();
|
m_inGameUI.Core.LoadStateFromBytes(App.roomMgr.RawData);
|
||||||
state.FromByte(App.roomMgr.RawData);
|
|
||||||
if (m_inGameUI.RomFile.Platform == EnumPlatform.NES)
|
|
||||||
{
|
|
||||||
m_inGameUI.GetCore<NesEmulator>().NesCore.LoadState(state);
|
|
||||||
}
|
|
||||||
App.roomMgr.SendRoomPlayerReady();
|
App.roomMgr.SendRoomPlayerReady();
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
@ -53,18 +45,12 @@ namespace AxibugEmuOnline.Client
|
|||||||
|
|
||||||
private void PauseCore()
|
private void PauseCore()
|
||||||
{
|
{
|
||||||
if (m_inGameUI.RomFile.Platform == EnumPlatform.NES)
|
m_inGameUI.Core.Pause();
|
||||||
{
|
|
||||||
m_inGameUI.GetCore<NesEmulator>().Pause();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ResumeCore()
|
private void ResumeCore()
|
||||||
{
|
{
|
||||||
if (m_inGameUI.RomFile.Platform == EnumPlatform.NES)
|
m_inGameUI.Core.Resume();
|
||||||
{
|
|
||||||
m_inGameUI.GetCore<NesEmulator>().Resume();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void Reset()
|
internal void Reset()
|
||||||
|
@ -33,6 +33,11 @@ namespace AxibugEmuOnline.Client
|
|||||||
MainMenu.ListenControlAction = true;
|
MainMenu.ListenControlAction = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
ControlScheme.Current = ControlSchemeSetts.Normal;
|
||||||
|
}
|
||||||
|
|
||||||
public void HideMainMenu()
|
public void HideMainMenu()
|
||||||
{
|
{
|
||||||
BG.gameObject.SetActiveEx(false);
|
BG.gameObject.SetActiveEx(false);
|
||||||
|
@ -20,6 +20,8 @@ namespace AxibugEmuOnline.Client.UI
|
|||||||
List<MenuData> MenuSetting;
|
List<MenuData> MenuSetting;
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
float HoriRollSpd = 1f;
|
float HoriRollSpd = 1f;
|
||||||
|
[SerializeField]
|
||||||
|
int InitSelect = -1;
|
||||||
|
|
||||||
private RectTransform groupRootRect => m_menuItemRoot as RectTransform;
|
private RectTransform groupRootRect => m_menuItemRoot as RectTransform;
|
||||||
|
|
||||||
@ -27,16 +29,21 @@ namespace AxibugEmuOnline.Client.UI
|
|||||||
private List<CanvasGroup> m_runtimeMenuUICanvas;
|
private List<CanvasGroup> m_runtimeMenuUICanvas;
|
||||||
private Sequence seq;
|
private Sequence seq;
|
||||||
|
|
||||||
|
|
||||||
protected override void Start()
|
protected override void Start()
|
||||||
{
|
{
|
||||||
base.Start();
|
base.Start();
|
||||||
|
|
||||||
m_runtimeMenuUICanvas = m_runtimeMenuUI.Select(menu => menu.gameObject.AddComponent<CanvasGroup>()).ToList();
|
m_runtimeMenuUICanvas = m_runtimeMenuUI.Select(menu => menu.gameObject.AddComponent<CanvasGroup>()).ToList();
|
||||||
m_runtimeMenuUICanvas.ForEach(canv => canv.gameObject.AddComponent<AutoRaycastCanvasGroup>());
|
m_runtimeMenuUICanvas.ForEach(canv => canv.gameObject.AddComponent<AutoRaycastCanvasGroup>());
|
||||||
|
|
||||||
|
if (InitSelect != -1)
|
||||||
|
{
|
||||||
|
m_selectIndex = InitSelect;
|
||||||
|
PlaySelectItemAnim(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
public override void Init(List<MenuData> menuDataList)
|
public override void Init(List<MenuData> menuDataList) { }
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public void EnterDetailState()
|
public void EnterDetailState()
|
||||||
{
|
{
|
||||||
@ -58,7 +65,6 @@ namespace AxibugEmuOnline.Client.UI
|
|||||||
);
|
);
|
||||||
|
|
||||||
seq.Play();
|
seq.Play();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ExitDetailState()
|
public void ExitDetailState()
|
||||||
@ -84,6 +90,11 @@ namespace AxibugEmuOnline.Client.UI
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnSelectMenuChanged()
|
protected override void OnSelectMenuChanged()
|
||||||
|
{
|
||||||
|
PlaySelectItemAnim(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PlaySelectItemAnim(bool useAnim)
|
||||||
{
|
{
|
||||||
var step = GroupRoot.spacing;
|
var step = GroupRoot.spacing;
|
||||||
var needSelectItem = m_runtimeMenuUI[SelectIndex];
|
var needSelectItem = m_runtimeMenuUI[SelectIndex];
|
||||||
@ -100,12 +111,19 @@ namespace AxibugEmuOnline.Client.UI
|
|||||||
item.SetSelectState(i == SelectIndex);
|
item.SetSelectState(i == SelectIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
rollTween = DOTween.To(
|
if (useAnim)
|
||||||
() => groupRootRect.anchoredPosition,
|
{
|
||||||
(x) => groupRootRect.anchoredPosition = x,
|
rollTween = DOTween.To(
|
||||||
targetPosition,
|
() => groupRootRect.anchoredPosition,
|
||||||
HoriRollSpd)
|
(x) => groupRootRect.anchoredPosition = x,
|
||||||
.SetSpeedBased();
|
targetPosition,
|
||||||
|
HoriRollSpd)
|
||||||
|
.SetSpeedBased();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
groupRootRect.anchoredPosition = targetPosition;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnCmdSelectItemLeft()
|
protected override void OnCmdSelectItemLeft()
|
||||||
|
@ -110,6 +110,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ControlScheme m_lastCS;
|
||||||
public void Pop(List<OptionMenu> menus, int defaultIndex = 0)
|
public void Pop(List<OptionMenu> menus, int defaultIndex = 0)
|
||||||
{
|
{
|
||||||
ReleaseRuntimeMenus();
|
ReleaseRuntimeMenus();
|
||||||
@ -144,13 +145,17 @@ namespace AxibugEmuOnline.Client
|
|||||||
0.3f
|
0.3f
|
||||||
).SetEase(Ease.OutCubic);
|
).SetEase(Ease.OutCubic);
|
||||||
|
|
||||||
|
m_lastCS = ControlScheme.Current;
|
||||||
|
ControlScheme.Current = ControlSchemeSetts.Normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Hide()
|
public void Hide()
|
||||||
{
|
{
|
||||||
if (m_bPoped)
|
if (m_bPoped)
|
||||||
{
|
{
|
||||||
|
ReleaseRuntimeMenus();
|
||||||
m_runtimeMenuItems.Clear();
|
m_runtimeMenuItems.Clear();
|
||||||
|
|
||||||
SelectBorder.gameObject.SetActiveEx(false);
|
SelectBorder.gameObject.SetActiveEx(false);
|
||||||
@ -171,6 +176,8 @@ namespace AxibugEmuOnline.Client
|
|||||||
).SetEase(Ease.OutCubic);
|
).SetEase(Ease.OutCubic);
|
||||||
|
|
||||||
m_bPoped = false;
|
m_bPoped = false;
|
||||||
|
|
||||||
|
ControlScheme.Current = m_lastCS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,6 +82,8 @@ namespace AxibugEmuOnline.Client
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
//加载一个用户自己提供的Rom时,使用这个方法
|
||||||
|
//App.emu.BeginGame(App.nesRomLib.GetExistRom("bad_apple_2_5.nes"));
|
||||||
App.emu.BeginGame(m_romfile);
|
App.emu.BeginGame(m_romfile);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -1,20 +1,15 @@
|
|||||||
|
using AxibugEmuOnline.Client.ClientCore;
|
||||||
using AxibugEmuOnline.Client.UI;
|
using AxibugEmuOnline.Client.UI;
|
||||||
using DG.Tweening;
|
using Codice.Client.Common;
|
||||||
using DG.Tweening.Core;
|
using System;
|
||||||
using DG.Tweening.Plugins.Options;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using App = AxibugEmuOnline.Client.ClientCore.App;
|
|
||||||
|
|
||||||
namespace AxibugEmuOnline.Client
|
namespace AxibugEmuOnline.Client
|
||||||
{
|
{
|
||||||
public class RomListMenuItem : MenuItem
|
public class RomListMenuItem : VirtualSubMenuItem
|
||||||
{
|
{
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
CanvasGroup RomGroupRoot;
|
protected EnumPlatform Platform;
|
||||||
[SerializeField]
|
|
||||||
EnumPlatform Platform;
|
|
||||||
|
|
||||||
private TweenerCore<float, float, FloatOptions> m_showTween;
|
|
||||||
|
|
||||||
private RomLib RomLib
|
private RomLib RomLib
|
||||||
{
|
{
|
||||||
@ -30,77 +25,9 @@ namespace AxibugEmuOnline.Client
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Awake()
|
protected override void GetVirtualListDatas(Action<object> datas)
|
||||||
{
|
{
|
||||||
base.Awake();
|
RomLib.FetchRomCount((roms) => datas.Invoke(roms));
|
||||||
|
|
||||||
RomGroupRoot.gameObject.SetActive(false);
|
|
||||||
RomGroupRoot.alpha = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void SetSelectState(bool selected)
|
|
||||||
{
|
|
||||||
if (m_select == selected) return;
|
|
||||||
|
|
||||||
m_select = selected;
|
|
||||||
|
|
||||||
if (ShadowIcon != null) ShadowIcon.gameObject.SetActiveEx(selected);
|
|
||||||
|
|
||||||
if (progressTween != null) { progressTween.Kill(); progressTween = null; }
|
|
||||||
|
|
||||||
progressTween = DOTween.To(() => m_progress, (x) => m_progress = x, m_select ? 1 : 0, 5)
|
|
||||||
.SetSpeedBased().OnUpdate(() =>
|
|
||||||
{
|
|
||||||
if (InfoNode != null) InfoNode.alpha = m_progress;
|
|
||||||
|
|
||||||
Root.localScale = Vector3.one * Mathf.Lerp(UnSelectScale, SelectScale, m_progress);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public override bool OnEnterItem()
|
|
||||||
{
|
|
||||||
RomGroupRoot.gameObject.SetActive(true);
|
|
||||||
RomGroupRoot.alpha = 0;
|
|
||||||
|
|
||||||
if (m_showTween != null)
|
|
||||||
{
|
|
||||||
m_showTween.Kill();
|
|
||||||
m_showTween = null;
|
|
||||||
}
|
|
||||||
m_showTween = DOTween.To(() => RomGroupRoot.alpha, (x) => RomGroupRoot.alpha = x, 1, 0.2f);
|
|
||||||
|
|
||||||
var thirdMenuGroup = SubMenuItemGroup as ThirdMenuRoot;
|
|
||||||
thirdMenuGroup.itemGroup.Clear();
|
|
||||||
RomLib.FetchRomCount((roms) =>
|
|
||||||
{
|
|
||||||
var thirdMenuGroup = SubMenuItemGroup as ThirdMenuRoot;
|
|
||||||
thirdMenuGroup.itemGroup.UpdateDependencyProperty(thirdMenuGroup);
|
|
||||||
thirdMenuGroup.itemGroup.SetData(roms);
|
|
||||||
thirdMenuGroup.itemGroup.UpdateProxyVisualState();
|
|
||||||
thirdMenuGroup.ResetToFirst();
|
|
||||||
});
|
|
||||||
|
|
||||||
if (SubMenuItemGroup != null) SubMenuItemGroup.SetSelect(true);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override bool OnExitItem()
|
|
||||||
{
|
|
||||||
if (m_showTween != null)
|
|
||||||
{
|
|
||||||
m_showTween.Kill();
|
|
||||||
m_showTween = null;
|
|
||||||
}
|
|
||||||
m_showTween = DOTween.To(() => RomGroupRoot.alpha, (x) => RomGroupRoot.alpha = x, 0, 0.2f)
|
|
||||||
.OnComplete(() =>
|
|
||||||
{
|
|
||||||
RomGroupRoot.gameObject.SetActive(false);
|
|
||||||
});
|
|
||||||
|
|
||||||
if (SubMenuItemGroup != null) SubMenuItemGroup.SetSelect(false);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
91
AxibugEmuOnline.Client/Assets/Script/UI/RoomItem.cs
Normal file
91
AxibugEmuOnline.Client/Assets/Script/UI/RoomItem.cs
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
using AxibugEmuOnline.Client.ClientCore;
|
||||||
|
using AxibugEmuOnline.Client.UI;
|
||||||
|
using AxibugProtobuf;
|
||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace AxibugEmuOnline.Client
|
||||||
|
{
|
||||||
|
public class RoomItem : MenuItem, IVirtualItem
|
||||||
|
{
|
||||||
|
[SerializeField]
|
||||||
|
Image m_roomPreview;
|
||||||
|
[SerializeField]
|
||||||
|
Slider m_downloadProgress;
|
||||||
|
[SerializeField]
|
||||||
|
GameObject m_downloadingFlag;
|
||||||
|
[SerializeField]
|
||||||
|
GameObject m_romReadyFlag;
|
||||||
|
|
||||||
|
private RomFile m_romFile;
|
||||||
|
|
||||||
|
public int Index { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public void SetData(object data)
|
||||||
|
{
|
||||||
|
if (data is Protobuf_Room_MiniInfo roomInfo)
|
||||||
|
{
|
||||||
|
var hostNick = roomInfo.GetHostNickName();
|
||||||
|
roomInfo.GetRoomPlayers(out var cur, out var max);
|
||||||
|
SetBaseInfo(string.Empty, $"<b>{hostNick}</b>ľÄˇżźä - {cur}/{max}");
|
||||||
|
SetIcon(null);
|
||||||
|
|
||||||
|
roomInfo.FetchRomFileInRoomInfo(EnumPlatform.NES, (romFile) =>
|
||||||
|
{
|
||||||
|
m_romFile = romFile;
|
||||||
|
|
||||||
|
if (romFile.ID == roomInfo.GameRomID)
|
||||||
|
Txt.text = romFile.Alias;
|
||||||
|
|
||||||
|
UpdateRomInfoView();
|
||||||
|
App.CacheMgr.GetSpriteCache(romFile.ImageURL, OnGetRomImage);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
UpdateRomInfoView();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateRomInfoView()
|
||||||
|
{
|
||||||
|
float? downloadingProgress = null;
|
||||||
|
bool romReady = false;
|
||||||
|
|
||||||
|
if (m_romFile != null)
|
||||||
|
{
|
||||||
|
if (m_romFile.IsDownloading)
|
||||||
|
downloadingProgress = m_romFile.Progress;
|
||||||
|
if (m_romFile.RomReady)
|
||||||
|
romReady = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_downloadingFlag.SetActiveEx(downloadingProgress.HasValue);
|
||||||
|
if (downloadingProgress.HasValue)
|
||||||
|
m_downloadProgress.value = downloadingProgress.Value;
|
||||||
|
|
||||||
|
m_romReadyFlag.SetActiveEx(romReady);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnGetRomImage(Sprite sprite, string url)
|
||||||
|
{
|
||||||
|
if (m_romFile == null) return;
|
||||||
|
if (m_romFile.ImageURL != url) return;
|
||||||
|
|
||||||
|
SetIcon(sprite);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetDependencyProperty(object data)
|
||||||
|
{
|
||||||
|
SetSelectState(data is ThirdMenuRoot tr && tr.SelectIndex == Index);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Release()
|
||||||
|
{
|
||||||
|
Reset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
11
AxibugEmuOnline.Client/Assets/Script/UI/RoomItem.cs.meta
Normal file
11
AxibugEmuOnline.Client/Assets/Script/UI/RoomItem.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 321002db0a5429f4da7529d85c93799c
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
34
AxibugEmuOnline.Client/Assets/Script/UI/RoomListMenuItem.cs
Normal file
34
AxibugEmuOnline.Client/Assets/Script/UI/RoomListMenuItem.cs
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
using AxibugEmuOnline.Client.ClientCore;
|
||||||
|
using AxibugProtobuf;
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace AxibugEmuOnline.Client
|
||||||
|
{
|
||||||
|
public class RoomListMenuItem : VirtualSubMenuItem
|
||||||
|
{
|
||||||
|
protected override void GetVirtualListDatas(Action<object> datas)
|
||||||
|
{
|
||||||
|
App.StartCoroutine(Test(datas));
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator Test(Action<object> datas)
|
||||||
|
{
|
||||||
|
yield return null;
|
||||||
|
|
||||||
|
List<Protobuf_Room_MiniInfo> fakeData = new List<Protobuf_Room_MiniInfo>()
|
||||||
|
{
|
||||||
|
new Protobuf_Room_MiniInfo{ GameRomID = 1, RoomID = 1, HostPlayerUID = 1, Player1UID = 1, Player1NickName = "Test1"},
|
||||||
|
new Protobuf_Room_MiniInfo{ GameRomID = 2, RoomID = 2, HostPlayerUID = 2, Player1UID = 2, Player1NickName = "Test2"},
|
||||||
|
new Protobuf_Room_MiniInfo{ GameRomID = 3, RoomID = 3, HostPlayerUID = 3, Player1UID = 3, Player1NickName = "Test3"},
|
||||||
|
new Protobuf_Room_MiniInfo{ GameRomID = 4, RoomID = 4, HostPlayerUID = 4, Player1UID = 4, Player1NickName = "Test4"},
|
||||||
|
new Protobuf_Room_MiniInfo{ GameRomID = 5, RoomID = 5, HostPlayerUID = 5, Player1UID = 5, Player1NickName = "Test5"},
|
||||||
|
};
|
||||||
|
|
||||||
|
datas.Invoke(fakeData);
|
||||||
|
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 13190caeb949d3541bfcb2b2f66b5d45
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -86,8 +86,8 @@ namespace AxibugEmuOnline.Client
|
|||||||
{
|
{
|
||||||
Vector2 itemPos = itemGroup.GetItemAnchorePos(index);
|
Vector2 itemPos = itemGroup.GetItemAnchorePos(index);
|
||||||
|
|
||||||
Vector3[] corners = new Vector3[4];
|
|
||||||
Vector2 targetPos = itemGroup.transform.InverseTransformPoint(m_selectArrow.position);
|
Vector2 targetPos = itemGroup.transform.InverseTransformPoint(m_selectArrow.position);
|
||||||
|
Vector3[] corners = new Vector3[4];
|
||||||
itemGroup.RectTransform.GetLocalCorners(corners);
|
itemGroup.RectTransform.GetLocalCorners(corners);
|
||||||
targetPos = targetPos - (Vector2)corners[1];
|
targetPos = targetPos - (Vector2)corners[1];
|
||||||
|
|
||||||
|
@ -0,0 +1,98 @@
|
|||||||
|
using AxibugEmuOnline.Client.UI;
|
||||||
|
using DG.Tweening;
|
||||||
|
using DG.Tweening.Core;
|
||||||
|
using DG.Tweening.Plugins.Options;
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using VirtualNes.Core;
|
||||||
|
using App = AxibugEmuOnline.Client.ClientCore.App;
|
||||||
|
|
||||||
|
namespace AxibugEmuOnline.Client
|
||||||
|
{
|
||||||
|
public abstract class VirtualSubMenuItem : MenuItem
|
||||||
|
{
|
||||||
|
[SerializeField]
|
||||||
|
protected CanvasGroup RomGroupRoot;
|
||||||
|
|
||||||
|
|
||||||
|
private TweenerCore<float, float, FloatOptions> m_showTween;
|
||||||
|
|
||||||
|
protected override void Awake()
|
||||||
|
{
|
||||||
|
base.Awake();
|
||||||
|
|
||||||
|
RomGroupRoot.gameObject.SetActive(false);
|
||||||
|
RomGroupRoot.alpha = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void SetSelectState(bool selected)
|
||||||
|
{
|
||||||
|
if (m_select == selected) return;
|
||||||
|
|
||||||
|
m_select = selected;
|
||||||
|
|
||||||
|
if (ShadowIcon != null) ShadowIcon.gameObject.SetActiveEx(selected);
|
||||||
|
|
||||||
|
if (progressTween != null) { progressTween.Kill(); progressTween = null; }
|
||||||
|
|
||||||
|
progressTween = DOTween.To(() => m_progress, (x) => m_progress = x, m_select ? 1 : 0, 5)
|
||||||
|
.SetSpeedBased().OnUpdate(() =>
|
||||||
|
{
|
||||||
|
if (InfoNode != null) InfoNode.alpha = m_progress;
|
||||||
|
|
||||||
|
Root.localScale = Vector3.one * Mathf.Lerp(UnSelectScale, SelectScale, m_progress);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool OnEnterItem()
|
||||||
|
{
|
||||||
|
RomGroupRoot.gameObject.SetActive(true);
|
||||||
|
RomGroupRoot.alpha = 0;
|
||||||
|
|
||||||
|
if (m_showTween != null)
|
||||||
|
{
|
||||||
|
m_showTween.Kill();
|
||||||
|
m_showTween = null;
|
||||||
|
}
|
||||||
|
m_showTween = DOTween.To(() => RomGroupRoot.alpha, (x) => RomGroupRoot.alpha = x, 1, 0.2f);
|
||||||
|
|
||||||
|
var thirdMenuGroup = SubMenuItemGroup as ThirdMenuRoot;
|
||||||
|
thirdMenuGroup.itemGroup.Clear();
|
||||||
|
|
||||||
|
GetVirtualListDatas((datas) =>
|
||||||
|
{
|
||||||
|
var thirdMenuGroup = SubMenuItemGroup as ThirdMenuRoot;
|
||||||
|
thirdMenuGroup.itemGroup.UpdateDependencyProperty(thirdMenuGroup);
|
||||||
|
thirdMenuGroup.itemGroup.SetData(datas);
|
||||||
|
thirdMenuGroup.itemGroup.UpdateProxyVisualState();
|
||||||
|
thirdMenuGroup.ResetToFirst();
|
||||||
|
});
|
||||||
|
|
||||||
|
if (SubMenuItemGroup != null) SubMenuItemGroup.SetSelect(true);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected abstract void GetVirtualListDatas(Action<object> datas);
|
||||||
|
|
||||||
|
public override bool OnExitItem()
|
||||||
|
{
|
||||||
|
if (m_showTween != null)
|
||||||
|
{
|
||||||
|
m_showTween.Kill();
|
||||||
|
m_showTween = null;
|
||||||
|
}
|
||||||
|
m_showTween = DOTween.To(() => RomGroupRoot.alpha, (x) => RomGroupRoot.alpha = x, 0, 0.2f)
|
||||||
|
.OnComplete(() =>
|
||||||
|
{
|
||||||
|
RomGroupRoot.gameObject.SetActive(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
if (SubMenuItemGroup != null) SubMenuItemGroup.SetSelect(false);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 03e57e4b662cb3244a4f434335e95afa
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -1,3 +1,6 @@
|
|||||||
|
using AxibugEmuOnline.Client.ClientCore;
|
||||||
|
using AxibugProtobuf;
|
||||||
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -13,5 +16,49 @@ namespace AxibugEmuOnline.Client
|
|||||||
|
|
||||||
go.SetActive(active);
|
go.SetActive(active);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string GetHostNickName(this Protobuf_Room_MiniInfo roomInfo)
|
||||||
|
{
|
||||||
|
var hostUID = roomInfo.HostPlayerUID;
|
||||||
|
if (hostUID == roomInfo.Player1UID) return roomInfo.Player1NickName;
|
||||||
|
else if (hostUID == roomInfo.Player2UID) return roomInfo.Player2NickName;
|
||||||
|
else if (hostUID == roomInfo.Player3UID) return roomInfo.Player3NickName;
|
||||||
|
else if (hostUID == roomInfo.Player4UID) return roomInfo.Player4NickName;
|
||||||
|
else return string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void GetRoomPlayers(this Protobuf_Room_MiniInfo roomInfo, out int current, out int max)
|
||||||
|
{
|
||||||
|
current = 0; max = 4;
|
||||||
|
|
||||||
|
if (roomInfo.Player1UID > 0) current++;
|
||||||
|
if (roomInfo.Player2UID > 0) current++;
|
||||||
|
if (roomInfo.Player3UID > 0) current++;
|
||||||
|
if (roomInfo.Player4UID > 0) current++;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Dictionary<int, RomFile> s_RomFileCahcesInRoomInfo = new Dictionary<int, RomFile>();
|
||||||
|
public static void FetchRomFileInRoomInfo(this Protobuf_Room_MiniInfo roomInfo, EnumPlatform platform, Action<RomFile> callback)
|
||||||
|
{
|
||||||
|
if (s_RomFileCahcesInRoomInfo.TryGetValue(roomInfo.GameRomID, out RomFile romFile))
|
||||||
|
{
|
||||||
|
callback.Invoke(romFile);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
switch (platform)
|
||||||
|
{
|
||||||
|
case EnumPlatform.NES:
|
||||||
|
App.StartCoroutine(App.httpAPI.GetNesRomInfo(roomInfo.GameRomID, (romWebData) =>
|
||||||
|
{
|
||||||
|
RomFile romFile = new RomFile(EnumPlatform.NES, 0, 0);
|
||||||
|
romFile.SetWebData(romWebData);
|
||||||
|
callback.Invoke(romFile);
|
||||||
|
|
||||||
|
s_RomFileCahcesInRoomInfo[roomInfo.GameRomID] = romFile;
|
||||||
|
}));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user