master #31
@ -137,6 +137,10 @@ Material:
|
|||||||
m_Texture: {fileID: 0}
|
m_Texture: {fileID: 0}
|
||||||
m_Scale: {x: 1, y: 1}
|
m_Scale: {x: 1, y: 1}
|
||||||
m_Offset: {x: 0, y: 0}
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParamTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
m_Floats:
|
m_Floats:
|
||||||
- _ColorMask: 15
|
- _ColorMask: 15
|
||||||
- _Stencil: 0
|
- _Stencil: 0
|
||||||
@ -285,6 +289,10 @@ Material:
|
|||||||
m_Texture: {fileID: 0}
|
m_Texture: {fileID: 0}
|
||||||
m_Scale: {x: 1, y: 1}
|
m_Scale: {x: 1, y: 1}
|
||||||
m_Offset: {x: 0, y: 0}
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParamTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
m_Floats:
|
m_Floats:
|
||||||
- _ColorMask: 15
|
- _ColorMask: 15
|
||||||
- _Stencil: 0
|
- _Stencil: 0
|
||||||
@ -319,6 +327,10 @@ Material:
|
|||||||
m_Texture: {fileID: 0}
|
m_Texture: {fileID: 0}
|
||||||
m_Scale: {x: 1, y: 1}
|
m_Scale: {x: 1, y: 1}
|
||||||
m_Offset: {x: 0, y: 0}
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParamTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
m_Floats:
|
m_Floats:
|
||||||
- _ColorMask: 15
|
- _ColorMask: 15
|
||||||
- _Stencil: 0
|
- _Stencil: 0
|
||||||
@ -353,6 +365,10 @@ Material:
|
|||||||
m_Texture: {fileID: 0}
|
m_Texture: {fileID: 0}
|
||||||
m_Scale: {x: 1, y: 1}
|
m_Scale: {x: 1, y: 1}
|
||||||
m_Offset: {x: 0, y: 0}
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParamTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
m_Floats:
|
m_Floats:
|
||||||
- _ColorMask: 15
|
- _ColorMask: 15
|
||||||
- _Stencil: 0
|
- _Stencil: 0
|
||||||
|
@ -0,0 +1,798 @@
|
|||||||
|
%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}
|
||||||
|
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}
|
||||||
|
m_Father: {fileID: 8754483333502849411}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0.5, y: 1}
|
||||||
|
m_AnchorMax: {x: 0.5, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 100, y: 100}
|
||||||
|
m_Pivot: {x: 0.5, y: 1}
|
||||||
|
--- !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!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: -3959751710151339114}
|
||||||
|
- component: {fileID: 5700455559359757662}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Game_NES_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: 100, y: 102}
|
||||||
|
m_Pivot: {x: 0, y: 0.5}
|
||||||
|
--- !u!114 &-3959751710151339114
|
||||||
|
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: e2f2e38adaa854144b67512333b1b363, 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: 0}
|
||||||
|
SelectScale: 1
|
||||||
|
UnSelectScale: 1
|
||||||
|
RomGroup: {fileID: 6055880809428073973}
|
||||||
|
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}
|
||||||
|
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!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}
|
||||||
|
m_Father: {fileID: 8754483333502849411}
|
||||||
|
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: 50, y: -165.08997}
|
||||||
|
m_SizeDelta: {x: 2338.0796, y: 1768.3333}
|
||||||
|
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: 1
|
||||||
|
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:
|
||||||
|
WidthFix: 225
|
||||||
|
--- !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: 4972426757569440742}
|
||||||
|
- 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: 1, y: 0}
|
||||||
|
m_AnchorMax: {x: 1, y: 1}
|
||||||
|
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!114 &4972426757569440742
|
||||||
|
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: 3245ec927659c4140ac4f8d17403cc18, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_HorizontalFit: 2
|
||||||
|
m_VerticalFit: 2
|
||||||
|
--- !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: 10}
|
||||||
|
m_Constraint: 1
|
||||||
|
m_ConstraintCount: 1
|
||||||
|
ItemTemplate: {fileID: 1998281097548910301, guid: e6df0d7c236795247971f0d1e691b068, 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}
|
||||||
|
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}
|
||||||
|
- {fileID: 331028397738758164}
|
||||||
|
m_Father: {fileID: 1998281097548910301}
|
||||||
|
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}
|
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b170104e466853c49b29f9b5b103364e
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
File diff suppressed because it is too large
Load Diff
@ -131,10 +131,10 @@ MonoBehaviour:
|
|||||||
Descript: {fileID: 0}
|
Descript: {fileID: 0}
|
||||||
Root: {fileID: 8754483333502849411}
|
Root: {fileID: 8754483333502849411}
|
||||||
ShadowIcon: {fileID: 0}
|
ShadowIcon: {fileID: 0}
|
||||||
|
InfoNode: {fileID: 632697230221148209}
|
||||||
SubMenuItemGroup: {fileID: 2060695589654091386}
|
SubMenuItemGroup: {fileID: 2060695589654091386}
|
||||||
SelectScale: 1
|
SelectScale: 1
|
||||||
UnSelectScale: 0.85
|
UnSelectScale: 0.85
|
||||||
m_progress: 0
|
|
||||||
--- !u!114 &5700455559359757662
|
--- !u!114 &5700455559359757662
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -166,6 +166,7 @@ GameObject:
|
|||||||
- component: {fileID: 6095356919362338847}
|
- component: {fileID: 6095356919362338847}
|
||||||
- component: {fileID: 7651669947470814669}
|
- component: {fileID: 7651669947470814669}
|
||||||
- component: {fileID: 991446423622995247}
|
- component: {fileID: 991446423622995247}
|
||||||
|
- component: {fileID: 632697230221148209}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Text
|
m_Name: Text
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@ -234,6 +235,18 @@ MonoBehaviour:
|
|||||||
m_VerticalOverflow: 1
|
m_VerticalOverflow: 1
|
||||||
m_LineSpacing: 1
|
m_LineSpacing: 1
|
||||||
m_Text: NAME
|
m_Text: NAME
|
||||||
|
--- !u!225 &632697230221148209
|
||||||
|
CanvasGroup:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5340761592919397836}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Alpha: 1
|
||||||
|
m_Interactable: 1
|
||||||
|
m_BlocksRaycasts: 1
|
||||||
|
m_IgnoreParentGroups: 0
|
||||||
--- !u!1 &8218630550162509793
|
--- !u!1 &8218630550162509793
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -285,7 +298,6 @@ MonoBehaviour:
|
|||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
PulseInvoke_Delay: 0.4
|
PulseInvoke_Delay: 0.4
|
||||||
PulseInvoke_Interval: 0.05
|
PulseInvoke_Interval: 0.05
|
||||||
m_listenControlAction: 0
|
|
||||||
m_menuItemRoot: {fileID: 3226730524206505336}
|
m_menuItemRoot: {fileID: 3226730524206505336}
|
||||||
SubMenuItemTemplate: {fileID: 2502609279043838113, guid: 01f3c5497992f944eae9b9efa15a19c2, type: 3}
|
SubMenuItemTemplate: {fileID: 2502609279043838113, guid: 01f3c5497992f944eae9b9efa15a19c2, type: 3}
|
||||||
alphaGroup: {fileID: 6355204462360987243}
|
alphaGroup: {fileID: 6355204462360987243}
|
||||||
|
@ -0,0 +1,649 @@
|
|||||||
|
%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: 3
|
||||||
|
m_AlignByGeometry: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_HorizontalOverflow: 1
|
||||||
|
m_VerticalOverflow: 1
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Text: 111111111111111111111111111111111111111111
|
||||||
|
--- !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: 0.4577373, b: 0, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 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!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}
|
||||||
|
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}
|
||||||
|
m_Father: {fileID: 8105925540140519754}
|
||||||
|
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: 4, y: 4}
|
||||||
|
m_Pivot: {x: 0.5, 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: 0.4577373, b: 0, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 1
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 0
|
||||||
|
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: 8404333486862214380}
|
||||||
|
- component: {fileID: 5700455559359757662}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: RomItemTemplate
|
||||||
|
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: 500, y: 200}
|
||||||
|
m_Pivot: {x: 0, y: 0.5}
|
||||||
|
--- !u!114 &8404333486862214380
|
||||||
|
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: f236de3ffaafd4149a3b7395e05b8d07, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
Icon: {fileID: 6771349210554360888}
|
||||||
|
Txt: {fileID: 991446423622995247}
|
||||||
|
Descript: {fileID: 3380485461544738227}
|
||||||
|
Root: {fileID: 8754483333502849411}
|
||||||
|
ShadowIcon: {fileID: 2619187604372594158}
|
||||||
|
InfoNode: {fileID: 6788248266412682264}
|
||||||
|
SubMenuItemGroup: {fileID: 0}
|
||||||
|
SelectScale: 1
|
||||||
|
UnSelectScale: 1
|
||||||
|
m_romImage: {fileID: 67125096702760250}
|
||||||
|
--- !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 &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: 6788248266412682264}
|
||||||
|
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: 1, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 100, y: 0}
|
||||||
|
m_SizeDelta: {x: -200, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, 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 &6788248266412682264
|
||||||
|
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 &4643603390456494410
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8105925540140519754}
|
||||||
|
- component: {fileID: 1377401926964550360}
|
||||||
|
- component: {fileID: 67125096702760250}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: RomImage
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &8105925540140519754
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4643603390456494410}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 2}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 6087025893861054323}
|
||||||
|
m_Father: {fileID: 8754483333502849411}
|
||||||
|
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: 200, y: 200}
|
||||||
|
m_Pivot: {x: 0, y: 0.5}
|
||||||
|
--- !u!222 &1377401926964550360
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4643603390456494410}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &67125096702760250
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4643603390456494410}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 0}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!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 &8290338740711049006
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8754483333502849411}
|
||||||
|
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: 8105925540140519754}
|
||||||
|
- {fileID: 8789823129857705082}
|
||||||
|
m_Father: {fileID: 1998281097548910301}
|
||||||
|
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}
|
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e6df0d7c236795247971f0d1e691b068
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -353,6 +353,7 @@ MonoBehaviour:
|
|||||||
Descript: {fileID: 3380485461544738227}
|
Descript: {fileID: 3380485461544738227}
|
||||||
Root: {fileID: 8754483333502849411}
|
Root: {fileID: 8754483333502849411}
|
||||||
ShadowIcon: {fileID: 2619187604372594158}
|
ShadowIcon: {fileID: 2619187604372594158}
|
||||||
|
InfoNode: {fileID: 2621205976727769389}
|
||||||
SubMenuItemGroup: {fileID: 0}
|
SubMenuItemGroup: {fileID: 0}
|
||||||
SelectScale: 1
|
SelectScale: 1
|
||||||
UnSelectScale: 1
|
UnSelectScale: 1
|
||||||
@ -387,6 +388,7 @@ GameObject:
|
|||||||
- component: {fileID: 8789823129857705082}
|
- component: {fileID: 8789823129857705082}
|
||||||
- component: {fileID: 3252398029444565139}
|
- component: {fileID: 3252398029444565139}
|
||||||
- component: {fileID: 4972426757569440742}
|
- component: {fileID: 4972426757569440742}
|
||||||
|
- component: {fileID: 2621205976727769389}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: InfoNode
|
m_Name: InfoNode
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@ -455,6 +457,18 @@ MonoBehaviour:
|
|||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_HorizontalFit: 2
|
m_HorizontalFit: 2
|
||||||
m_VerticalFit: 2
|
m_VerticalFit: 2
|
||||||
|
--- !u!225 &2621205976727769389
|
||||||
|
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
|
--- !u!1 &5340761592919397836
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,11 +1,12 @@
|
|||||||
using AxibugEmuOnline.Client.Manager;
|
using AxibugEmuOnline.Client.Manager;
|
||||||
using AxibugEmuOnline.Client.Network;
|
using AxibugEmuOnline.Client.Network;
|
||||||
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace AxibugEmuOnline.Client.ClientCore
|
namespace AxibugEmuOnline.Client.ClientCore
|
||||||
{
|
{
|
||||||
public class AppAxibugEmuOnline
|
public static class AppAxibugEmuOnline
|
||||||
{
|
{
|
||||||
public static string TokenStr;
|
public static string TokenStr;
|
||||||
public static long RID = -1;
|
public static long RID = -1;
|
||||||
@ -18,7 +19,7 @@ namespace AxibugEmuOnline.Client.ClientCore
|
|||||||
public static UserDataManager user;
|
public static UserDataManager user;
|
||||||
public static AppNetGame netgame;
|
public static AppNetGame netgame;
|
||||||
public static AppEmu emu;
|
public static AppEmu emu;
|
||||||
public static RomLib romLib;
|
public static RomLib nesRomLib;
|
||||||
public static HttpAPI httpAPI;
|
public static HttpAPI httpAPI;
|
||||||
|
|
||||||
private static CoroutineRunner coRunner;
|
private static CoroutineRunner coRunner;
|
||||||
@ -34,14 +35,30 @@ namespace AxibugEmuOnline.Client.ClientCore
|
|||||||
user = new UserDataManager();
|
user = new UserDataManager();
|
||||||
emu = new AppEmu();
|
emu = new AppEmu();
|
||||||
netgame = new AppNetGame();
|
netgame = new AppNetGame();
|
||||||
romLib = new RomLib();
|
|
||||||
httpAPI = new HttpAPI();
|
httpAPI = new HttpAPI();
|
||||||
|
nesRomLib = new RomLib(EnumPlatform.NES);
|
||||||
|
|
||||||
var go = new GameObject("[AppAxibugEmuOnline]");
|
var go = new GameObject("[AppAxibugEmuOnline]");
|
||||||
GameObject.DontDestroyOnLoad(go);
|
GameObject.DontDestroyOnLoad(go);
|
||||||
coRunner = go.AddComponent<CoroutineRunner>();
|
coRunner = go.AddComponent<CoroutineRunner>();
|
||||||
|
|
||||||
|
StartCoroutine(AppTickFlow());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static IEnumerator AppTickFlow()
|
||||||
|
{
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
Tick();
|
||||||
|
yield return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void Tick()
|
||||||
|
{
|
||||||
|
nesRomLib.ExecuteFetchRomInfo();
|
||||||
|
}
|
||||||
|
|
||||||
public static Coroutine StartCoroutine(IEnumerator itor)
|
public static Coroutine StartCoroutine(IEnumerator itor)
|
||||||
{
|
{
|
||||||
return coRunner.StartCoroutine(itor);
|
return coRunner.StartCoroutine(itor);
|
||||||
|
@ -12,6 +12,8 @@ namespace AxibugEmuOnline.Client
|
|||||||
public string WebSite = "http://emu.axibug.com/api";
|
public string WebSite = "http://emu.axibug.com/api";
|
||||||
public string DownSite = "http://emu.axibug.com";
|
public string DownSite = "http://emu.axibug.com";
|
||||||
|
|
||||||
|
public delegate void GetRomListAPI(Action<Resp_GameList> callback, int page, int pageSize = 10);
|
||||||
|
|
||||||
public void GetNesRomList(Action<Resp_GameList> callback, int page, int pageSize = 10)
|
public void GetNesRomList(Action<Resp_GameList> callback, int page, int pageSize = 10)
|
||||||
{
|
{
|
||||||
AppAxibugEmuOnline.StartCoroutine(GetNesRomListFlow(page, pageSize, callback));
|
AppAxibugEmuOnline.StartCoroutine(GetNesRomListFlow(page, pageSize, callback));
|
||||||
@ -66,6 +68,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
[Serializable]
|
[Serializable]
|
||||||
public class Resp_RomInfo
|
public class Resp_RomInfo
|
||||||
{
|
{
|
||||||
|
public int orderid;
|
||||||
public int id;
|
public int id;
|
||||||
public string romName;
|
public string romName;
|
||||||
public string gType;
|
public string gType;
|
||||||
|
@ -15,23 +15,42 @@ namespace AxibugEmuOnline.Client
|
|||||||
private string fileName;
|
private string fileName;
|
||||||
private EnumPlatform platform;
|
private EnumPlatform platform;
|
||||||
|
|
||||||
|
/// <summary> 指示该Rom文件的存放路径 </summary>
|
||||||
public string LocalFilePath => $"{CoreSupporter.PersistentDataPath}/RemoteRoms/{platform}/{fileName}";
|
public string LocalFilePath => $"{CoreSupporter.PersistentDataPath}/RemoteRoms/{platform}/{fileName}";
|
||||||
public bool FileReady => hasLocalFile;
|
/// <summary> 指示该Rom文件是否已下载完毕 </summary>
|
||||||
public int ID => webData != null ? webData.id : -1;
|
public bool RomReady => hasLocalFile;
|
||||||
|
/// <summary> 指示是否正在下载Rom文件 </summary>
|
||||||
public bool IsDownloading { get; private set; }
|
public bool IsDownloading { get; private set; }
|
||||||
|
|
||||||
|
/// <summary> 指示该Rom信息是否已填充 </summary>
|
||||||
|
public bool InfoReady => webData != null;
|
||||||
|
/// <summary> 唯一标识 </summary>
|
||||||
|
public int ID => webData != null ? webData.id : -1;
|
||||||
|
/// <summary> 别名 </summary>
|
||||||
public string Alias => webData.romName;
|
public string Alias => webData.romName;
|
||||||
|
/// <summary> 描述 </summary>
|
||||||
|
public string Descript => webData.desc;
|
||||||
|
|
||||||
|
/// <summary> 文件名 </summary>
|
||||||
public string FileName => fileName;
|
public string FileName => fileName;
|
||||||
|
/// <summary> 在查询结果中的索引 </summary>
|
||||||
|
public int Index { get; private set; }
|
||||||
|
/// <summary> 在查询结果中的所在页 </summary>
|
||||||
|
public int Page { get; private set; }
|
||||||
|
|
||||||
public event Action OnDownloadOver;
|
public event Action OnDownloadOver;
|
||||||
|
public event Action OnInfoFilled;
|
||||||
|
|
||||||
public RomFile(EnumPlatform platform)
|
public RomFile(EnumPlatform platform, int index, int insidePage)
|
||||||
{
|
{
|
||||||
this.platform = platform;
|
this.platform = platform;
|
||||||
|
Index = index;
|
||||||
|
Page = insidePage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void BeginDownload()
|
public void BeginDownload()
|
||||||
{
|
{
|
||||||
if (FileReady) return;
|
if (RomReady) return;
|
||||||
if (IsDownloading) return;
|
if (IsDownloading) return;
|
||||||
|
|
||||||
IsDownloading = true;
|
IsDownloading = true;
|
||||||
@ -54,7 +73,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
public byte[] GetRomFileData()
|
public byte[] GetRomFileData()
|
||||||
{
|
{
|
||||||
if (webData == null) throw new Exception("Not Valid Rom");
|
if (webData == null) throw new Exception("Not Valid Rom");
|
||||||
if (!FileReady) 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);
|
||||||
if (Path.GetExtension(LocalFilePath).ToLower() == ".zip")
|
if (Path.GetExtension(LocalFilePath).ToLower() == ".zip")
|
||||||
@ -118,6 +137,8 @@ namespace AxibugEmuOnline.Client
|
|||||||
{
|
{
|
||||||
hasLocalFile = false;
|
hasLocalFile = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OnInfoFilled?.Invoke();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,52 +1,93 @@
|
|||||||
using AxibugEmuOnline.Client.ClientCore;
|
using AxibugEmuOnline.Client.ClientCore;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using static AxibugEmuOnline.Client.HttpAPI;
|
||||||
|
|
||||||
namespace AxibugEmuOnline.Client
|
namespace AxibugEmuOnline.Client
|
||||||
{
|
{
|
||||||
public class RomLib
|
public class RomLib
|
||||||
{
|
{
|
||||||
|
/// <summary> Rom请求,一页的大小 </summary>
|
||||||
|
private const int PAGE_SIZE = 10;
|
||||||
|
|
||||||
|
/// <summary> 请求指令 </summary>
|
||||||
|
private HashSet<int> FetchPageCmd = new HashSet<int>();
|
||||||
|
private RomFile[] nesRomFetchList;
|
||||||
private Dictionary<int, RomFile> nesRomFileIdMapper = new Dictionary<int, RomFile>();
|
private Dictionary<int, RomFile> nesRomFileIdMapper = new Dictionary<int, RomFile>();
|
||||||
private Dictionary<string, RomFile> nesRomFileNameMapper = new Dictionary<string, RomFile>();
|
private Dictionary<string, RomFile> nesRomFileNameMapper = new Dictionary<string, RomFile>();
|
||||||
|
private HttpAPI.GetRomListAPI m_romGetFunc;
|
||||||
|
private EnumPlatform m_platform;
|
||||||
|
|
||||||
public RomFile GetNesRomFile(string romFileName)
|
public RomLib(EnumPlatform platform)
|
||||||
|
{
|
||||||
|
m_platform = platform;
|
||||||
|
switch (platform)
|
||||||
|
{
|
||||||
|
case EnumPlatform.NES:
|
||||||
|
m_romGetFunc = AppAxibugEmuOnline.httpAPI.GetNesRomList;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public RomFile GetRomFile(string romFileName)
|
||||||
{
|
{
|
||||||
RomFile romFile;
|
RomFile romFile;
|
||||||
nesRomFileNameMapper.TryGetValue(romFileName, out romFile);
|
nesRomFileNameMapper.TryGetValue(romFileName, out romFile);
|
||||||
return romFile;
|
return romFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void GetNesRomFile(int page, int pageSize, Action<List<RomFile>> callback)
|
/// <summary>
|
||||||
|
/// 获得所有Rom文件
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="callback"></param>
|
||||||
|
public void FetchRomCount(Action<RomFile[]> callback)
|
||||||
{
|
{
|
||||||
AppAxibugEmuOnline.httpAPI.GetNesRomList((romList) =>
|
m_romGetFunc((romList) =>
|
||||||
{
|
{
|
||||||
if (romList == null)
|
FetchPageCmd.Clear();
|
||||||
|
nesRomFileIdMapper.Clear();
|
||||||
|
nesRomFileNameMapper.Clear();
|
||||||
|
nesRomFetchList = new RomFile[romList.resultAllCount];
|
||||||
|
for (int i = 0; i < nesRomFetchList.Length; i++)
|
||||||
{
|
{
|
||||||
callback.Invoke(null);
|
//以后考虑用对象池实例化RomFile
|
||||||
|
nesRomFetchList[i] = new RomFile(m_platform, i, i / PAGE_SIZE);
|
||||||
}
|
}
|
||||||
else
|
SaveRomInfoFromWeb(romList);
|
||||||
{
|
|
||||||
List<RomFile> result = new List<RomFile>();
|
|
||||||
for (int i = 0; i < romList.gameList.Count; i++)
|
|
||||||
{
|
|
||||||
var webData = romList.gameList[i];
|
|
||||||
RomFile targetRomFile;
|
|
||||||
nesRomFileIdMapper.TryGetValue(webData.id, out targetRomFile);
|
|
||||||
if (targetRomFile == null)
|
|
||||||
{
|
|
||||||
targetRomFile = new RomFile(EnumPlatform.NES);
|
|
||||||
targetRomFile.SetWebData(webData);
|
|
||||||
nesRomFileIdMapper[webData.id] = targetRomFile;
|
|
||||||
|
|
||||||
nesRomFileNameMapper[targetRomFile.FileName] = targetRomFile;
|
callback.Invoke(nesRomFetchList);
|
||||||
}
|
}, 0, PAGE_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
result.Add(targetRomFile);
|
public void BeginFetchRomInfo(RomFile romFile)
|
||||||
}
|
{
|
||||||
|
if (romFile.InfoReady) return;
|
||||||
|
|
||||||
callback(result);
|
FetchPageCmd.Add(romFile.Page);
|
||||||
}
|
}
|
||||||
}, page, pageSize);
|
|
||||||
|
public void ExecuteFetchRomInfo()
|
||||||
|
{
|
||||||
|
if (FetchPageCmd.Count == 0) return;
|
||||||
|
|
||||||
|
foreach (var pageNo in FetchPageCmd)
|
||||||
|
{
|
||||||
|
m_romGetFunc(SaveRomInfoFromWeb, pageNo, PAGE_SIZE);
|
||||||
|
}
|
||||||
|
FetchPageCmd.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SaveRomInfoFromWeb(Resp_GameList resp)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < resp.gameList.Count; i++)
|
||||||
|
{
|
||||||
|
var webData = resp.gameList[i];
|
||||||
|
RomFile targetRomFile = nesRomFetchList[webData.orderid];
|
||||||
|
|
||||||
|
targetRomFile.SetWebData(webData);
|
||||||
|
nesRomFileIdMapper[webData.id] = nesRomFetchList[webData.orderid];
|
||||||
|
nesRomFileNameMapper[targetRomFile.FileName] = targetRomFile;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string CalcHash(byte[] data)
|
public static string CalcHash(byte[] data)
|
||||||
|
@ -20,7 +20,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var romFile = AppAxibugEmuOnline.romLib.GetNesRomFile(fname);
|
var romFile = AppAxibugEmuOnline.nesRomLib.GetRomFile(fname);
|
||||||
var bytes = romFile.GetRomFileData();
|
var bytes = romFile.GetRomFileData();
|
||||||
Debug.Log($"Open {romFile.Alias}");
|
Debug.Log($"Open {romFile.Alias}");
|
||||||
return new MemoryStream(bytes);
|
return new MemoryStream(bytes);
|
||||||
@ -34,7 +34,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
|
|
||||||
public void GetRomPathInfo(string fname, out string fullPath, out string directPath)
|
public void GetRomPathInfo(string fname, out string fullPath, out string directPath)
|
||||||
{
|
{
|
||||||
var romFile = AppAxibugEmuOnline.romLib.GetNesRomFile(fname);
|
var romFile = AppAxibugEmuOnline.nesRomLib.GetRomFile(fname);
|
||||||
UnityEngine.Debug.Assert(romFile != null);
|
UnityEngine.Debug.Assert(romFile != null);
|
||||||
|
|
||||||
fullPath = romFile.LocalFilePath;
|
fullPath = romFile.LocalFilePath;
|
||||||
|
@ -84,38 +84,6 @@ namespace AxibugEmuOnline.Client
|
|||||||
UnityEditor.EditorUtility.SetDirty(db);
|
UnityEditor.EditorUtility.SetDirty(db);
|
||||||
UnityEditor.AssetDatabase.SaveAssets();
|
UnityEditor.AssetDatabase.SaveAssets();
|
||||||
}
|
}
|
||||||
|
|
||||||
[ContextMenu("LoadRom")]
|
|
||||||
public void LoadRom()
|
|
||||||
{
|
|
||||||
AppAxibugEmuOnline.romLib.GetNesRomFile(0, 10, (romFiles) =>
|
|
||||||
{
|
|
||||||
if (romFiles == null) return;
|
|
||||||
|
|
||||||
var file = romFiles[2];
|
|
||||||
|
|
||||||
if (file.FileReady)
|
|
||||||
{
|
|
||||||
StartGame(file);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
file.BeginDownload();
|
|
||||||
Action action = null;
|
|
||||||
action = () =>
|
|
||||||
{
|
|
||||||
file.OnDownloadOver -= action;
|
|
||||||
if (!file.FileReady)
|
|
||||||
{
|
|
||||||
throw new Exception("Download Failed");
|
|
||||||
}
|
|
||||||
StartGame(file);
|
|
||||||
};
|
|
||||||
file.OnDownloadOver += action;
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
57
AxibugEmuOnline.Client/Assets/Script/UI/Game_NES.cs
Normal file
57
AxibugEmuOnline.Client/Assets/Script/UI/Game_NES.cs
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
using AxibugEmuOnline.Client.UI;
|
||||||
|
using DG.Tweening;
|
||||||
|
using DG.Tweening.Core;
|
||||||
|
using DG.Tweening.Plugins.Options;
|
||||||
|
using UnityEngine;
|
||||||
|
using App = AxibugEmuOnline.Client.ClientCore.AppAxibugEmuOnline;
|
||||||
|
|
||||||
|
namespace AxibugEmuOnline.Client
|
||||||
|
{
|
||||||
|
public class Game_NES : MenuItem
|
||||||
|
{
|
||||||
|
[SerializeField]
|
||||||
|
ItemPresent RomGroup;
|
||||||
|
[SerializeField]
|
||||||
|
CanvasGroup RomGroupRoot;
|
||||||
|
private TweenerCore<float, float, FloatOptions> m_showTween;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
RomGroupRoot.gameObject.SetActive(false);
|
||||||
|
RomGroupRoot.alpha = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void 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);
|
||||||
|
|
||||||
|
App.nesRomLib.FetchRomCount((roms) =>
|
||||||
|
{
|
||||||
|
RomGroup.UpdateDependencyProperty(App.nesRomLib);
|
||||||
|
RomGroup.SetData(roms);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void 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);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
11
AxibugEmuOnline.Client/Assets/Script/UI/Game_NES.cs.meta
Normal file
11
AxibugEmuOnline.Client/Assets/Script/UI/Game_NES.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e2f2e38adaa854144b67512333b1b363
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
AxibugEmuOnline.Client/Assets/Script/UI/ItemPresent.meta
Normal file
8
AxibugEmuOnline.Client/Assets/Script/UI/ItemPresent.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fb61074022db71f4a881a1c7fd10517e
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,58 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public static class GameObjectPool
|
||||||
|
{
|
||||||
|
private static GameObject PoolAttach;
|
||||||
|
private static Dictionary<GameObject, Queue<GameObject>> s_poolMap = new Dictionary<GameObject, Queue<GameObject>>();
|
||||||
|
private static Dictionary<GameObject, GameObject> s_instanceToSrc = new Dictionary<GameObject, GameObject>();
|
||||||
|
public static GameObject GetInstance(GameObject prefabSrc, Transform parent)
|
||||||
|
{
|
||||||
|
if (PoolAttach == null)
|
||||||
|
{
|
||||||
|
PoolAttach = new GameObject("[GameObjectPool]");
|
||||||
|
PoolAttach.transform.localScale = Vector3.zero;
|
||||||
|
GameObject.DontDestroyOnLoad(PoolAttach);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!s_poolMap.ContainsKey(prefabSrc)) s_poolMap[prefabSrc] = new Queue<GameObject>();
|
||||||
|
|
||||||
|
GameObject instance = null;
|
||||||
|
var pool = s_poolMap[prefabSrc];
|
||||||
|
if (pool.Count > 0)
|
||||||
|
{
|
||||||
|
instance = pool.Dequeue();
|
||||||
|
instance.transform.SetParent(parent, true);
|
||||||
|
instance.transform.localScale = prefabSrc.transform.localScale;
|
||||||
|
instance.transform.localRotation = prefabSrc.transform.localRotation;
|
||||||
|
instance.transform.localPosition = prefabSrc.transform.localPosition;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
instance = GameObject.Instantiate(prefabSrc, parent);
|
||||||
|
s_instanceToSrc[instance] = prefabSrc;
|
||||||
|
}
|
||||||
|
|
||||||
|
//instance.SetActive(true);
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Release(GameObject instance)
|
||||||
|
{
|
||||||
|
s_instanceToSrc.TryGetValue(instance, out var src);
|
||||||
|
if (src != null && s_poolMap.TryGetValue(src, out var pool))
|
||||||
|
{
|
||||||
|
pool.Enqueue(instance);
|
||||||
|
//instance.SetActive(false);
|
||||||
|
if (instance == null) return;
|
||||||
|
if (PoolAttach == null) return;
|
||||||
|
|
||||||
|
instance.transform.SetParent(PoolAttach.transform, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
GameObject.Destroy(instance);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b7775611896d42b429b31897cff4c6f7
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,542 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
public class ItemPresent : GridLayoutGroup, IVirtualLayout
|
||||||
|
{
|
||||||
|
public RectTransform ItemTemplate;
|
||||||
|
public RectTransform ViewRect;
|
||||||
|
|
||||||
|
private Dictionary<GameObject, ScripteInterface> _cacheItemScripts = new Dictionary<GameObject, ScripteInterface>();
|
||||||
|
private List<object> _dataList;
|
||||||
|
private object _dependencyProperty;
|
||||||
|
private Vector2 _layoutCellsize;
|
||||||
|
|
||||||
|
public Action OnItemDelayShowPorcessComplete;
|
||||||
|
|
||||||
|
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
public int EditorOnlyItemCount
|
||||||
|
{
|
||||||
|
get => ItemCount;
|
||||||
|
set => ItemCount = value;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
private int ItemCount
|
||||||
|
{
|
||||||
|
get => children.Count;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (value == ItemCount) return;
|
||||||
|
|
||||||
|
if (value <= 0)
|
||||||
|
{
|
||||||
|
foreach (var child in children)
|
||||||
|
{
|
||||||
|
child.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
children.Clear();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var gap = value - children.Count;
|
||||||
|
|
||||||
|
if (gap > 0)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < gap; i++)
|
||||||
|
{
|
||||||
|
ItemProxy item = new ItemProxy(ItemTemplate, this);
|
||||||
|
children.Add(item);
|
||||||
|
item.Width = cellSize.x;
|
||||||
|
item.Height = cellSize.y;
|
||||||
|
item.Index = children.Count - 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (gap < 0)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < -gap; i++)
|
||||||
|
{
|
||||||
|
int removeIndex = children.Count - 1;
|
||||||
|
children[removeIndex].Dispose();
|
||||||
|
children.RemoveAt(removeIndex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SetDirty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private List<ItemProxy> children = new List<ItemProxy>();
|
||||||
|
|
||||||
|
private List<ItemProxy> handleChildren = new List<ItemProxy>();
|
||||||
|
private bool m_dataDirty;
|
||||||
|
|
||||||
|
public override void CalculateLayoutInputHorizontal()
|
||||||
|
{
|
||||||
|
handleChildren.Clear();
|
||||||
|
for (int i = 0; i < children.Count; i++)
|
||||||
|
{
|
||||||
|
var child = children[i];
|
||||||
|
if (child.IsDestroyed || !child.Visible)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
handleChildren.Add(child);
|
||||||
|
}
|
||||||
|
m_Tracker.Clear();
|
||||||
|
updateFixHeightAndWidth();
|
||||||
|
|
||||||
|
int minColumns = 0;
|
||||||
|
int preferredColumns = 0;
|
||||||
|
if (m_Constraint == Constraint.FixedColumnCount)
|
||||||
|
{
|
||||||
|
minColumns = preferredColumns = m_ConstraintCount;
|
||||||
|
}
|
||||||
|
else if (m_Constraint == Constraint.FixedRowCount)
|
||||||
|
{
|
||||||
|
minColumns = preferredColumns = Mathf.CeilToInt(handleChildren.Count / (float)m_ConstraintCount - 0.001f);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
minColumns = 1;
|
||||||
|
preferredColumns = Mathf.CeilToInt(Mathf.Sqrt(handleChildren.Count));
|
||||||
|
}
|
||||||
|
|
||||||
|
SetLayoutInputForAxis(
|
||||||
|
padding.horizontal + (_layoutCellsize.x + spacing.x) * minColumns - spacing.x,
|
||||||
|
padding.horizontal + (_layoutCellsize.x + spacing.x) * preferredColumns - spacing.x,
|
||||||
|
-1, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void MoveToScrollViewCenter(ScrollRect scrollRect, int dataIndex)
|
||||||
|
{
|
||||||
|
if (m_dataDirty)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < children.Count; i++)
|
||||||
|
{
|
||||||
|
var child = children[i];
|
||||||
|
child.UpdateLayout();
|
||||||
|
}
|
||||||
|
Canvas.ForceUpdateCanvases();
|
||||||
|
}
|
||||||
|
|
||||||
|
var targetProxy = children[dataIndex];
|
||||||
|
var width = rectTransform.rect.width;
|
||||||
|
var height = rectTransform.rect.height;
|
||||||
|
|
||||||
|
// Item is here
|
||||||
|
var itemCenterPositionInScroll = GetWorldPointInWidget(scrollRect.transform as RectTransform, GetWidgetWorldPoint(targetProxy));
|
||||||
|
//Debug.Log("Item Anchor Pos In Scroll: " + itemCenterPositionInScroll);
|
||||||
|
// But must be here
|
||||||
|
var targetPositionInScroll = GetWorldPointInWidget(scrollRect.transform as RectTransform, GetWidgetWorldPoint(scrollRect.viewport));
|
||||||
|
//Debug.Log("Target Anchor Pos In Scroll: " + targetPositionInScroll);
|
||||||
|
// So it has to move this distance
|
||||||
|
var difference = targetPositionInScroll - itemCenterPositionInScroll;
|
||||||
|
difference.z = 0f;
|
||||||
|
|
||||||
|
var newNormalizedPosition = new Vector2(difference.x / (rectTransform.rect.width - scrollRect.viewport.rect.width),
|
||||||
|
difference.y / (rectTransform.rect.height - scrollRect.viewport.rect.height));
|
||||||
|
|
||||||
|
newNormalizedPosition = scrollRect.normalizedPosition - newNormalizedPosition;
|
||||||
|
|
||||||
|
newNormalizedPosition.x = Mathf.Clamp01(newNormalizedPosition.x);
|
||||||
|
newNormalizedPosition.y = Mathf.Clamp01(newNormalizedPosition.y);
|
||||||
|
|
||||||
|
scrollRect.normalizedPosition = newNormalizedPosition;
|
||||||
|
//DOTween.To(() => scrollRect.normalizedPosition, x => scrollRect.normalizedPosition = x, newNormalizedPosition, 0.2f);
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector3 GetWidgetWorldPoint(RectTransform target)
|
||||||
|
{
|
||||||
|
//pivot position + item size has to be included
|
||||||
|
var pivotOffset = new Vector3(
|
||||||
|
(0.5f - target.pivot.x) * target.rect.size.x,
|
||||||
|
(0.5f - target.pivot.y) * target.rect.size.y,
|
||||||
|
0f);
|
||||||
|
var localPosition = target.localPosition + pivotOffset;
|
||||||
|
return target.parent.TransformPoint(localPosition);
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector3 GetWidgetWorldPoint(ItemProxy proxy)
|
||||||
|
{
|
||||||
|
Vector3[] temp = new Vector3[4];
|
||||||
|
rectTransform.GetLocalCorners(temp);
|
||||||
|
var pos = (Vector2)temp[1] + proxy.AnchoredPosition;
|
||||||
|
pos = rectTransform.TransformPoint(pos);
|
||||||
|
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector3 GetWorldPointInWidget(RectTransform target, Vector3 worldPoint)
|
||||||
|
{
|
||||||
|
return target.InverseTransformPoint(worldPoint);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void CalculateLayoutInputVertical()
|
||||||
|
{
|
||||||
|
int minRows = 0;
|
||||||
|
if (m_Constraint == Constraint.FixedColumnCount)
|
||||||
|
{
|
||||||
|
minRows = Mathf.CeilToInt(handleChildren.Count / (float)m_ConstraintCount - 0.001f);
|
||||||
|
}
|
||||||
|
else if (m_Constraint == Constraint.FixedRowCount)
|
||||||
|
{
|
||||||
|
minRows = m_ConstraintCount;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
float width = rectTransform.rect.width;
|
||||||
|
int cellCountX = Mathf.Max(1, Mathf.FloorToInt((width - padding.horizontal + spacing.x + 0.001f) / (_layoutCellsize.x + spacing.x)));
|
||||||
|
minRows = Mathf.CeilToInt(handleChildren.Count / (float)cellCountX);
|
||||||
|
}
|
||||||
|
|
||||||
|
float minSpace = padding.vertical + (_layoutCellsize.y + spacing.y) * minRows - spacing.y;
|
||||||
|
SetLayoutInputForAxis(minSpace, minSpace, -1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void SetLayoutHorizontal()
|
||||||
|
{
|
||||||
|
SetProxyCellsAlongAxis(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void SetLayoutVertical()
|
||||||
|
{
|
||||||
|
SetProxyCellsAlongAxis(1);
|
||||||
|
|
||||||
|
foreach (var item in handleChildren)
|
||||||
|
{
|
||||||
|
item.UpdateLayout();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void SetProxyCellsAlongAxis(int axis)
|
||||||
|
{
|
||||||
|
// Normally a Layout Controller should only set horizontal values when invoked for the horizontal axis
|
||||||
|
// and only vertical values when invoked for the vertical axis.
|
||||||
|
// However, in this case we set both the horizontal and vertical position when invoked for the vertical axis.
|
||||||
|
// Since we only set the horizontal position and not the size, it shouldn't affect children's layout,
|
||||||
|
// and thus shouldn't break the rule that all horizontal layout must be calculated before all vertical layout.
|
||||||
|
var proxyChildCount = handleChildren.Count;
|
||||||
|
if (axis == 0)
|
||||||
|
{
|
||||||
|
// Only set the sizes when invoked for horizontal axis, not the positions.
|
||||||
|
|
||||||
|
for (int i = 0; i < proxyChildCount; i++)
|
||||||
|
{
|
||||||
|
ItemProxy proxy = handleChildren[i];
|
||||||
|
|
||||||
|
proxy.Width = _layoutCellsize.x;
|
||||||
|
proxy.Height = _layoutCellsize.y;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
float width = rectTransform.rect.size.x;
|
||||||
|
float height = rectTransform.rect.size.y;
|
||||||
|
|
||||||
|
int cellCountX = 1;
|
||||||
|
int cellCountY = 1;
|
||||||
|
if (m_Constraint == Constraint.FixedColumnCount)
|
||||||
|
{
|
||||||
|
cellCountX = m_ConstraintCount;
|
||||||
|
|
||||||
|
if (proxyChildCount > cellCountX)
|
||||||
|
cellCountY = proxyChildCount / cellCountX + (proxyChildCount % cellCountX > 0 ? 1 : 0);
|
||||||
|
}
|
||||||
|
else if (m_Constraint == Constraint.FixedRowCount)
|
||||||
|
{
|
||||||
|
cellCountY = m_ConstraintCount;
|
||||||
|
|
||||||
|
if (proxyChildCount > cellCountY)
|
||||||
|
cellCountX = proxyChildCount / cellCountY + (proxyChildCount % cellCountY > 0 ? 1 : 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (_layoutCellsize.x + spacing.x <= 0)
|
||||||
|
cellCountX = int.MaxValue;
|
||||||
|
else
|
||||||
|
cellCountX = Mathf.Max(1, Mathf.FloorToInt((width - padding.horizontal + spacing.x + 0.001f) / (cellSize.x + spacing.x)));
|
||||||
|
|
||||||
|
if (_layoutCellsize.y + spacing.y <= 0)
|
||||||
|
cellCountY = int.MaxValue;
|
||||||
|
else
|
||||||
|
cellCountY = Mathf.Max(1, Mathf.FloorToInt((height - padding.vertical + spacing.y + 0.001f) / (cellSize.y + spacing.y)));
|
||||||
|
}
|
||||||
|
|
||||||
|
int cornerX = (int)startCorner % 2;
|
||||||
|
int cornerY = (int)startCorner / 2;
|
||||||
|
|
||||||
|
int cellsPerMainAxis, actualCellCountX, actualCellCountY;
|
||||||
|
if (startAxis == Axis.Horizontal)
|
||||||
|
{
|
||||||
|
cellsPerMainAxis = cellCountX;
|
||||||
|
actualCellCountX = Mathf.Clamp(cellCountX, 1, proxyChildCount);
|
||||||
|
actualCellCountY = Mathf.Clamp(cellCountY, 1, Mathf.CeilToInt(proxyChildCount / (float)cellsPerMainAxis));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cellsPerMainAxis = cellCountY;
|
||||||
|
actualCellCountY = Mathf.Clamp(cellCountY, 1, proxyChildCount);
|
||||||
|
actualCellCountX = Mathf.Clamp(cellCountX, 1, Mathf.CeilToInt(proxyChildCount / (float)cellsPerMainAxis));
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector2 requiredSpace = new Vector2(
|
||||||
|
actualCellCountX * _layoutCellsize.x + (actualCellCountX - 1) * spacing.x,
|
||||||
|
actualCellCountY * _layoutCellsize.y + (actualCellCountY - 1) * spacing.y
|
||||||
|
);
|
||||||
|
Vector2 startOffset = new Vector2(
|
||||||
|
GetStartOffset(0, requiredSpace.x),
|
||||||
|
GetStartOffset(1, requiredSpace.y)
|
||||||
|
);
|
||||||
|
|
||||||
|
for (int i = 0; i < proxyChildCount; i++)
|
||||||
|
{
|
||||||
|
int positionX;
|
||||||
|
int positionY;
|
||||||
|
if (startAxis == Axis.Horizontal)
|
||||||
|
{
|
||||||
|
positionX = i % cellsPerMainAxis;
|
||||||
|
positionY = i / cellsPerMainAxis;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
positionX = i / cellsPerMainAxis;
|
||||||
|
positionY = i % cellsPerMainAxis;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cornerX == 1)
|
||||||
|
positionX = actualCellCountX - 1 - positionX;
|
||||||
|
if (cornerY == 1)
|
||||||
|
positionY = actualCellCountY - 1 - positionY;
|
||||||
|
|
||||||
|
SetProxyChildAlongAxis(handleChildren[i], 0, startOffset.x + (_layoutCellsize[0] + spacing[0]) * positionX, _layoutCellsize[0]);
|
||||||
|
SetProxyChildAlongAxis(handleChildren[i], 1, startOffset.y + (_layoutCellsize[1] + spacing[1]) * positionY, _layoutCellsize[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetProxyChildAlongAxis(ItemProxy proxy, int axis, float pos, float size)
|
||||||
|
{
|
||||||
|
var scaleFactor = 1.0f;
|
||||||
|
|
||||||
|
if (proxy == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Vector2 sizeDelta = new Vector2(proxy.Width, proxy.Height);
|
||||||
|
sizeDelta[axis] = size;
|
||||||
|
proxy.Width = sizeDelta.x;
|
||||||
|
proxy.Height = sizeDelta.y;
|
||||||
|
|
||||||
|
Vector2 anchoredPosition = proxy.AnchoredPosition;
|
||||||
|
anchoredPosition[axis] = (axis == 0) ? (pos + size * proxy.Pivot[axis] * scaleFactor) : (-pos - size * (1f - proxy.Pivot[axis]) * scaleFactor);
|
||||||
|
proxy.AnchoredPosition = anchoredPosition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateProxyVisualState()
|
||||||
|
{
|
||||||
|
if (m_dataDirty)
|
||||||
|
{
|
||||||
|
foreach (var proxy in children)
|
||||||
|
{
|
||||||
|
proxy.UpdateView(true);
|
||||||
|
}
|
||||||
|
Canvas.ForceUpdateCanvases();
|
||||||
|
|
||||||
|
m_dataDirty = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ViewRect == null)
|
||||||
|
{
|
||||||
|
foreach (var proxy in children)
|
||||||
|
{
|
||||||
|
proxy.IsInViewRect = true;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector3[] corners = new Vector3[4];
|
||||||
|
ViewRect.GetLocalCorners(corners);
|
||||||
|
Rect parentRect = ViewRect.rect;
|
||||||
|
parentRect.position = corners[0];
|
||||||
|
|
||||||
|
rectTransform.GetLocalCorners(corners);
|
||||||
|
Vector2 leftUpCorner = corners[1];
|
||||||
|
|
||||||
|
foreach (var proxy in children)
|
||||||
|
{
|
||||||
|
var localPos = leftUpCorner + proxy.AnchoredPosition;
|
||||||
|
localPos.x -= proxy.Width * 0.5f;
|
||||||
|
localPos.y -= proxy.Height * 0.5f;
|
||||||
|
localPos = transform.localToWorldMatrix.MultiplyPoint(localPos);
|
||||||
|
localPos = ViewRect.worldToLocalMatrix.MultiplyPoint(localPos);
|
||||||
|
|
||||||
|
Rect proxyRect = new Rect(localPos, new Vector2(proxy.Width, proxy.Height));
|
||||||
|
|
||||||
|
if (parentRect.Overlaps(proxyRect)) proxy.IsInViewRect = true;
|
||||||
|
else proxy.IsInViewRect = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool PauseUpdateView;
|
||||||
|
private void LateUpdate()
|
||||||
|
{
|
||||||
|
if (!PauseUpdateView)
|
||||||
|
{
|
||||||
|
updateFixHeightAndWidth();
|
||||||
|
|
||||||
|
UpdateProxyVisualState();
|
||||||
|
HandleProxyShow();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateFixHeightAndWidth()
|
||||||
|
{
|
||||||
|
_layoutCellsize = cellSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<ItemProxy> NeedDelayShowItems = new List<ItemProxy>();
|
||||||
|
private bool hasNeedShowInLastFrame = false;
|
||||||
|
private float stepDuration = 0f;
|
||||||
|
private void HandleProxyShow(bool allLoad = true, float delayStep = 0.02f)
|
||||||
|
{
|
||||||
|
if (allLoad)
|
||||||
|
{
|
||||||
|
foreach (var proxy in children)
|
||||||
|
{
|
||||||
|
if (proxy.NeedHide)
|
||||||
|
proxy.UpdateView();
|
||||||
|
else if (proxy.NeedShow)
|
||||||
|
proxy.UpdateView();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
NeedDelayShowItems.Clear();
|
||||||
|
foreach (var proxy in children)
|
||||||
|
{
|
||||||
|
if (proxy.NeedHide)
|
||||||
|
proxy.UpdateView();
|
||||||
|
else if (proxy.NeedShow && !proxy.firstShow)
|
||||||
|
proxy.UpdateView();
|
||||||
|
else if (proxy.NeedShow && proxy.firstShow)
|
||||||
|
{
|
||||||
|
NeedDelayShowItems.Add(proxy);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (NeedDelayShowItems.Count == 0 && hasNeedShowInLastFrame)
|
||||||
|
{
|
||||||
|
// Debug.Log("Show Complete!", gameObject);
|
||||||
|
OnItemDelayShowPorcessComplete?.Invoke();
|
||||||
|
}
|
||||||
|
hasNeedShowInLastFrame = NeedDelayShowItems.Count > 0;
|
||||||
|
|
||||||
|
stepDuration += Time.deltaTime;
|
||||||
|
while (stepDuration >= delayStep)
|
||||||
|
{
|
||||||
|
foreach (var proxy in NeedDelayShowItems)
|
||||||
|
{
|
||||||
|
if (proxy.NeedShow)
|
||||||
|
{
|
||||||
|
proxy.UpdateView();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stepDuration -= delayStep;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnDestroy()
|
||||||
|
{
|
||||||
|
Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Clear()
|
||||||
|
{
|
||||||
|
foreach (var proxy in children)
|
||||||
|
proxy.Dispose();
|
||||||
|
|
||||||
|
children.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void SetData(object dataList)
|
||||||
|
{
|
||||||
|
Clear();
|
||||||
|
|
||||||
|
if (dataList == null)
|
||||||
|
{
|
||||||
|
ItemCount = 0;
|
||||||
|
if (_dataList != null)
|
||||||
|
_dataList.Clear();
|
||||||
|
}
|
||||||
|
else if (dataList is IEnumerable ienumrable)
|
||||||
|
{
|
||||||
|
List<object> temp = new List<object>();
|
||||||
|
foreach (var item in ienumrable)
|
||||||
|
{
|
||||||
|
temp.Add(item);
|
||||||
|
}
|
||||||
|
ItemCount = temp.Count;
|
||||||
|
_dataList = temp;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.LogException(new Exception("ItemPresent SetData 传递的参数类型不受支持"), gameObject);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_dataDirty = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateDependencyProperty(object dp)
|
||||||
|
{
|
||||||
|
_dependencyProperty = dp;
|
||||||
|
foreach (var proxy in children)
|
||||||
|
{
|
||||||
|
proxy.UpdateDP();
|
||||||
|
}
|
||||||
|
|
||||||
|
m_dataDirty = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Dictionary<GameObject, ScripteInterface> CacheItemScripts => _cacheItemScripts;
|
||||||
|
|
||||||
|
public object DependencyProperty => _dependencyProperty;
|
||||||
|
|
||||||
|
public RectTransform RectTransform => rectTransform;
|
||||||
|
public Vector2 GetItemAnchorePos(int index)
|
||||||
|
{
|
||||||
|
var proxy = children[index];
|
||||||
|
return proxy.AnchoredPosition;
|
||||||
|
}
|
||||||
|
public RectTransform GetItemUIIfExist(int index)
|
||||||
|
{
|
||||||
|
if (children.Count <= index) return null;
|
||||||
|
|
||||||
|
var proxy = children[index];
|
||||||
|
return proxy.RuntimeItemUI;
|
||||||
|
}
|
||||||
|
public List<object> DataList
|
||||||
|
{
|
||||||
|
get => _dataList;
|
||||||
|
set => SetData(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
private ScrollRect _scrollRect;
|
||||||
|
public RectTransform GetItemUIByDataIndex(int dataIndex)
|
||||||
|
{
|
||||||
|
if (_scrollRect == null)
|
||||||
|
{
|
||||||
|
_scrollRect = GetComponentInParent<ScrollRect>();
|
||||||
|
}
|
||||||
|
if (_scrollRect != null) MoveToScrollViewCenter(_scrollRect, dataIndex);
|
||||||
|
|
||||||
|
return this.GetItemUIIfExist(dataIndex);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fdacbe30e88f6a844a435595a4affdbb
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b2100bdc4db5eda45a986b3489ad79a5
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"name": "ItemPresentEditor",
|
||||||
|
"rootNamespace": "",
|
||||||
|
"references": [
|
||||||
|
"GUID:3fe77f1eed9fc0847a86648f644fe815"
|
||||||
|
],
|
||||||
|
"includePlatforms": [
|
||||||
|
"Editor"
|
||||||
|
],
|
||||||
|
"excludePlatforms": [],
|
||||||
|
"allowUnsafeCode": false,
|
||||||
|
"overrideReferences": false,
|
||||||
|
"precompiledReferences": [],
|
||||||
|
"autoReferenced": true,
|
||||||
|
"defineConstraints": [],
|
||||||
|
"versionDefines": [],
|
||||||
|
"noEngineReferences": false
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 67e09745e7c253a4a86dab1e9001e7f1
|
||||||
|
AssemblyDefinitionImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,32 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEditor.UI;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
[CustomEditor(typeof(ItemPresent))]
|
||||||
|
public class ItemPresentEditor : GridLayoutGroupEditor
|
||||||
|
{
|
||||||
|
public override void OnInspectorGUI()
|
||||||
|
{
|
||||||
|
ItemPresent behaviour = target as ItemPresent;
|
||||||
|
var itemTemplate = serializedObject.FindProperty("ItemTemplate");
|
||||||
|
var viewRect = serializedObject.FindProperty("ViewRect");
|
||||||
|
GUILayout.BeginHorizontal();
|
||||||
|
EditorGUILayout.PropertyField(itemTemplate, new GUIContent("元素"), true);
|
||||||
|
if (GUILayout.Button("同步大小", GUILayout.Width(80)))
|
||||||
|
{
|
||||||
|
behaviour.cellSize = behaviour.ItemTemplate.rect.size;
|
||||||
|
GUIUtility.keyboardControl = 0;
|
||||||
|
}
|
||||||
|
GUILayout.EndHorizontal();
|
||||||
|
|
||||||
|
EditorGUILayout.PropertyField(viewRect, true);
|
||||||
|
|
||||||
|
EditorGUILayout.Space();
|
||||||
|
|
||||||
|
serializedObject.ApplyModifiedProperties();
|
||||||
|
|
||||||
|
base.OnInspectorGUI();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ba5192681f4360d43ac870aac15ade3e
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
254
AxibugEmuOnline.Client/Assets/Script/UI/ItemPresent/ItemProxy.cs
Normal file
254
AxibugEmuOnline.Client/Assets/Script/UI/ItemPresent/ItemProxy.cs
Normal file
@ -0,0 +1,254 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public interface IVirtualLayout
|
||||||
|
{
|
||||||
|
Dictionary<GameObject, ScripteInterface> CacheItemScripts { get; }
|
||||||
|
public List<object> DataList { get; }
|
||||||
|
public object DependencyProperty { get; }
|
||||||
|
public RectTransform RectTransform { get; }
|
||||||
|
|
||||||
|
public Vector2 GetItemAnchorePos(int index);
|
||||||
|
public RectTransform GetItemUIIfExist(int index);
|
||||||
|
|
||||||
|
public void UpdateProxyVisualState();
|
||||||
|
public void UpdateDependencyProperty(object dp);
|
||||||
|
public void SetData(object dataList);
|
||||||
|
public void MoveToScrollViewCenter(ScrollRect scrollRect, int dataIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ItemProxy
|
||||||
|
{
|
||||||
|
public bool IsDestroyed;
|
||||||
|
public bool Visible = true;
|
||||||
|
public int Index;
|
||||||
|
public bool IsInViewRect;
|
||||||
|
|
||||||
|
public Vector2 Pivot => _template.pivot;
|
||||||
|
public Vector2 AnchoredPosition;
|
||||||
|
|
||||||
|
public float Width;
|
||||||
|
public float Height;
|
||||||
|
|
||||||
|
private IVirtualLayout _parent;
|
||||||
|
|
||||||
|
private RectTransform _template;
|
||||||
|
private RectTransform _runtimeInstance;
|
||||||
|
private LayoutGroup _layoutElement;
|
||||||
|
|
||||||
|
public RectTransform RuntimeItemUI => _runtimeInstance;
|
||||||
|
public bool firstShow { get; private set; } = true;
|
||||||
|
|
||||||
|
public float PreferredWidth
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_layoutElement == null) return 0;
|
||||||
|
|
||||||
|
return _layoutElement.preferredWidth;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public float PreferredHeight
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_layoutElement == null) return 0;
|
||||||
|
|
||||||
|
return _layoutElement.preferredHeight;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public ScripteInterface GetLuaObj()
|
||||||
|
{
|
||||||
|
if (_runtimeInstance == null) return null;
|
||||||
|
|
||||||
|
_parent.CacheItemScripts.TryGetValue(_runtimeInstance.gameObject, out ScripteInterface lfi);
|
||||||
|
|
||||||
|
return lfi;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Vector2? _forcePivot;
|
||||||
|
public ItemProxy(RectTransform Template, IVirtualLayout parent, Vector2? forcePivot = null)
|
||||||
|
{
|
||||||
|
_template = Template;
|
||||||
|
_parent = parent;
|
||||||
|
_forcePivot = forcePivot;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
if (_runtimeInstance != null)
|
||||||
|
{
|
||||||
|
if (Application.isPlaying)
|
||||||
|
{
|
||||||
|
GameObjectPool.Release(_runtimeInstance.gameObject);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
GameObject.DestroyImmediate(_runtimeInstance.gameObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool NeedShow
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (IsInViewRect && _runtimeInstance == null) return true;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (_runtimeInstance != null && IsInViewRect && _runtimeInstance.anchoredPosition != AnchoredPosition)
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
public bool NeedHide => !IsInViewRect && _runtimeInstance != null;
|
||||||
|
|
||||||
|
public void UpdateView(bool force = false)
|
||||||
|
{
|
||||||
|
if (IsInViewRect)
|
||||||
|
{
|
||||||
|
if (_runtimeInstance == null)
|
||||||
|
{
|
||||||
|
_runtimeInstance = GetInstance();
|
||||||
|
_layoutElement = _runtimeInstance.GetComponent<LayoutGroup>();
|
||||||
|
UpdateViewData();
|
||||||
|
}
|
||||||
|
else if (force)
|
||||||
|
{
|
||||||
|
UpdateViewData();
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateLayout();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ReleaseInstance();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateLayout()
|
||||||
|
{
|
||||||
|
if (_runtimeInstance != null)
|
||||||
|
{
|
||||||
|
_runtimeInstance.gameObject.SetActive(true);
|
||||||
|
_runtimeInstance.anchorMax = Vector2.up;
|
||||||
|
_runtimeInstance.anchorMin = Vector2.up;
|
||||||
|
if (_forcePivot != null)
|
||||||
|
{
|
||||||
|
_runtimeInstance.pivot = _forcePivot.Value;
|
||||||
|
}
|
||||||
|
_runtimeInstance.anchoredPosition = AnchoredPosition;
|
||||||
|
_runtimeInstance.sizeDelta = new Vector2(Width, Height);
|
||||||
|
}
|
||||||
|
if (_layoutElement != null)
|
||||||
|
{
|
||||||
|
_layoutElement.CalculateLayoutInputHorizontal();
|
||||||
|
_layoutElement.CalculateLayoutInputVertical();
|
||||||
|
_layoutElement.SetLayoutHorizontal();
|
||||||
|
_layoutElement.SetLayoutVertical();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateViewData()
|
||||||
|
{
|
||||||
|
if (Application.isPlaying)
|
||||||
|
{
|
||||||
|
if (!_parent.CacheItemScripts.ContainsKey(_runtimeInstance.gameObject))
|
||||||
|
{
|
||||||
|
var vItem = _runtimeInstance.gameObject.GetComponent<IVirtualItem>();
|
||||||
|
ScripteInterface newSI = new ScripteInterface(vItem);
|
||||||
|
_parent.CacheItemScripts[_runtimeInstance.gameObject] = newSI;
|
||||||
|
}
|
||||||
|
|
||||||
|
_parent.CacheItemScripts.TryGetValue(_runtimeInstance.gameObject, out ScripteInterface si);
|
||||||
|
si.SetDataList(_parent.DataList[Index], Index);
|
||||||
|
if (_parent.DependencyProperty != null)
|
||||||
|
si.SetDependencyProperty(_parent.DependencyProperty);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UpdateDP()
|
||||||
|
{
|
||||||
|
if (_runtimeInstance == null) return;
|
||||||
|
|
||||||
|
_parent.CacheItemScripts.TryGetValue(_runtimeInstance.gameObject, out ScripteInterface luaInterface);
|
||||||
|
if (luaInterface == null) return;
|
||||||
|
|
||||||
|
if (_parent.DependencyProperty != null)
|
||||||
|
luaInterface.SetDependencyProperty(_parent.DependencyProperty);
|
||||||
|
}
|
||||||
|
|
||||||
|
private RectTransform GetInstance()
|
||||||
|
{
|
||||||
|
var res = GameObjectPool.GetInstance(_template.gameObject, _parent.RectTransform).GetComponent<RectTransform>();
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ReleaseInstance()
|
||||||
|
{
|
||||||
|
if (_runtimeInstance == null) return;
|
||||||
|
|
||||||
|
_layoutElement = null;
|
||||||
|
|
||||||
|
if (Application.isPlaying)
|
||||||
|
{
|
||||||
|
_parent.CacheItemScripts.TryGetValue(_runtimeInstance.gameObject, out ScripteInterface si);
|
||||||
|
if (si != null) si.Release();
|
||||||
|
GameObjectPool.Release(_runtimeInstance.gameObject);
|
||||||
|
_runtimeInstance = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
GameObject.DestroyImmediate(_runtimeInstance.gameObject);
|
||||||
|
_runtimeInstance = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ScripteInterface
|
||||||
|
{
|
||||||
|
private IVirtualItem _itemInstance;
|
||||||
|
public IVirtualItem ItemInstance => _itemInstance;
|
||||||
|
|
||||||
|
public ScripteInterface(IVirtualItem lc)
|
||||||
|
{
|
||||||
|
_itemInstance = lc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetDataList(object dataItem, int index)
|
||||||
|
{
|
||||||
|
if (_itemInstance == null) return;
|
||||||
|
_itemInstance.Index = index;
|
||||||
|
_itemInstance.SetData(dataItem);
|
||||||
|
}
|
||||||
|
public void Release()
|
||||||
|
{
|
||||||
|
if (_itemInstance == null) return;
|
||||||
|
_itemInstance.Release();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetDependencyProperty(object dependencyProperty)
|
||||||
|
{
|
||||||
|
if (_itemInstance == null) return;
|
||||||
|
|
||||||
|
_itemInstance.SetDependencyProperty(dependencyProperty);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface IVirtualItem
|
||||||
|
{
|
||||||
|
GameObject gameObject { get; }
|
||||||
|
int Index { get; set; }
|
||||||
|
void SetData(object data);
|
||||||
|
void SetDependencyProperty(object data);
|
||||||
|
void Release();
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f336cc2f1b183c748bf1db553448a734
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -4,9 +4,9 @@ using DG.Tweening.Plugins.Options;
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using UnityEditor;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
using static GluonGui.WorkspaceWindow.Views.Checkin.Operations.CheckinViewDeleteOperation;
|
|
||||||
|
|
||||||
namespace AxibugEmuOnline.Client.UI
|
namespace AxibugEmuOnline.Client.UI
|
||||||
{
|
{
|
||||||
@ -126,14 +126,17 @@ namespace AxibugEmuOnline.Client.UI
|
|||||||
|
|
||||||
for (int i = 0; i < MenuSetting.Count; i++)
|
for (int i = 0; i < MenuSetting.Count; i++)
|
||||||
{
|
{
|
||||||
|
var settingData = MenuSetting[i];
|
||||||
|
|
||||||
|
var templatePrefab = settingData.OverrideTemplate != null ? settingData.OverrideTemplate.gameObject : Template.gameObject;
|
||||||
MenuItem itemScript = null;
|
MenuItem itemScript = null;
|
||||||
var prefabClone = UnityEditor.PrefabUtility.InstantiatePrefab(Template.gameObject) as GameObject;
|
var prefabClone = UnityEditor.PrefabUtility.InstantiatePrefab(templatePrefab) as GameObject;
|
||||||
itemScript = prefabClone.GetComponent<MenuItem>();
|
itemScript = prefabClone.GetComponent<MenuItem>();
|
||||||
itemScript.gameObject.SetActive(true);
|
itemScript.gameObject.SetActive(true);
|
||||||
itemScript.transform.SetParent(GroupRoot.transform);
|
itemScript.transform.SetParent(GroupRoot.transform);
|
||||||
itemScript.transform.localScale = Vector3.one;
|
itemScript.transform.localScale = Vector3.one;
|
||||||
|
|
||||||
itemScript.SetData(MenuSetting[i]);
|
itemScript.SetData(settingData);
|
||||||
}
|
}
|
||||||
|
|
||||||
UnityEditor.EditorUtility.SetDirty(this);
|
UnityEditor.EditorUtility.SetDirty(this);
|
||||||
@ -147,7 +150,7 @@ namespace AxibugEmuOnline.Client.UI
|
|||||||
public Sprite Icon;
|
public Sprite Icon;
|
||||||
public string Name;
|
public string Name;
|
||||||
public string Description;
|
public string Description;
|
||||||
|
public MenuItem OverrideTemplate;
|
||||||
public List<MenuData> SubMenus;
|
public List<MenuData> SubMenus;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,8 @@ namespace AxibugEmuOnline.Client.UI
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
Image ShadowIcon;
|
Image ShadowIcon;
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
|
CanvasGroup InfoNode;
|
||||||
|
[SerializeField]
|
||||||
SubMenuItemGroup SubMenuItemGroup;
|
SubMenuItemGroup SubMenuItemGroup;
|
||||||
|
|
||||||
public float SelectScale = 1f;
|
public float SelectScale = 1f;
|
||||||
@ -27,10 +29,9 @@ namespace AxibugEmuOnline.Client.UI
|
|||||||
|
|
||||||
public RectTransform Rect => transform as RectTransform;
|
public RectTransform Rect => transform as RectTransform;
|
||||||
|
|
||||||
[SerializeField]
|
bool m_select;
|
||||||
private bool m_select;
|
TweenerCore<float, float, FloatOptions> progressTween;
|
||||||
private TweenerCore<float, float, FloatOptions> progressTween;
|
float m_progress;
|
||||||
public float m_progress;
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
m_select = false;
|
m_select = false;
|
||||||
@ -38,31 +39,26 @@ namespace AxibugEmuOnline.Client.UI
|
|||||||
|
|
||||||
if (ShadowIcon != null) ShadowIcon.gameObject.SetActive(false);
|
if (ShadowIcon != null) ShadowIcon.gameObject.SetActive(false);
|
||||||
|
|
||||||
var temp = Txt.color;
|
InfoNode.alpha = 0;
|
||||||
temp.a = 0;
|
|
||||||
Txt.color = temp;
|
|
||||||
if (Descript != null)
|
|
||||||
{
|
|
||||||
temp = Descript.color;
|
|
||||||
temp.a = 0;
|
|
||||||
Descript.color = temp;
|
|
||||||
}
|
|
||||||
if (ShadowIcon != null) ShadowIcon.gameObject.SetActiveEx(false);
|
if (ShadowIcon != null) ShadowIcon.gameObject.SetActiveEx(false);
|
||||||
if (SubMenuItemGroup != null) SubMenuItemGroup.SetSelect(false);
|
if (SubMenuItemGroup != null) SubMenuItemGroup.SetSelect(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetData(MenuData data)
|
public void SetData(MenuData data)
|
||||||
{
|
{
|
||||||
name = data.Name;
|
SetBaseInfo(data.Name, data.Description, data.Icon);
|
||||||
Icon.sprite = data.Icon;
|
if (SubMenuItemGroup != null) SubMenuItemGroup.Init(data.SubMenus);
|
||||||
|
}
|
||||||
|
|
||||||
if (ShadowIcon != null) ShadowIcon.sprite = data.Icon;
|
protected void SetBaseInfo(string name, string descript, Sprite icon)
|
||||||
|
{
|
||||||
|
this.name = name;
|
||||||
|
|
||||||
Txt.text = data.Name;
|
if (Icon != null) Icon.sprite = icon;
|
||||||
if (Descript != null) Descript.text = data.Description;
|
if (ShadowIcon != null) ShadowIcon.sprite = icon;
|
||||||
|
if (Txt != null) Txt.text = name;
|
||||||
|
if (Descript != null) Descript.text = descript;
|
||||||
|
|
||||||
if (SubMenuItemGroup != null)
|
|
||||||
SubMenuItemGroup.Init(data.SubMenus);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetSelectState(bool selected)
|
public void SetSelectState(bool selected)
|
||||||
@ -79,27 +75,14 @@ namespace AxibugEmuOnline.Client.UI
|
|||||||
progressTween = DOTween.To(() => m_progress, (x) => m_progress = x, m_select ? 1 : 0, 5)
|
progressTween = DOTween.To(() => m_progress, (x) => m_progress = x, m_select ? 1 : 0, 5)
|
||||||
.SetSpeedBased().OnUpdate(() =>
|
.SetSpeedBased().OnUpdate(() =>
|
||||||
{
|
{
|
||||||
var temp = Txt.color;
|
InfoNode.alpha = m_progress;
|
||||||
temp.a = m_progress;
|
|
||||||
Txt.color = temp;
|
|
||||||
if (Descript != null)
|
|
||||||
{
|
|
||||||
temp = Descript.color;
|
|
||||||
temp.a = m_progress;
|
|
||||||
Descript.color = temp;
|
|
||||||
}
|
|
||||||
|
|
||||||
Root.localScale = Vector3.one * Mathf.Lerp(UnSelectScale, SelectScale, m_progress);
|
Root.localScale = Vector3.one * Mathf.Lerp(UnSelectScale, SelectScale, m_progress);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnEnterItem()
|
public virtual void OnEnterItem() { }
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnExitItem()
|
public virtual void OnExitItem() { }
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
61
AxibugEmuOnline.Client/Assets/Script/UI/RomItem.cs
Normal file
61
AxibugEmuOnline.Client/Assets/Script/UI/RomItem.cs
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
using AxibugEmuOnline.Client.UI;
|
||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace AxibugEmuOnline.Client
|
||||||
|
{
|
||||||
|
public class RomItem : MenuItem, IVirtualItem
|
||||||
|
{
|
||||||
|
[SerializeField]
|
||||||
|
Image m_romImage;
|
||||||
|
|
||||||
|
public int Index { get; set; }
|
||||||
|
|
||||||
|
private RomLib m_romlib;
|
||||||
|
private RomFile m_romfile;
|
||||||
|
|
||||||
|
public void SetData(object data)
|
||||||
|
{
|
||||||
|
SetSelectState(true);
|
||||||
|
|
||||||
|
m_romfile = (RomFile)data;
|
||||||
|
|
||||||
|
UpdateView();
|
||||||
|
|
||||||
|
if (!m_romfile.InfoReady)
|
||||||
|
{
|
||||||
|
m_romfile.OnInfoFilled += OnRomInfoFilled;
|
||||||
|
m_romlib.BeginFetchRomInfo(m_romfile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetDependencyProperty(object data)
|
||||||
|
{
|
||||||
|
m_romlib = (RomLib)data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Release()
|
||||||
|
{
|
||||||
|
m_romfile.OnInfoFilled -= OnRomInfoFilled;
|
||||||
|
SetSelectState(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnRomInfoFilled()
|
||||||
|
{
|
||||||
|
UpdateView();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateView()
|
||||||
|
{
|
||||||
|
if (!m_romfile.InfoReady)
|
||||||
|
{
|
||||||
|
SetBaseInfo(string.Empty, string.Empty, null);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SetBaseInfo(m_romfile.Alias, m_romfile.Descript, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
11
AxibugEmuOnline.Client/Assets/Script/UI/RomItem.cs.meta
Normal file
11
AxibugEmuOnline.Client/Assets/Script/UI/RomItem.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f236de3ffaafd4149a3b7395e05b8d07
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -1,4 +1,5 @@
|
|||||||
using AxibugEmuOnline.Client.UI;
|
using AxibugEmuOnline.Client.UI;
|
||||||
|
using Codice.Utils;
|
||||||
using DG.Tweening;
|
using DG.Tweening;
|
||||||
using DG.Tweening.Core;
|
using DG.Tweening.Core;
|
||||||
using DG.Tweening.Plugins.Options;
|
using DG.Tweening.Plugins.Options;
|
||||||
@ -44,7 +45,9 @@ namespace AxibugEmuOnline.Client
|
|||||||
m_runtimeMenuUI.Clear();
|
m_runtimeMenuUI.Clear();
|
||||||
foreach (MenuData menuData in menuDataList)
|
foreach (MenuData menuData in menuDataList)
|
||||||
{
|
{
|
||||||
var item = Clone(transform);
|
var template = menuData.OverrideTemplate != null ? menuData.OverrideTemplate : SubMenuItemTemplate;
|
||||||
|
|
||||||
|
var item = Clone(template, transform);
|
||||||
item.SetData(menuData);
|
item.SetData(menuData);
|
||||||
m_runtimeMenuUI.Add(item);
|
m_runtimeMenuUI.Add(item);
|
||||||
}
|
}
|
||||||
@ -164,16 +167,16 @@ namespace AxibugEmuOnline.Client
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private MenuItem Clone(Transform parent)
|
private MenuItem Clone(MenuItem template, Transform parent)
|
||||||
{
|
{
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
if (Application.isPlaying)
|
if (Application.isPlaying)
|
||||||
{
|
{
|
||||||
return GameObject.Instantiate(SubMenuItemTemplate.gameObject, parent).GetComponent<MenuItem>();
|
return GameObject.Instantiate(template.gameObject, parent).GetComponent<MenuItem>();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var clone = UnityEditor.PrefabUtility.InstantiatePrefab(SubMenuItemTemplate.gameObject, parent) as GameObject;
|
var clone = UnityEditor.PrefabUtility.InstantiatePrefab(template.gameObject, parent) as GameObject;
|
||||||
return clone.GetComponent<MenuItem>();
|
return clone.GetComponent<MenuItem>();
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
53
AxibugEmuOnline.Client/Assets/Script/UI/ThirdMenuRoot.cs
Normal file
53
AxibugEmuOnline.Client/Assets/Script/UI/ThirdMenuRoot.cs
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace AxibugEmuOnline.Client
|
||||||
|
{
|
||||||
|
public class ThirdMenuRoot : MonoBehaviour
|
||||||
|
{
|
||||||
|
private RectTransform m_rect;
|
||||||
|
private RectTransform m_parent;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
float WidthFix = 50;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
m_rect = transform as RectTransform;
|
||||||
|
m_parent = transform.parent as RectTransform;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LateUpdate()
|
||||||
|
{
|
||||||
|
SyncRectToLaunchUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector3[] corner = new Vector3[4];
|
||||||
|
private void SyncRectToLaunchUI()
|
||||||
|
{
|
||||||
|
if (LaunchUI.Instance == null) return;
|
||||||
|
var launchUIRect = LaunchUI.Instance.transform as RectTransform;
|
||||||
|
|
||||||
|
m_rect.pivot = new Vector2(1, 0.5f);
|
||||||
|
m_rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, launchUIRect.rect.width);
|
||||||
|
m_rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, launchUIRect.rect.height);
|
||||||
|
m_rect.position = launchUIRect.position;
|
||||||
|
var temp = m_rect.localPosition;
|
||||||
|
var offsetX = (m_rect.pivot.x - 0.5f) * m_rect.rect.size.x;
|
||||||
|
temp.x += offsetX;
|
||||||
|
var offsetY = (m_rect.pivot.y - 0.5f) * m_rect.rect.size.y;
|
||||||
|
temp.y += offsetY;
|
||||||
|
m_rect.localPosition = temp;
|
||||||
|
m_rect.localScale = launchUIRect.localScale;
|
||||||
|
|
||||||
|
m_parent.GetWorldCorners(corner);
|
||||||
|
var parentPosition = corner[0];
|
||||||
|
parentPosition = launchUIRect.InverseTransformPoint(parentPosition);
|
||||||
|
launchUIRect.GetWorldCorners(corner);
|
||||||
|
var rootPosition = corner[0];
|
||||||
|
rootPosition = launchUIRect.InverseTransformPoint(rootPosition);
|
||||||
|
|
||||||
|
var widthGap = parentPosition.x - rootPosition.x;
|
||||||
|
m_rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, launchUIRect.rect.width - widthGap - WidthFix);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1d1e3e91ac34bc8468f357ee247ffb6a
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -642,7 +642,7 @@ PlayerSettings:
|
|||||||
scriptingDefineSymbols:
|
scriptingDefineSymbols:
|
||||||
1: DOTWEEN
|
1: DOTWEEN
|
||||||
4: DOTWEEN
|
4: DOTWEEN
|
||||||
7: DOTWEEN
|
7: DOTWEEN;ODIN_INSPECTOR;ODIN_INSPECTOR_3;ODIN_INSPECTOR_3_1;ODIN_INSPECTOR_EDITOR_ONLY
|
||||||
13: DOTWEEN
|
13: DOTWEEN
|
||||||
14: DOTWEEN
|
14: DOTWEEN
|
||||||
19: DOTWEEN
|
19: DOTWEEN
|
||||||
|
Loading…
Reference in New Issue
Block a user