Compare commits
2 Commits
a77b8c9394
...
f84119cb9f
Author | SHA1 | Date | |
---|---|---|---|
|
f84119cb9f | ||
|
35c17756ee |
@ -1072,7 +1072,6 @@ MonoBehaviour:
|
|||||||
textobj: {fileID: 0}
|
textobj: {fileID: 0}
|
||||||
promptobj: {fileID: 1604094516197368779}
|
promptobj: {fileID: 1604094516197368779}
|
||||||
contentobj: {fileID: 0}
|
contentobj: {fileID: 0}
|
||||||
iconobj: {fileID: 0}
|
|
||||||
--- !u!1 &1604094516948283744
|
--- !u!1 &1604094516948283744
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -200,19 +200,7 @@ MonoBehaviour:
|
|||||||
m_TargetGraphic: {fileID: 3522186619341923617}
|
m_TargetGraphic: {fileID: 3522186619341923617}
|
||||||
m_OnClick:
|
m_OnClick:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls:
|
m_Calls: []
|
||||||
- m_Target: {fileID: 8124619548067126509}
|
|
||||||
m_TargetAssemblyTypeName: input_box_pop_up_window_item, Assembly-CSharp
|
|
||||||
m_MethodName: onClikeAsync
|
|
||||||
m_Mode: 3
|
|
||||||
m_Arguments:
|
|
||||||
m_ObjectArgument: {fileID: 0}
|
|
||||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
|
||||||
m_IntArgument: 1
|
|
||||||
m_FloatArgument: 0
|
|
||||||
m_StringArgument:
|
|
||||||
m_BoolArgument: 0
|
|
||||||
m_CallState: 2
|
|
||||||
--- !u!1 &3522186619360982678
|
--- !u!1 &3522186619360982678
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -333,19 +321,7 @@ MonoBehaviour:
|
|||||||
m_TargetGraphic: {fileID: 3522186619360982676}
|
m_TargetGraphic: {fileID: 3522186619360982676}
|
||||||
m_OnClick:
|
m_OnClick:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls:
|
m_Calls: []
|
||||||
- m_Target: {fileID: 8124619548067126509}
|
|
||||||
m_TargetAssemblyTypeName: input_box_pop_up_window_item, Assembly-CSharp
|
|
||||||
m_MethodName: onClikeAsync
|
|
||||||
m_Mode: 3
|
|
||||||
m_Arguments:
|
|
||||||
m_ObjectArgument: {fileID: 0}
|
|
||||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
|
||||||
m_IntArgument: 2
|
|
||||||
m_FloatArgument: 0
|
|
||||||
m_StringArgument:
|
|
||||||
m_BoolArgument: 0
|
|
||||||
m_CallState: 2
|
|
||||||
--- !u!1 &3522186619381609934
|
--- !u!1 &3522186619381609934
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -454,8 +430,8 @@ RectTransform:
|
|||||||
m_GameObject: {fileID: 3522186619504334523}
|
m_GameObject: {fileID: 3522186619504334523}
|
||||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1.2, y: 1.2, z: 1.2}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 1
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 3522186619156399793}
|
- {fileID: 3522186619156399793}
|
||||||
- {fileID: 3522186620771686158}
|
- {fileID: 3522186620771686158}
|
||||||
@ -533,9 +509,9 @@ MonoBehaviour:
|
|||||||
details:
|
details:
|
||||||
button_0_text:
|
button_0_text:
|
||||||
button_1_text:
|
button_1_text:
|
||||||
textobj: {fileID: 3522186619156399792}
|
textobj: {fileID: 0}
|
||||||
promptobj: {fileID: 3522186619773485409}
|
promptobj: {fileID: 0}
|
||||||
contentobj: {fileID: 3522186619773485409}
|
contentobj: {fileID: 0}
|
||||||
iconobj: {fileID: 0}
|
iconobj: {fileID: 0}
|
||||||
--- !u!1 &3522186619773485409
|
--- !u!1 &3522186619773485409
|
||||||
GameObject:
|
GameObject:
|
||||||
@ -607,8 +583,8 @@ MonoBehaviour:
|
|||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 30
|
m_FontSize: 30
|
||||||
m_FontStyle: 0
|
m_FontStyle: 0
|
||||||
m_BestFit: 1
|
m_BestFit: 0
|
||||||
m_MinSize: 20
|
m_MinSize: 2
|
||||||
m_MaxSize: 40
|
m_MaxSize: 40
|
||||||
m_Alignment: 4
|
m_Alignment: 4
|
||||||
m_AlignByGeometry: 0
|
m_AlignByGeometry: 0
|
||||||
@ -646,7 +622,7 @@ RectTransform:
|
|||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 1
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 3522186619773485422}
|
- {fileID: 3522186619773485422}
|
||||||
- {fileID: 3522186619381609935}
|
- {fileID: 3522186619381609935}
|
||||||
@ -656,7 +632,7 @@ RectTransform:
|
|||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_SizeDelta: {x: 211.2355, y: 50}
|
m_SizeDelta: {x: 180, y: 50}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &3522186620730848391
|
--- !u!222 &3522186620730848391
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
@ -884,16 +860,4 @@ MonoBehaviour:
|
|||||||
m_TargetGraphic: {fileID: 3522186620771686159}
|
m_TargetGraphic: {fileID: 3522186620771686159}
|
||||||
m_OnClick:
|
m_OnClick:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls:
|
m_Calls: []
|
||||||
- m_Target: {fileID: 8124619548067126509}
|
|
||||||
m_TargetAssemblyTypeName: input_box_pop_up_window_item, Assembly-CSharp
|
|
||||||
m_MethodName: onClikeAsync
|
|
||||||
m_Mode: 3
|
|
||||||
m_Arguments:
|
|
||||||
m_ObjectArgument: {fileID: 0}
|
|
||||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
|
||||||
m_IntArgument: 0
|
|
||||||
m_FloatArgument: 0
|
|
||||||
m_StringArgument:
|
|
||||||
m_BoolArgument: 0
|
|
||||||
m_CallState: 2
|
|
||||||
|
@ -135,7 +135,7 @@ MonoBehaviour:
|
|||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 5605155466902313476}
|
m_GameObject: {fileID: 5605155466902313476}
|
||||||
m_Enabled: 0
|
m_Enabled: 1
|
||||||
m_EditorHideFlags: 0
|
m_EditorHideFlags: 0
|
||||||
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
|
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
@ -344,9 +344,9 @@ RectTransform:
|
|||||||
m_Father: {fileID: 4095573733552839397}
|
m_Father: {fileID: 4095573733552839397}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0.5, y: 1}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 0.5, y: 1}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: -200.00002}
|
m_AnchoredPosition: {x: 414, y: -199.99922}
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!114 &9071259163023854629
|
--- !u!114 &9071259163023854629
|
||||||
|
@ -38,7 +38,7 @@ RectTransform:
|
|||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 348.4167, y: -79}
|
m_AnchoredPosition: {x: 375.58264, y: -79}
|
||||||
m_SizeDelta: {x: 357.9, y: 100}
|
m_SizeDelta: {x: 357.9, y: 100}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!114 &378018514714711432
|
--- !u!114 &378018514714711432
|
||||||
@ -466,7 +466,7 @@ RectTransform:
|
|||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 626.3333, y: -79}
|
m_AnchoredPosition: {x: 680.6653, y: -79}
|
||||||
m_SizeDelta: {x: 139, y: 0}
|
m_SizeDelta: {x: 139, y: 0}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!114 &378018516203360773
|
--- !u!114 &378018516203360773
|
||||||
@ -757,7 +757,6 @@ MonoBehaviour:
|
|||||||
textobj: {fileID: 0}
|
textobj: {fileID: 0}
|
||||||
promptobj: {fileID: 0}
|
promptobj: {fileID: 0}
|
||||||
contentobj: {fileID: 0}
|
contentobj: {fileID: 0}
|
||||||
iconobj: {fileID: 4649679181415228129}
|
|
||||||
--- !u!1 &3518287654542512807
|
--- !u!1 &3518287654542512807
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -1,514 +1,5 @@
|
|||||||
%YAML 1.1
|
%YAML 1.1
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
--- !u!1 &2577236583140749483
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 1054118076708557941}
|
|
||||||
- component: {fileID: 5455739656093738042}
|
|
||||||
- component: {fileID: 3820547758556171928}
|
|
||||||
m_Layer: 5
|
|
||||||
m_Name: Text
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!224 &1054118076708557941
|
|
||||||
RectTransform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 2577236583140749483}
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 1160480278321268341}
|
|
||||||
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: 0, y: 0}
|
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
|
||||||
--- !u!222 &5455739656093738042
|
|
||||||
CanvasRenderer:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 2577236583140749483}
|
|
||||||
m_CullTransparentMesh: 1
|
|
||||||
--- !u!114 &3820547758556171928
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 2577236583140749483}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: "\u200B"
|
|
||||||
m_isRightToLeft: 0
|
|
||||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
|
||||||
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
|
||||||
m_fontSharedMaterials: []
|
|
||||||
m_fontMaterial: {fileID: 0}
|
|
||||||
m_fontMaterials: []
|
|
||||||
m_fontColor32:
|
|
||||||
serializedVersion: 2
|
|
||||||
rgba: 4294967295
|
|
||||||
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
m_enableVertexGradient: 0
|
|
||||||
m_colorMode: 3
|
|
||||||
m_fontColorGradient:
|
|
||||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
m_fontColorGradientPreset: {fileID: 0}
|
|
||||||
m_spriteAsset: {fileID: 0}
|
|
||||||
m_tintAllSprites: 0
|
|
||||||
m_StyleSheet: {fileID: 0}
|
|
||||||
m_TextStyleHashCode: -1183493901
|
|
||||||
m_overrideHtmlColors: 0
|
|
||||||
m_faceColor:
|
|
||||||
serializedVersion: 2
|
|
||||||
rgba: 4294967295
|
|
||||||
m_fontSize: 25
|
|
||||||
m_fontSizeBase: 25
|
|
||||||
m_fontWeight: 400
|
|
||||||
m_enableAutoSizing: 0
|
|
||||||
m_fontSizeMin: 18
|
|
||||||
m_fontSizeMax: 72
|
|
||||||
m_fontStyle: 0
|
|
||||||
m_HorizontalAlignment: 1
|
|
||||||
m_VerticalAlignment: 512
|
|
||||||
m_textAlignment: 65535
|
|
||||||
m_characterSpacing: 0
|
|
||||||
m_wordSpacing: 0
|
|
||||||
m_lineSpacing: 0
|
|
||||||
m_lineSpacingMax: 0
|
|
||||||
m_paragraphSpacing: 0
|
|
||||||
m_charWidthMaxAdj: 0
|
|
||||||
m_enableWordWrapping: 0
|
|
||||||
m_wordWrappingRatios: 0.4
|
|
||||||
m_overflowMode: 0
|
|
||||||
m_linkedTextComponent: {fileID: 0}
|
|
||||||
parentLinkedComponent: {fileID: 0}
|
|
||||||
m_enableKerning: 1
|
|
||||||
m_enableExtraPadding: 1
|
|
||||||
checkPaddingRequired: 0
|
|
||||||
m_isRichText: 1
|
|
||||||
m_parseCtrlCharacters: 1
|
|
||||||
m_isOrthographic: 1
|
|
||||||
m_isCullingEnabled: 0
|
|
||||||
m_horizontalMapping: 0
|
|
||||||
m_verticalMapping: 0
|
|
||||||
m_uvLineOffset: 0
|
|
||||||
m_geometrySortingOrder: 0
|
|
||||||
m_IsTextObjectScaleStatic: 0
|
|
||||||
m_VertexBufferAutoSizeReduction: 0
|
|
||||||
m_useMaxVisibleDescender: 1
|
|
||||||
m_pageToDisplay: 1
|
|
||||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
m_isUsingLegacyAnimationComponent: 0
|
|
||||||
m_isVolumetricText: 0
|
|
||||||
m_hasFontAssetChanged: 0
|
|
||||||
m_baseMaterial: {fileID: 0}
|
|
||||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
--- !u!1 &2717087779123041488
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 2970873782819170627}
|
|
||||||
- component: {fileID: 2020516536124530640}
|
|
||||||
- component: {fileID: 7099969782368123589}
|
|
||||||
- component: {fileID: 1460092514746300655}
|
|
||||||
m_Layer: 5
|
|
||||||
m_Name: Placeholder
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!224 &2970873782819170627
|
|
||||||
RectTransform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 2717087779123041488}
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 1160480278321268341}
|
|
||||||
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 &2020516536124530640
|
|
||||||
CanvasRenderer:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 2717087779123041488}
|
|
||||||
m_CullTransparentMesh: 1
|
|
||||||
--- !u!114 &7099969782368123589
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 2717087779123041488}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: "\u8F93\u5165UID"
|
|
||||||
m_isRightToLeft: 0
|
|
||||||
m_fontAsset: {fileID: 11400000, guid: c8f169cd16f459346964aab720dd2321, type: 2}
|
|
||||||
m_sharedMaterial: {fileID: -119483755500966471, guid: c8f169cd16f459346964aab720dd2321, type: 2}
|
|
||||||
m_fontSharedMaterials: []
|
|
||||||
m_fontMaterial: {fileID: 0}
|
|
||||||
m_fontMaterials: []
|
|
||||||
m_fontColor32:
|
|
||||||
serializedVersion: 2
|
|
||||||
rgba: 2164260863
|
|
||||||
m_fontColor: {r: 1, g: 1, b: 1, a: 0.5}
|
|
||||||
m_enableVertexGradient: 0
|
|
||||||
m_colorMode: 3
|
|
||||||
m_fontColorGradient:
|
|
||||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
m_fontColorGradientPreset: {fileID: 0}
|
|
||||||
m_spriteAsset: {fileID: 0}
|
|
||||||
m_tintAllSprites: 0
|
|
||||||
m_StyleSheet: {fileID: 0}
|
|
||||||
m_TextStyleHashCode: -1183493901
|
|
||||||
m_overrideHtmlColors: 0
|
|
||||||
m_faceColor:
|
|
||||||
serializedVersion: 2
|
|
||||||
rgba: 4294967295
|
|
||||||
m_fontSize: 25
|
|
||||||
m_fontSizeBase: 25
|
|
||||||
m_fontWeight: 400
|
|
||||||
m_enableAutoSizing: 0
|
|
||||||
m_fontSizeMin: 18
|
|
||||||
m_fontSizeMax: 72
|
|
||||||
m_fontStyle: 0
|
|
||||||
m_HorizontalAlignment: 1
|
|
||||||
m_VerticalAlignment: 512
|
|
||||||
m_textAlignment: 65535
|
|
||||||
m_characterSpacing: 0
|
|
||||||
m_wordSpacing: 0
|
|
||||||
m_lineSpacing: 0
|
|
||||||
m_lineSpacingMax: 0
|
|
||||||
m_paragraphSpacing: 0
|
|
||||||
m_charWidthMaxAdj: 0
|
|
||||||
m_enableWordWrapping: 0
|
|
||||||
m_wordWrappingRatios: 0.4
|
|
||||||
m_overflowMode: 0
|
|
||||||
m_linkedTextComponent: {fileID: 0}
|
|
||||||
parentLinkedComponent: {fileID: 0}
|
|
||||||
m_enableKerning: 1
|
|
||||||
m_enableExtraPadding: 1
|
|
||||||
checkPaddingRequired: 0
|
|
||||||
m_isRichText: 1
|
|
||||||
m_parseCtrlCharacters: 1
|
|
||||||
m_isOrthographic: 1
|
|
||||||
m_isCullingEnabled: 0
|
|
||||||
m_horizontalMapping: 0
|
|
||||||
m_verticalMapping: 0
|
|
||||||
m_uvLineOffset: 0
|
|
||||||
m_geometrySortingOrder: 0
|
|
||||||
m_IsTextObjectScaleStatic: 0
|
|
||||||
m_VertexBufferAutoSizeReduction: 0
|
|
||||||
m_useMaxVisibleDescender: 1
|
|
||||||
m_pageToDisplay: 1
|
|
||||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
m_isUsingLegacyAnimationComponent: 0
|
|
||||||
m_isVolumetricText: 0
|
|
||||||
m_hasFontAssetChanged: 0
|
|
||||||
m_baseMaterial: {fileID: 0}
|
|
||||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
--- !u!114 &1460092514746300655
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 2717087779123041488}
|
|
||||||
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: 30
|
|
||||||
m_PreferredWidth: -1
|
|
||||||
m_PreferredHeight: -1
|
|
||||||
m_FlexibleWidth: -1
|
|
||||||
m_FlexibleHeight: -1
|
|
||||||
m_LayoutPriority: 1
|
|
||||||
--- !u!1 &6227802807520037164
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 7627703242945270290}
|
|
||||||
- component: {fileID: 2144698140124952037}
|
|
||||||
- component: {fileID: 6422499391592435103}
|
|
||||||
- component: {fileID: 3476228576391112967}
|
|
||||||
- component: {fileID: 4522152248442151088}
|
|
||||||
- component: {fileID: 8360185690133058945}
|
|
||||||
m_Layer: 5
|
|
||||||
m_Name: InputField (TMP)
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!224 &7627703242945270290
|
|
||||||
RectTransform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 6227802807520037164}
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children:
|
|
||||||
- {fileID: 1160480278321268341}
|
|
||||||
m_Father: {fileID: 7312455269648156699}
|
|
||||||
m_RootOrder: 0
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
|
||||||
m_AnchoredPosition: {x: 347.96, y: -37}
|
|
||||||
m_SizeDelta: {x: 695.92, y: 0}
|
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
|
||||||
--- !u!222 &2144698140124952037
|
|
||||||
CanvasRenderer:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 6227802807520037164}
|
|
||||||
m_CullTransparentMesh: 1
|
|
||||||
--- !u!114 &6422499391592435103
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 6227802807520037164}
|
|
||||||
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: 6bf1af471e918cf43863ca4635a3a021, 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 &3476228576391112967
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 6227802807520037164}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_Navigation:
|
|
||||||
m_Mode: 3
|
|
||||||
m_WrapAround: 0
|
|
||||||
m_SelectOnUp: {fileID: 0}
|
|
||||||
m_SelectOnDown: {fileID: 0}
|
|
||||||
m_SelectOnLeft: {fileID: 0}
|
|
||||||
m_SelectOnRight: {fileID: 0}
|
|
||||||
m_Transition: 1
|
|
||||||
m_Colors:
|
|
||||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
|
||||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
|
||||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
|
||||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
|
||||||
m_ColorMultiplier: 1
|
|
||||||
m_FadeDuration: 0.1
|
|
||||||
m_SpriteState:
|
|
||||||
m_HighlightedSprite: {fileID: 0}
|
|
||||||
m_PressedSprite: {fileID: 0}
|
|
||||||
m_SelectedSprite: {fileID: 0}
|
|
||||||
m_DisabledSprite: {fileID: 0}
|
|
||||||
m_AnimationTriggers:
|
|
||||||
m_NormalTrigger: Normal
|
|
||||||
m_HighlightedTrigger: Highlighted
|
|
||||||
m_PressedTrigger: Pressed
|
|
||||||
m_SelectedTrigger: Selected
|
|
||||||
m_DisabledTrigger: Disabled
|
|
||||||
m_Interactable: 1
|
|
||||||
m_TargetGraphic: {fileID: 6422499391592435103}
|
|
||||||
m_TextViewport: {fileID: 1160480278321268341}
|
|
||||||
m_TextComponent: {fileID: 3820547758556171928}
|
|
||||||
m_Placeholder: {fileID: 7099969782368123589}
|
|
||||||
m_VerticalScrollbar: {fileID: 0}
|
|
||||||
m_VerticalScrollbarEventHandler: {fileID: 0}
|
|
||||||
m_LayoutGroup: {fileID: 8360185690133058945}
|
|
||||||
m_ScrollSensitivity: 1
|
|
||||||
m_ContentType: 0
|
|
||||||
m_InputType: 0
|
|
||||||
m_AsteriskChar: 42
|
|
||||||
m_KeyboardType: 0
|
|
||||||
m_LineType: 0
|
|
||||||
m_HideMobileInput: 0
|
|
||||||
m_HideSoftKeyboard: 0
|
|
||||||
m_CharacterValidation: 0
|
|
||||||
m_RegexValue:
|
|
||||||
m_GlobalPointSize: 14
|
|
||||||
m_CharacterLimit: 0
|
|
||||||
m_OnEndEdit:
|
|
||||||
m_PersistentCalls:
|
|
||||||
m_Calls: []
|
|
||||||
m_OnSubmit:
|
|
||||||
m_PersistentCalls:
|
|
||||||
m_Calls: []
|
|
||||||
m_OnSelect:
|
|
||||||
m_PersistentCalls:
|
|
||||||
m_Calls: []
|
|
||||||
m_OnDeselect:
|
|
||||||
m_PersistentCalls:
|
|
||||||
m_Calls: []
|
|
||||||
m_OnTextSelection:
|
|
||||||
m_PersistentCalls:
|
|
||||||
m_Calls: []
|
|
||||||
m_OnEndTextSelection:
|
|
||||||
m_PersistentCalls:
|
|
||||||
m_Calls: []
|
|
||||||
m_OnValueChanged:
|
|
||||||
m_PersistentCalls:
|
|
||||||
m_Calls: []
|
|
||||||
m_OnTouchScreenKeyboardStatusChanged:
|
|
||||||
m_PersistentCalls:
|
|
||||||
m_Calls: []
|
|
||||||
m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
|
|
||||||
m_CustomCaretColor: 0
|
|
||||||
m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
|
|
||||||
m_Text:
|
|
||||||
m_CaretBlinkRate: 0.85
|
|
||||||
m_CaretWidth: 1
|
|
||||||
m_ReadOnly: 0
|
|
||||||
m_RichText: 1
|
|
||||||
m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
|
||||||
m_OnFocusSelectAll: 1
|
|
||||||
m_ResetOnDeActivation: 1
|
|
||||||
m_RestoreOriginalTextOnEscape: 1
|
|
||||||
m_isRichTextEditingAllowed: 0
|
|
||||||
m_LineLimit: 0
|
|
||||||
m_InputValidator: {fileID: 0}
|
|
||||||
--- !u!114 &4522152248442151088
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 6227802807520037164}
|
|
||||||
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!114 &8360185690133058945
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 6227802807520037164}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_Padding:
|
|
||||||
m_Left: 11
|
|
||||||
m_Right: 0
|
|
||||||
m_Top: 0
|
|
||||||
m_Bottom: 0
|
|
||||||
m_ChildAlignment: 0
|
|
||||||
m_Spacing: 0
|
|
||||||
m_ChildForceExpandWidth: 1
|
|
||||||
m_ChildForceExpandHeight: 1
|
|
||||||
m_ChildControlWidth: 1
|
|
||||||
m_ChildControlHeight: 1
|
|
||||||
m_ChildScaleWidth: 0
|
|
||||||
m_ChildScaleHeight: 0
|
|
||||||
m_ReverseArrangement: 0
|
|
||||||
--- !u!1 &7312455269240005508
|
--- !u!1 &7312455269240005508
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -520,7 +11,6 @@ GameObject:
|
|||||||
- component: {fileID: 7312455269240005511}
|
- component: {fileID: 7312455269240005511}
|
||||||
- component: {fileID: 7312455269240005529}
|
- component: {fileID: 7312455269240005529}
|
||||||
- component: {fileID: 7312455269240005510}
|
- component: {fileID: 7312455269240005510}
|
||||||
- component: {fileID: 1593343116721935113}
|
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Image
|
m_Name: Image
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@ -535,17 +25,17 @@ RectTransform:
|
|||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 7312455269240005508}
|
m_GameObject: {fileID: 7312455269240005508}
|
||||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 1160480278321268341}
|
m_Father: {fileID: 7312455270258174029}
|
||||||
m_RootOrder: 2
|
m_RootOrder: 1
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 1, y: 0.5}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 1, y: 0.5}
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
m_AnchoredPosition: {x: -38, y: 0}
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_SizeDelta: {x: 44, y: 44}
|
m_SizeDelta: {x: 44, y: 44}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &7312455269240005529
|
--- !u!222 &7312455269240005529
|
||||||
@ -586,62 +76,6 @@ MonoBehaviour:
|
|||||||
m_FillOrigin: 0
|
m_FillOrigin: 0
|
||||||
m_UseSpriteMesh: 0
|
m_UseSpriteMesh: 0
|
||||||
m_PixelsPerUnitMultiplier: 1
|
m_PixelsPerUnitMultiplier: 1
|
||||||
--- !u!114 &1593343116721935113
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 7312455269240005508}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_Navigation:
|
|
||||||
m_Mode: 3
|
|
||||||
m_WrapAround: 0
|
|
||||||
m_SelectOnUp: {fileID: 0}
|
|
||||||
m_SelectOnDown: {fileID: 0}
|
|
||||||
m_SelectOnLeft: {fileID: 0}
|
|
||||||
m_SelectOnRight: {fileID: 0}
|
|
||||||
m_Transition: 1
|
|
||||||
m_Colors:
|
|
||||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
|
||||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
|
||||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
|
||||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
|
||||||
m_ColorMultiplier: 1
|
|
||||||
m_FadeDuration: 0.1
|
|
||||||
m_SpriteState:
|
|
||||||
m_HighlightedSprite: {fileID: 0}
|
|
||||||
m_PressedSprite: {fileID: 0}
|
|
||||||
m_SelectedSprite: {fileID: 0}
|
|
||||||
m_DisabledSprite: {fileID: 0}
|
|
||||||
m_AnimationTriggers:
|
|
||||||
m_NormalTrigger: Normal
|
|
||||||
m_HighlightedTrigger: Highlighted
|
|
||||||
m_PressedTrigger: Pressed
|
|
||||||
m_SelectedTrigger: Selected
|
|
||||||
m_DisabledTrigger: Disabled
|
|
||||||
m_Interactable: 1
|
|
||||||
m_TargetGraphic: {fileID: 7312455269240005510}
|
|
||||||
m_OnClick:
|
|
||||||
m_PersistentCalls:
|
|
||||||
m_Calls:
|
|
||||||
- m_Target: {fileID: 7955085337624733968}
|
|
||||||
m_TargetAssemblyTypeName: input_box_pop_up_window_item, Assembly-CSharp
|
|
||||||
m_MethodName: onClikeAsync
|
|
||||||
m_Mode: 3
|
|
||||||
m_Arguments:
|
|
||||||
m_ObjectArgument: {fileID: 0}
|
|
||||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
|
||||||
m_IntArgument: 0
|
|
||||||
m_FloatArgument: 0
|
|
||||||
m_StringArgument:
|
|
||||||
m_BoolArgument: 0
|
|
||||||
m_CallState: 2
|
|
||||||
--- !u!1 &7312455269648156696
|
--- !u!1 &7312455269648156696
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -653,7 +87,6 @@ GameObject:
|
|||||||
- component: {fileID: 7312455269648156699}
|
- component: {fileID: 7312455269648156699}
|
||||||
- component: {fileID: 218572923371924387}
|
- component: {fileID: 218572923371924387}
|
||||||
- component: {fileID: 1422487797370688703}
|
- component: {fileID: 1422487797370688703}
|
||||||
- component: {fileID: 7955085337624733968}
|
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: talent_gift_input
|
m_Name: talent_gift_input
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@ -673,7 +106,7 @@ RectTransform:
|
|||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 7627703242945270290}
|
- {fileID: 7312455270258174029}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
@ -722,34 +155,7 @@ MonoBehaviour:
|
|||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_HorizontalFit: 2
|
m_HorizontalFit: 2
|
||||||
m_VerticalFit: 2
|
m_VerticalFit: 2
|
||||||
--- !u!114 &7955085337624733968
|
--- !u!1 &7312455269798856153
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 7312455269648156696}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: d5f05f4b390610b45b78dd10cb4e88c0, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
boxType:
|
|
||||||
Name:
|
|
||||||
textName:
|
|
||||||
prompt:
|
|
||||||
is_required: 0
|
|
||||||
content:
|
|
||||||
Type: 0
|
|
||||||
icon: {fileID: 0}
|
|
||||||
details:
|
|
||||||
button_0_text:
|
|
||||||
button_1_text:
|
|
||||||
textobj: {fileID: 0}
|
|
||||||
promptobj: {fileID: 0}
|
|
||||||
contentobj: {fileID: 0}
|
|
||||||
iconobj: {fileID: 0}
|
|
||||||
--- !u!1 &9048620534841340429
|
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
@ -757,70 +163,195 @@ GameObject:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 1160480278321268341}
|
- component: {fileID: 7312455269798856152}
|
||||||
- component: {fileID: 4799432641699874123}
|
- component: {fileID: 7312455269798856154}
|
||||||
- component: {fileID: 7342771844457491185}
|
- component: {fileID: 7312455269798856155}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Text Area
|
m_Name: Text (Legacy)
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 1
|
m_IsActive: 1
|
||||||
--- !u!224 &1160480278321268341
|
--- !u!224 &7312455269798856152
|
||||||
RectTransform:
|
RectTransform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 9048620534841340429}
|
m_GameObject: {fileID: 7312455269798856153}
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children:
|
m_Children: []
|
||||||
- {fileID: 2970873782819170627}
|
m_Father: {fileID: 7312455270258174029}
|
||||||
- {fileID: 1054118076708557941}
|
|
||||||
- {fileID: 7312455269240005511}
|
|
||||||
m_Father: {fileID: 7627703242945270290}
|
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
m_SizeDelta: {x: 160, y: 30}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!114 &4799432641699874123
|
--- !u!222 &7312455269798856154
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7312455269798856153}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &7312455269798856155
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 9048620534841340429}
|
m_GameObject: {fileID: 7312455269798856153}
|
||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
m_EditorHideFlags: 0
|
m_EditorHideFlags: 0
|
||||||
m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3}
|
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_Padding: {x: -8, y: -5, z: -8, w: -5}
|
m_Material: {fileID: 0}
|
||||||
m_Softness: {x: 0, y: 0}
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
--- !u!114 &7342771844457491185
|
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: 25
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_BestFit: 0
|
||||||
|
m_MinSize: 0
|
||||||
|
m_MaxSize: 40
|
||||||
|
m_Alignment: 4
|
||||||
|
m_AlignByGeometry: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_HorizontalOverflow: 0
|
||||||
|
m_VerticalOverflow: 0
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Text: "\u8F93\u5165UID"
|
||||||
|
--- !u!1 &7312455270258174026
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 7312455270258174029}
|
||||||
|
- component: {fileID: 7312455270258174017}
|
||||||
|
- component: {fileID: 7312455270258174030}
|
||||||
|
- component: {fileID: 7312455270258174031}
|
||||||
|
- component: {fileID: 7312455270258174028}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Image
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &7312455270258174029
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7312455270258174026}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 7312455269798856152}
|
||||||
|
- {fileID: 7312455269240005511}
|
||||||
|
m_Father: {fileID: 7312455269648156699}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 347.96002, y: -37}
|
||||||
|
m_SizeDelta: {x: 695.92004, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &7312455270258174017
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7312455270258174026}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &7312455270258174030
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 9048620534841340429}
|
m_GameObject: {fileID: 7312455270258174026}
|
||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
m_EditorHideFlags: 0
|
m_EditorHideFlags: 0
|
||||||
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_IgnoreLayout: 0
|
m_Material: {fileID: 0}
|
||||||
m_MinWidth: -1
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
m_MinHeight: 74
|
m_RaycastTarget: 1
|
||||||
m_PreferredWidth: -1
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
m_PreferredHeight: -1
|
m_Maskable: 1
|
||||||
m_FlexibleWidth: -1
|
m_OnCullStateChanged:
|
||||||
m_FlexibleHeight: -1
|
m_PersistentCalls:
|
||||||
m_LayoutPriority: 1
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 21300000, guid: 6bf1af471e918cf43863ca4635a3a021, 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 &7312455270258174031
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7312455270258174026}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_HorizontalFit: 1
|
||||||
|
m_VerticalFit: 1
|
||||||
|
--- !u!114 &7312455270258174028
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7312455270258174026}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Padding:
|
||||||
|
m_Left: -21
|
||||||
|
m_Right: 15
|
||||||
|
m_Top: 15
|
||||||
|
m_Bottom: 15
|
||||||
|
m_ChildAlignment: 4
|
||||||
|
m_Spacing: 497.92
|
||||||
|
m_ChildForceExpandWidth: 1
|
||||||
|
m_ChildForceExpandHeight: 1
|
||||||
|
m_ChildControlWidth: 0
|
||||||
|
m_ChildControlHeight: 0
|
||||||
|
m_ChildScaleWidth: 0
|
||||||
|
m_ChildScaleHeight: 0
|
||||||
|
m_ReverseArrangement: 0
|
||||||
|
@ -122,7 +122,7 @@ MonoBehaviour:
|
|||||||
m_HandleRect: {fileID: 2140087780101246732}
|
m_HandleRect: {fileID: 2140087780101246732}
|
||||||
m_Direction: 2
|
m_Direction: 2
|
||||||
m_Value: 1
|
m_Value: 1
|
||||||
m_Size: 0.5991286
|
m_Size: 0.364012
|
||||||
m_NumberOfSteps: 0
|
m_NumberOfSteps: 0
|
||||||
m_OnValueChanged:
|
m_OnValueChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
@ -140,7 +140,6 @@ GameObject:
|
|||||||
- component: {fileID: 2140087778894812372}
|
- component: {fileID: 2140087778894812372}
|
||||||
- component: {fileID: 2140087778894812395}
|
- component: {fileID: 2140087778894812395}
|
||||||
- component: {fileID: 1907693292}
|
- component: {fileID: 1907693292}
|
||||||
- component: {fileID: 9213568062188715478}
|
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: text_content
|
m_Name: text_content
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@ -258,33 +257,6 @@ MonoBehaviour:
|
|||||||
m_FlexibleWidth: -1
|
m_FlexibleWidth: -1
|
||||||
m_FlexibleHeight: -1
|
m_FlexibleHeight: -1
|
||||||
m_LayoutPriority: 1
|
m_LayoutPriority: 1
|
||||||
--- !u!114 &9213568062188715478
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 2140087778894812393}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: d5f05f4b390610b45b78dd10cb4e88c0, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
boxType:
|
|
||||||
Name:
|
|
||||||
textName:
|
|
||||||
prompt:
|
|
||||||
is_required: 0
|
|
||||||
content:
|
|
||||||
Type: 0
|
|
||||||
icon: {fileID: 0}
|
|
||||||
details:
|
|
||||||
button_0_text:
|
|
||||||
button_1_text:
|
|
||||||
textobj: {fileID: 0}
|
|
||||||
promptobj: {fileID: 0}
|
|
||||||
contentobj: {fileID: 2140087780270203174}
|
|
||||||
iconobj: {fileID: 0}
|
|
||||||
--- !u!1 &2140087779150598370
|
--- !u!1 &2140087779150598370
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -113,7 +113,7 @@ Material:
|
|||||||
- _AlphaOutlineMinAlpha: 0
|
- _AlphaOutlineMinAlpha: 0
|
||||||
- _AlphaOutlinePower: 1
|
- _AlphaOutlinePower: 1
|
||||||
- _AlphaRoundThreshold: 0.5
|
- _AlphaRoundThreshold: 0.5
|
||||||
- _AspectRatio: 0.46153846
|
- _AspectRatio: 0.5625
|
||||||
- _BillboardY: 0
|
- _BillboardY: 0
|
||||||
- _BlurHD: 0
|
- _BlurHD: 0
|
||||||
- _BlurIntensity: 10
|
- _BlurIntensity: 10
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -306,7 +306,8 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: b0d037404676f94408d73bb6199200aa, type: 3}
|
m_Script: {fileID: 11500000, guid: b0d037404676f94408d73bb6199200aa, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
username: {fileID: 3011360594389648156}
|
name: {fileID: 3011360594389648156}
|
||||||
|
userid: {fileID: 3011360594389648157}
|
||||||
--- !u!1 &304400296
|
--- !u!1 &304400296
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -1359,6 +1360,10 @@ PrefabInstance:
|
|||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3011360593223604693, guid: a8cc81ed2c5736a46a14628d8d489ac4, type: 3}
|
||||||
|
propertyPath: m_FillAmount
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3011360593285734026, guid: a8cc81ed2c5736a46a14628d8d489ac4, type: 3}
|
- target: {fileID: 3011360593285734026, guid: a8cc81ed2c5736a46a14628d8d489ac4, type: 3}
|
||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 0
|
value: 0
|
||||||
@ -1808,3 +1813,14 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
--- !u!114 &3011360594389648157 stripped
|
||||||
|
MonoBehaviour:
|
||||||
|
m_CorrespondingSourceObject: {fileID: 3011360592980482152, guid: a8cc81ed2c5736a46a14628d8d489ac4, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 3011360594389648155}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
8
meng_yao/Assets/Scripts.meta
Normal file
8
meng_yao/Assets/Scripts.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d4b7f9054c759714e8214d23772b617a
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
meng_yao/Assets/Scripts/Framework.meta
Normal file
8
meng_yao/Assets/Scripts/Framework.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a7cb49264c3690747b5d55a9000e36c5
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
meng_yao/Assets/Scripts/Framework/Json.meta
Normal file
8
meng_yao/Assets/Scripts/Framework/Json.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3da826ab38bbee34786ae5a30d4c023e
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
meng_yao/Assets/Scripts/Framework/Json/LitJson.meta
Normal file
8
meng_yao/Assets/Scripts/Framework/Json/LitJson.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b8da3546313aed64495e6f4a80eb0e5f
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,18 @@
|
|||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
|
|
||||||
|
[assembly: CLSCompliant (true)]
|
||||||
|
|
||||||
|
[assembly: AssemblyTitle ("LitJson")]
|
||||||
|
[assembly: AssemblyDescription ("LitJSON library")]
|
||||||
|
[assembly: AssemblyConfiguration ("")]
|
||||||
|
[assembly: AssemblyCompany ("")]
|
||||||
|
[assembly: AssemblyProduct ("LitJSON")]
|
||||||
|
[assembly: AssemblyCopyright (
|
||||||
|
"The authors disclaim copyright to this source code")]
|
||||||
|
[assembly: AssemblyTrademark ("")]
|
||||||
|
[assembly: AssemblyCulture ("")]
|
||||||
|
|
||||||
|
[assembly: AssemblyVersion ("@ASSEMBLY_VERSION@")]
|
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fb23db2cd92868f4eaad62c1137b4e46
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,60 @@
|
|||||||
|
#region Header
|
||||||
|
/**
|
||||||
|
* IJsonWrapper.cs
|
||||||
|
* Interface that represents a type capable of handling all kinds of JSON
|
||||||
|
* data. This is mainly used when mapping objects through JsonMapper, and
|
||||||
|
* it's implemented by JsonData.
|
||||||
|
*
|
||||||
|
* The authors disclaim copyright to this source code. For more details, see
|
||||||
|
* the COPYING file included with this distribution.
|
||||||
|
**/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Specialized;
|
||||||
|
|
||||||
|
|
||||||
|
namespace LitJson
|
||||||
|
{
|
||||||
|
public enum JsonType
|
||||||
|
{
|
||||||
|
None,
|
||||||
|
|
||||||
|
Object,
|
||||||
|
Array,
|
||||||
|
String,
|
||||||
|
Int,
|
||||||
|
Long,
|
||||||
|
Double,
|
||||||
|
Boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface IJsonWrapper : IList, IOrderedDictionary
|
||||||
|
{
|
||||||
|
bool IsArray { get; }
|
||||||
|
bool IsBoolean { get; }
|
||||||
|
bool IsDouble { get; }
|
||||||
|
bool IsInt { get; }
|
||||||
|
bool IsLong { get; }
|
||||||
|
bool IsObject { get; }
|
||||||
|
bool IsString { get; }
|
||||||
|
|
||||||
|
bool GetBoolean ();
|
||||||
|
double GetDouble ();
|
||||||
|
int GetInt ();
|
||||||
|
JsonType GetJsonType ();
|
||||||
|
long GetLong ();
|
||||||
|
string GetString ();
|
||||||
|
|
||||||
|
void SetBoolean (bool val);
|
||||||
|
void SetDouble (double val);
|
||||||
|
void SetInt (int val);
|
||||||
|
void SetJsonType (JsonType type);
|
||||||
|
void SetLong (long val);
|
||||||
|
void SetString (string val);
|
||||||
|
|
||||||
|
string ToJson ();
|
||||||
|
void ToJson (JsonWriter writer);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 32d8f3d1927d82e42a728dacbd7883e1
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
1059
meng_yao/Assets/Scripts/Framework/Json/LitJson/JsonData.cs
Normal file
1059
meng_yao/Assets/Scripts/Framework/Json/LitJson/JsonData.cs
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 84ab1a4fe8561e04982a4dcc72ee7375
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,65 @@
|
|||||||
|
#region Header
|
||||||
|
/**
|
||||||
|
* JsonException.cs
|
||||||
|
* Base class throwed by LitJSON when a parsing error occurs.
|
||||||
|
*
|
||||||
|
* The authors disclaim copyright to this source code. For more details, see
|
||||||
|
* the COPYING file included with this distribution.
|
||||||
|
**/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
using System;
|
||||||
|
|
||||||
|
|
||||||
|
namespace LitJson
|
||||||
|
{
|
||||||
|
public class JsonException :
|
||||||
|
#if NETSTANDARD1_5
|
||||||
|
Exception
|
||||||
|
#else
|
||||||
|
ApplicationException
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
public JsonException () : base ()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
internal JsonException (ParserToken token) :
|
||||||
|
base (String.Format (
|
||||||
|
"Invalid token '{0}' in input string", token))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
internal JsonException (ParserToken token,
|
||||||
|
Exception inner_exception) :
|
||||||
|
base (String.Format (
|
||||||
|
"Invalid token '{0}' in input string", token),
|
||||||
|
inner_exception)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
internal JsonException (int c) :
|
||||||
|
base (String.Format (
|
||||||
|
"Invalid character '{0}' in input string", (char) c))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
internal JsonException (int c, Exception inner_exception) :
|
||||||
|
base (String.Format (
|
||||||
|
"Invalid character '{0}' in input string", (char) c),
|
||||||
|
inner_exception)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public JsonException (string message) : base (message)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public JsonException (string message, Exception inner_exception) :
|
||||||
|
base (message, inner_exception)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e3e9c63918be5ec4fb0ee32da86c8cbe
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
995
meng_yao/Assets/Scripts/Framework/Json/LitJson/JsonMapper.cs
Normal file
995
meng_yao/Assets/Scripts/Framework/Json/LitJson/JsonMapper.cs
Normal file
@ -0,0 +1,995 @@
|
|||||||
|
#region Header
|
||||||
|
/**
|
||||||
|
* JsonMapper.cs
|
||||||
|
* JSON to .Net object and object to JSON conversions.
|
||||||
|
*
|
||||||
|
* The authors disclaim copyright to this source code. For more details, see
|
||||||
|
* the COPYING file included with this distribution.
|
||||||
|
**/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
|
||||||
|
namespace LitJson
|
||||||
|
{
|
||||||
|
internal struct PropertyMetadata
|
||||||
|
{
|
||||||
|
public MemberInfo Info;
|
||||||
|
public bool IsField;
|
||||||
|
public Type Type;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
internal struct ArrayMetadata
|
||||||
|
{
|
||||||
|
private Type element_type;
|
||||||
|
private bool is_array;
|
||||||
|
private bool is_list;
|
||||||
|
|
||||||
|
|
||||||
|
public Type ElementType {
|
||||||
|
get {
|
||||||
|
if (element_type == null)
|
||||||
|
return typeof (JsonData);
|
||||||
|
|
||||||
|
return element_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
set { element_type = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsArray {
|
||||||
|
get { return is_array; }
|
||||||
|
set { is_array = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsList {
|
||||||
|
get { return is_list; }
|
||||||
|
set { is_list = value; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
internal struct ObjectMetadata
|
||||||
|
{
|
||||||
|
private Type element_type;
|
||||||
|
private bool is_dictionary;
|
||||||
|
|
||||||
|
private IDictionary<string, PropertyMetadata> properties;
|
||||||
|
|
||||||
|
|
||||||
|
public Type ElementType {
|
||||||
|
get {
|
||||||
|
if (element_type == null)
|
||||||
|
return typeof (JsonData);
|
||||||
|
|
||||||
|
return element_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
set { element_type = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsDictionary {
|
||||||
|
get { return is_dictionary; }
|
||||||
|
set { is_dictionary = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public IDictionary<string, PropertyMetadata> Properties {
|
||||||
|
get { return properties; }
|
||||||
|
set { properties = value; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
internal delegate void ExporterFunc (object obj, JsonWriter writer);
|
||||||
|
public delegate void ExporterFunc<T> (T obj, JsonWriter writer);
|
||||||
|
|
||||||
|
internal delegate object ImporterFunc (object input);
|
||||||
|
public delegate TValue ImporterFunc<TJson, TValue> (TJson input);
|
||||||
|
|
||||||
|
public delegate IJsonWrapper WrapperFactory ();
|
||||||
|
|
||||||
|
|
||||||
|
public class JsonMapper
|
||||||
|
{
|
||||||
|
#region Fields
|
||||||
|
private static readonly int max_nesting_depth;
|
||||||
|
|
||||||
|
private static readonly IFormatProvider datetime_format;
|
||||||
|
|
||||||
|
private static readonly IDictionary<Type, ExporterFunc> base_exporters_table;
|
||||||
|
private static readonly IDictionary<Type, ExporterFunc> custom_exporters_table;
|
||||||
|
private static readonly object custom_exporters_table_lock = new Object();
|
||||||
|
|
||||||
|
private static readonly IDictionary<Type,
|
||||||
|
IDictionary<Type, ImporterFunc>> base_importers_table;
|
||||||
|
private static readonly IDictionary<Type,
|
||||||
|
IDictionary<Type, ImporterFunc>> custom_importers_table;
|
||||||
|
private static readonly object custom_importers_table_lock = new Object();
|
||||||
|
|
||||||
|
private static readonly IDictionary<Type, ArrayMetadata> array_metadata;
|
||||||
|
private static readonly object array_metadata_lock = new Object ();
|
||||||
|
|
||||||
|
private static readonly IDictionary<Type,
|
||||||
|
IDictionary<Type, MethodInfo>> conv_ops;
|
||||||
|
private static readonly object conv_ops_lock = new Object ();
|
||||||
|
|
||||||
|
private static readonly IDictionary<Type, ObjectMetadata> object_metadata;
|
||||||
|
private static readonly object object_metadata_lock = new Object ();
|
||||||
|
|
||||||
|
private static readonly IDictionary<Type,
|
||||||
|
IList<PropertyMetadata>> type_properties;
|
||||||
|
private static readonly object type_properties_lock = new Object ();
|
||||||
|
|
||||||
|
private static readonly JsonWriter static_writer;
|
||||||
|
private static readonly object static_writer_lock = new Object ();
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region Constructors
|
||||||
|
static JsonMapper ()
|
||||||
|
{
|
||||||
|
max_nesting_depth = 100;
|
||||||
|
|
||||||
|
array_metadata = new Dictionary<Type, ArrayMetadata> ();
|
||||||
|
conv_ops = new Dictionary<Type, IDictionary<Type, MethodInfo>> ();
|
||||||
|
object_metadata = new Dictionary<Type, ObjectMetadata> ();
|
||||||
|
type_properties = new Dictionary<Type,
|
||||||
|
IList<PropertyMetadata>> ();
|
||||||
|
|
||||||
|
static_writer = new JsonWriter ();
|
||||||
|
|
||||||
|
datetime_format = DateTimeFormatInfo.InvariantInfo;
|
||||||
|
|
||||||
|
base_exporters_table = new Dictionary<Type, ExporterFunc> ();
|
||||||
|
custom_exporters_table = new Dictionary<Type, ExporterFunc> ();
|
||||||
|
|
||||||
|
base_importers_table = new Dictionary<Type,
|
||||||
|
IDictionary<Type, ImporterFunc>> ();
|
||||||
|
custom_importers_table = new Dictionary<Type,
|
||||||
|
IDictionary<Type, ImporterFunc>> ();
|
||||||
|
|
||||||
|
RegisterBaseExporters ();
|
||||||
|
RegisterBaseImporters ();
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region Private Methods
|
||||||
|
private static void AddArrayMetadata (Type type)
|
||||||
|
{
|
||||||
|
if (array_metadata.ContainsKey (type))
|
||||||
|
return;
|
||||||
|
|
||||||
|
ArrayMetadata data = new ArrayMetadata ();
|
||||||
|
|
||||||
|
data.IsArray = type.IsArray;
|
||||||
|
|
||||||
|
if (type.GetInterface ("System.Collections.IList") != null)
|
||||||
|
data.IsList = true;
|
||||||
|
|
||||||
|
foreach (PropertyInfo p_info in type.GetProperties ()) {
|
||||||
|
if (p_info.Name != "Item")
|
||||||
|
continue;
|
||||||
|
|
||||||
|
ParameterInfo[] parameters = p_info.GetIndexParameters ();
|
||||||
|
|
||||||
|
if (parameters.Length != 1)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (parameters[0].ParameterType == typeof (int))
|
||||||
|
data.ElementType = p_info.PropertyType;
|
||||||
|
}
|
||||||
|
|
||||||
|
lock (array_metadata_lock) {
|
||||||
|
try {
|
||||||
|
array_metadata.Add (type, data);
|
||||||
|
} catch (ArgumentException) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void AddObjectMetadata (Type type)
|
||||||
|
{
|
||||||
|
if (object_metadata.ContainsKey (type))
|
||||||
|
return;
|
||||||
|
|
||||||
|
ObjectMetadata data = new ObjectMetadata ();
|
||||||
|
|
||||||
|
if (type.GetInterface ("System.Collections.IDictionary") != null)
|
||||||
|
data.IsDictionary = true;
|
||||||
|
|
||||||
|
data.Properties = new Dictionary<string, PropertyMetadata> ();
|
||||||
|
|
||||||
|
foreach (PropertyInfo p_info in type.GetProperties ()) {
|
||||||
|
if (p_info.Name == "Item") {
|
||||||
|
ParameterInfo[] parameters = p_info.GetIndexParameters ();
|
||||||
|
|
||||||
|
if (parameters.Length != 1)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (parameters[0].ParameterType == typeof (string))
|
||||||
|
data.ElementType = p_info.PropertyType;
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyMetadata p_data = new PropertyMetadata ();
|
||||||
|
p_data.Info = p_info;
|
||||||
|
p_data.Type = p_info.PropertyType;
|
||||||
|
|
||||||
|
data.Properties.Add (p_info.Name, p_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (FieldInfo f_info in type.GetFields ()) {
|
||||||
|
PropertyMetadata p_data = new PropertyMetadata ();
|
||||||
|
p_data.Info = f_info;
|
||||||
|
p_data.IsField = true;
|
||||||
|
p_data.Type = f_info.FieldType;
|
||||||
|
|
||||||
|
data.Properties.Add (f_info.Name, p_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
lock (object_metadata_lock) {
|
||||||
|
try {
|
||||||
|
object_metadata.Add (type, data);
|
||||||
|
} catch (ArgumentException) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void AddTypeProperties (Type type)
|
||||||
|
{
|
||||||
|
if (type_properties.ContainsKey (type))
|
||||||
|
return;
|
||||||
|
|
||||||
|
IList<PropertyMetadata> props = new List<PropertyMetadata> ();
|
||||||
|
|
||||||
|
foreach (PropertyInfo p_info in type.GetProperties ()) {
|
||||||
|
if (p_info.Name == "Item")
|
||||||
|
continue;
|
||||||
|
|
||||||
|
PropertyMetadata p_data = new PropertyMetadata ();
|
||||||
|
p_data.Info = p_info;
|
||||||
|
p_data.IsField = false;
|
||||||
|
props.Add (p_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (FieldInfo f_info in type.GetFields ()) {
|
||||||
|
PropertyMetadata p_data = new PropertyMetadata ();
|
||||||
|
p_data.Info = f_info;
|
||||||
|
p_data.IsField = true;
|
||||||
|
|
||||||
|
props.Add (p_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
lock (type_properties_lock) {
|
||||||
|
try {
|
||||||
|
type_properties.Add (type, props);
|
||||||
|
} catch (ArgumentException) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static MethodInfo GetConvOp (Type t1, Type t2)
|
||||||
|
{
|
||||||
|
lock (conv_ops_lock) {
|
||||||
|
if (! conv_ops.ContainsKey (t1))
|
||||||
|
conv_ops.Add (t1, new Dictionary<Type, MethodInfo> ());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (conv_ops[t1].ContainsKey (t2))
|
||||||
|
return conv_ops[t1][t2];
|
||||||
|
|
||||||
|
MethodInfo op = t1.GetMethod (
|
||||||
|
"op_Implicit", new Type[] { t2 });
|
||||||
|
|
||||||
|
lock (conv_ops_lock) {
|
||||||
|
try {
|
||||||
|
conv_ops[t1].Add (t2, op);
|
||||||
|
} catch (ArgumentException) {
|
||||||
|
return conv_ops[t1][t2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return op;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static object ReadValue (Type inst_type, JsonReader reader)
|
||||||
|
{
|
||||||
|
reader.Read ();
|
||||||
|
|
||||||
|
if (reader.Token == JsonToken.ArrayEnd)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
Type underlying_type = Nullable.GetUnderlyingType(inst_type);
|
||||||
|
Type value_type = underlying_type ?? inst_type;
|
||||||
|
|
||||||
|
if (reader.Token == JsonToken.Null) {
|
||||||
|
#if NETSTANDARD1_5
|
||||||
|
if (inst_type.IsClass() || underlying_type != null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
if (inst_type.IsClass || underlying_type != null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
throw new JsonException (String.Format (
|
||||||
|
"Can't assign null to an instance of type {0}",
|
||||||
|
inst_type));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (reader.Token == JsonToken.Double ||
|
||||||
|
reader.Token == JsonToken.Int ||
|
||||||
|
reader.Token == JsonToken.Long ||
|
||||||
|
reader.Token == JsonToken.String ||
|
||||||
|
reader.Token == JsonToken.Boolean) {
|
||||||
|
|
||||||
|
Type json_type = reader.Value.GetType ();
|
||||||
|
|
||||||
|
if (value_type.IsAssignableFrom (json_type))
|
||||||
|
return reader.Value;
|
||||||
|
|
||||||
|
// If there's a custom importer that fits, use it
|
||||||
|
lock (custom_importers_table_lock) {
|
||||||
|
if (custom_importers_table.TryGetValue(json_type, out IDictionary<Type, ImporterFunc> customImporterTablesValue) &&
|
||||||
|
customImporterTablesValue.TryGetValue(value_type, out ImporterFunc customImporter)) {
|
||||||
|
|
||||||
|
return customImporter(reader.Value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Maybe there's a base importer that works
|
||||||
|
if (base_importers_table.TryGetValue(json_type, out IDictionary<Type, ImporterFunc> baseImporterTablesValue) &&
|
||||||
|
baseImporterTablesValue.TryGetValue(value_type, out ImporterFunc baseImporter)) {
|
||||||
|
|
||||||
|
return baseImporter(reader.Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Maybe it's an enum
|
||||||
|
#if NETSTANDARD1_5
|
||||||
|
if (value_type.IsEnum())
|
||||||
|
return Enum.ToObject (value_type, reader.Value);
|
||||||
|
#else
|
||||||
|
if (value_type.IsEnum)
|
||||||
|
return Enum.ToObject (value_type, reader.Value);
|
||||||
|
#endif
|
||||||
|
// Try using an implicit conversion operator
|
||||||
|
MethodInfo conv_op = GetConvOp (value_type, json_type);
|
||||||
|
|
||||||
|
if (conv_op != null)
|
||||||
|
return conv_op.Invoke (null,
|
||||||
|
new object[] { reader.Value });
|
||||||
|
|
||||||
|
// No luck
|
||||||
|
throw new JsonException (String.Format (
|
||||||
|
"Can't assign value '{0}' (type {1}) to type {2}",
|
||||||
|
reader.Value, json_type, inst_type));
|
||||||
|
}
|
||||||
|
|
||||||
|
object instance = null;
|
||||||
|
|
||||||
|
if (reader.Token == JsonToken.ArrayStart) {
|
||||||
|
|
||||||
|
AddArrayMetadata (inst_type);
|
||||||
|
ArrayMetadata t_data = array_metadata[inst_type];
|
||||||
|
|
||||||
|
if (! t_data.IsArray && ! t_data.IsList)
|
||||||
|
throw new JsonException (String.Format (
|
||||||
|
"Type {0} can't act as an array",
|
||||||
|
inst_type));
|
||||||
|
|
||||||
|
IList list;
|
||||||
|
Type elem_type;
|
||||||
|
|
||||||
|
if (! t_data.IsArray) {
|
||||||
|
list = (IList) Activator.CreateInstance (inst_type);
|
||||||
|
elem_type = t_data.ElementType;
|
||||||
|
} else {
|
||||||
|
list = new ArrayList ();
|
||||||
|
elem_type = inst_type.GetElementType ();
|
||||||
|
}
|
||||||
|
|
||||||
|
list.Clear();
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
object item = ReadValue (elem_type, reader);
|
||||||
|
if (item == null && reader.Token == JsonToken.ArrayEnd)
|
||||||
|
break;
|
||||||
|
|
||||||
|
list.Add (item);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (t_data.IsArray) {
|
||||||
|
int n = list.Count;
|
||||||
|
instance = Array.CreateInstance (elem_type, n);
|
||||||
|
|
||||||
|
for (int i = 0; i < n; i++)
|
||||||
|
((Array) instance).SetValue (list[i], i);
|
||||||
|
} else
|
||||||
|
instance = list;
|
||||||
|
|
||||||
|
} else if (reader.Token == JsonToken.ObjectStart) {
|
||||||
|
AddObjectMetadata (value_type);
|
||||||
|
ObjectMetadata t_data = object_metadata[value_type];
|
||||||
|
|
||||||
|
instance = Activator.CreateInstance (value_type);
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
reader.Read ();
|
||||||
|
|
||||||
|
if (reader.Token == JsonToken.ObjectEnd)
|
||||||
|
break;
|
||||||
|
|
||||||
|
string property = (string) reader.Value;
|
||||||
|
|
||||||
|
if (t_data.Properties.ContainsKey (property)) {
|
||||||
|
PropertyMetadata prop_data =
|
||||||
|
t_data.Properties[property];
|
||||||
|
|
||||||
|
if (prop_data.IsField) {
|
||||||
|
((FieldInfo) prop_data.Info).SetValue (
|
||||||
|
instance, ReadValue (prop_data.Type, reader));
|
||||||
|
} else {
|
||||||
|
PropertyInfo p_info =
|
||||||
|
(PropertyInfo) prop_data.Info;
|
||||||
|
|
||||||
|
if (p_info.CanWrite)
|
||||||
|
p_info.SetValue (
|
||||||
|
instance,
|
||||||
|
ReadValue (prop_data.Type, reader),
|
||||||
|
null);
|
||||||
|
else
|
||||||
|
ReadValue (prop_data.Type, reader);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if (! t_data.IsDictionary) {
|
||||||
|
|
||||||
|
if (! reader.SkipNonMembers) {
|
||||||
|
throw new JsonException (String.Format (
|
||||||
|
"The type {0} doesn't have the " +
|
||||||
|
"property '{1}'",
|
||||||
|
inst_type, property));
|
||||||
|
} else {
|
||||||
|
ReadSkip (reader);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
((IDictionary) instance).Add (
|
||||||
|
property, ReadValue (
|
||||||
|
t_data.ElementType, reader));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static IJsonWrapper ReadValue (WrapperFactory factory,
|
||||||
|
JsonReader reader)
|
||||||
|
{
|
||||||
|
reader.Read ();
|
||||||
|
|
||||||
|
if (reader.Token == JsonToken.ArrayEnd ||
|
||||||
|
reader.Token == JsonToken.Null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
IJsonWrapper instance = factory ();
|
||||||
|
|
||||||
|
if (reader.Token == JsonToken.String) {
|
||||||
|
instance.SetString ((string) reader.Value);
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (reader.Token == JsonToken.Double) {
|
||||||
|
instance.SetDouble ((double) reader.Value);
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (reader.Token == JsonToken.Int) {
|
||||||
|
instance.SetInt ((int) reader.Value);
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (reader.Token == JsonToken.Long) {
|
||||||
|
instance.SetLong ((long) reader.Value);
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (reader.Token == JsonToken.Boolean) {
|
||||||
|
instance.SetBoolean ((bool) reader.Value);
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (reader.Token == JsonToken.ArrayStart) {
|
||||||
|
instance.SetJsonType (JsonType.Array);
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
IJsonWrapper item = ReadValue (factory, reader);
|
||||||
|
if (item == null && reader.Token == JsonToken.ArrayEnd)
|
||||||
|
break;
|
||||||
|
|
||||||
|
((IList) instance).Add (item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (reader.Token == JsonToken.ObjectStart) {
|
||||||
|
instance.SetJsonType (JsonType.Object);
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
reader.Read ();
|
||||||
|
|
||||||
|
if (reader.Token == JsonToken.ObjectEnd)
|
||||||
|
break;
|
||||||
|
|
||||||
|
string property = (string) reader.Value;
|
||||||
|
|
||||||
|
((IDictionary) instance)[property] = ReadValue (
|
||||||
|
factory, reader);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void ReadSkip (JsonReader reader)
|
||||||
|
{
|
||||||
|
ToWrapper (
|
||||||
|
delegate { return new JsonMockWrapper (); }, reader);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void RegisterBaseExporters ()
|
||||||
|
{
|
||||||
|
// This method is only called from the static initializer,
|
||||||
|
// so there is no need to explicitly lock any static members here
|
||||||
|
base_exporters_table[typeof (byte)] =
|
||||||
|
delegate (object obj, JsonWriter writer) {
|
||||||
|
writer.Write (Convert.ToInt32 ((byte) obj));
|
||||||
|
};
|
||||||
|
|
||||||
|
base_exporters_table[typeof (char)] =
|
||||||
|
delegate (object obj, JsonWriter writer) {
|
||||||
|
writer.Write (Convert.ToString ((char) obj));
|
||||||
|
};
|
||||||
|
|
||||||
|
base_exporters_table[typeof (DateTime)] =
|
||||||
|
delegate (object obj, JsonWriter writer) {
|
||||||
|
writer.Write (Convert.ToString ((DateTime) obj,
|
||||||
|
datetime_format));
|
||||||
|
};
|
||||||
|
|
||||||
|
base_exporters_table[typeof (decimal)] =
|
||||||
|
delegate (object obj, JsonWriter writer) {
|
||||||
|
writer.Write ((decimal) obj);
|
||||||
|
};
|
||||||
|
|
||||||
|
base_exporters_table[typeof (sbyte)] =
|
||||||
|
delegate (object obj, JsonWriter writer) {
|
||||||
|
writer.Write (Convert.ToInt32 ((sbyte) obj));
|
||||||
|
};
|
||||||
|
|
||||||
|
base_exporters_table[typeof (short)] =
|
||||||
|
delegate (object obj, JsonWriter writer) {
|
||||||
|
writer.Write (Convert.ToInt32 ((short) obj));
|
||||||
|
};
|
||||||
|
|
||||||
|
base_exporters_table[typeof (ushort)] =
|
||||||
|
delegate (object obj, JsonWriter writer) {
|
||||||
|
writer.Write (Convert.ToInt32 ((ushort) obj));
|
||||||
|
};
|
||||||
|
|
||||||
|
base_exporters_table[typeof (uint)] =
|
||||||
|
delegate (object obj, JsonWriter writer) {
|
||||||
|
writer.Write (Convert.ToUInt64 ((uint) obj));
|
||||||
|
};
|
||||||
|
|
||||||
|
base_exporters_table[typeof (ulong)] =
|
||||||
|
delegate (object obj, JsonWriter writer) {
|
||||||
|
writer.Write ((ulong) obj);
|
||||||
|
};
|
||||||
|
|
||||||
|
base_exporters_table[typeof(DateTimeOffset)] =
|
||||||
|
delegate (object obj, JsonWriter writer) {
|
||||||
|
writer.Write(((DateTimeOffset)obj).ToString("yyyy-MM-ddTHH:mm:ss.fffffffzzz", datetime_format));
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void RegisterBaseImporters ()
|
||||||
|
{
|
||||||
|
// This method is only called from the static initializer,
|
||||||
|
// so there is no need to explicitly lock any static members here
|
||||||
|
ImporterFunc importer;
|
||||||
|
|
||||||
|
importer = delegate (object input) {
|
||||||
|
return Convert.ToByte ((int) input);
|
||||||
|
};
|
||||||
|
RegisterImporter (base_importers_table, typeof (int),
|
||||||
|
typeof (byte), importer);
|
||||||
|
|
||||||
|
importer = delegate (object input) {
|
||||||
|
return Convert.ToUInt64 ((int) input);
|
||||||
|
};
|
||||||
|
RegisterImporter (base_importers_table, typeof (int),
|
||||||
|
typeof (ulong), importer);
|
||||||
|
|
||||||
|
importer = delegate (object input) {
|
||||||
|
return Convert.ToInt64((int)input);
|
||||||
|
};
|
||||||
|
RegisterImporter(base_importers_table, typeof(int),
|
||||||
|
typeof(long), importer);
|
||||||
|
|
||||||
|
importer = delegate (object input) {
|
||||||
|
return Convert.ToSByte ((int) input);
|
||||||
|
};
|
||||||
|
RegisterImporter (base_importers_table, typeof (int),
|
||||||
|
typeof (sbyte), importer);
|
||||||
|
|
||||||
|
importer = delegate (object input) {
|
||||||
|
return Convert.ToInt16 ((int) input);
|
||||||
|
};
|
||||||
|
RegisterImporter (base_importers_table, typeof (int),
|
||||||
|
typeof (short), importer);
|
||||||
|
|
||||||
|
importer = delegate (object input) {
|
||||||
|
return Convert.ToUInt16 ((int) input);
|
||||||
|
};
|
||||||
|
RegisterImporter (base_importers_table, typeof (int),
|
||||||
|
typeof (ushort), importer);
|
||||||
|
|
||||||
|
importer = delegate (object input) {
|
||||||
|
return Convert.ToUInt32 ((int) input);
|
||||||
|
};
|
||||||
|
RegisterImporter (base_importers_table, typeof (int),
|
||||||
|
typeof (uint), importer);
|
||||||
|
|
||||||
|
importer = delegate (object input) {
|
||||||
|
return Convert.ToSingle ((int) input);
|
||||||
|
};
|
||||||
|
RegisterImporter (base_importers_table, typeof (int),
|
||||||
|
typeof (float), importer);
|
||||||
|
|
||||||
|
importer = delegate (object input) {
|
||||||
|
return Convert.ToDouble ((int) input);
|
||||||
|
};
|
||||||
|
RegisterImporter (base_importers_table, typeof (int),
|
||||||
|
typeof (double), importer);
|
||||||
|
|
||||||
|
importer = delegate (object input) {
|
||||||
|
return Convert.ToDecimal ((double) input);
|
||||||
|
};
|
||||||
|
RegisterImporter (base_importers_table, typeof (double),
|
||||||
|
typeof (decimal), importer);
|
||||||
|
|
||||||
|
importer = delegate (object input) {
|
||||||
|
return Convert.ToSingle((double)input);
|
||||||
|
};
|
||||||
|
RegisterImporter(base_importers_table, typeof(double),
|
||||||
|
typeof(float), importer);
|
||||||
|
|
||||||
|
importer = delegate (object input) {
|
||||||
|
return Convert.ToUInt32 ((long) input);
|
||||||
|
};
|
||||||
|
RegisterImporter (base_importers_table, typeof (long),
|
||||||
|
typeof (uint), importer);
|
||||||
|
|
||||||
|
importer = delegate (object input) {
|
||||||
|
return Convert.ToChar ((string) input);
|
||||||
|
};
|
||||||
|
RegisterImporter (base_importers_table, typeof (string),
|
||||||
|
typeof (char), importer);
|
||||||
|
|
||||||
|
importer = delegate (object input) {
|
||||||
|
return Convert.ToDateTime ((string) input, datetime_format);
|
||||||
|
};
|
||||||
|
RegisterImporter (base_importers_table, typeof (string),
|
||||||
|
typeof (DateTime), importer);
|
||||||
|
|
||||||
|
importer = delegate (object input) {
|
||||||
|
return DateTimeOffset.Parse((string)input, datetime_format);
|
||||||
|
};
|
||||||
|
RegisterImporter(base_importers_table, typeof(string),
|
||||||
|
typeof(DateTimeOffset), importer);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void RegisterImporter (
|
||||||
|
IDictionary<Type, IDictionary<Type, ImporterFunc>> table,
|
||||||
|
Type json_type, Type value_type, ImporterFunc importer)
|
||||||
|
{
|
||||||
|
if (! table.ContainsKey (json_type))
|
||||||
|
table.Add (json_type, new Dictionary<Type, ImporterFunc> ());
|
||||||
|
|
||||||
|
table[json_type][value_type] = importer;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void WriteValue (object obj, JsonWriter writer,
|
||||||
|
bool writer_is_private,
|
||||||
|
int depth)
|
||||||
|
{
|
||||||
|
if (depth > max_nesting_depth)
|
||||||
|
throw new JsonException (
|
||||||
|
String.Format ("Max allowed object depth reached while " +
|
||||||
|
"trying to export from type {0}",
|
||||||
|
obj.GetType ()));
|
||||||
|
|
||||||
|
if (obj == null) {
|
||||||
|
writer.Write (null);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (obj is IJsonWrapper) {
|
||||||
|
if (writer_is_private)
|
||||||
|
writer.TextWriter.Write (((IJsonWrapper) obj).ToJson ());
|
||||||
|
else
|
||||||
|
((IJsonWrapper) obj).ToJson (writer);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (obj is String) {
|
||||||
|
writer.Write ((string) obj);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (obj is Double) {
|
||||||
|
writer.Write ((double) obj);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (obj is Single)
|
||||||
|
{
|
||||||
|
writer.Write((float)obj);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (obj is Int32) {
|
||||||
|
writer.Write ((int) obj);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (obj is Boolean) {
|
||||||
|
writer.Write ((bool) obj);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (obj is Int64) {
|
||||||
|
writer.Write ((long) obj);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (obj is Array) {
|
||||||
|
writer.WriteArrayStart ();
|
||||||
|
|
||||||
|
foreach (object elem in (Array) obj)
|
||||||
|
WriteValue (elem, writer, writer_is_private, depth + 1);
|
||||||
|
|
||||||
|
writer.WriteArrayEnd ();
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (obj is IList) {
|
||||||
|
writer.WriteArrayStart ();
|
||||||
|
foreach (object elem in (IList) obj)
|
||||||
|
WriteValue (elem, writer, writer_is_private, depth + 1);
|
||||||
|
writer.WriteArrayEnd ();
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (obj is IDictionary dictionary) {
|
||||||
|
writer.WriteObjectStart ();
|
||||||
|
foreach (DictionaryEntry entry in dictionary) {
|
||||||
|
var propertyName = entry.Key is string key ?
|
||||||
|
key
|
||||||
|
: Convert.ToString(entry.Key, CultureInfo.InvariantCulture);
|
||||||
|
writer.WritePropertyName (propertyName);
|
||||||
|
WriteValue (entry.Value, writer, writer_is_private,
|
||||||
|
depth + 1);
|
||||||
|
}
|
||||||
|
writer.WriteObjectEnd ();
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Type obj_type = obj.GetType ();
|
||||||
|
|
||||||
|
// See if there's a custom exporter for the object
|
||||||
|
lock (custom_exporters_table_lock) {
|
||||||
|
if (custom_exporters_table.TryGetValue(obj_type, out ExporterFunc customExporter)) {
|
||||||
|
customExporter(obj, writer);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If not, maybe there's a base exporter
|
||||||
|
if (base_exporters_table.TryGetValue(obj_type, out ExporterFunc baseExporter)) {
|
||||||
|
baseExporter(obj, writer);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Last option, let's see if it's an enum
|
||||||
|
if (obj is Enum) {
|
||||||
|
Type e_type = Enum.GetUnderlyingType (obj_type);
|
||||||
|
|
||||||
|
if (e_type == typeof (long))
|
||||||
|
writer.Write ((long) obj);
|
||||||
|
else if (e_type == typeof (uint))
|
||||||
|
writer.Write ((uint) obj);
|
||||||
|
else if (e_type == typeof (ulong))
|
||||||
|
writer.Write ((ulong) obj);
|
||||||
|
else if (e_type == typeof(ushort))
|
||||||
|
writer.Write ((ushort)obj);
|
||||||
|
else if (e_type == typeof(short))
|
||||||
|
writer.Write ((short)obj);
|
||||||
|
else if (e_type == typeof(byte))
|
||||||
|
writer.Write ((byte)obj);
|
||||||
|
else if (e_type == typeof(sbyte))
|
||||||
|
writer.Write ((sbyte)obj);
|
||||||
|
else
|
||||||
|
writer.Write ((int) obj);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Okay, so it looks like the input should be exported as an
|
||||||
|
// object
|
||||||
|
AddTypeProperties (obj_type);
|
||||||
|
IList<PropertyMetadata> props = type_properties[obj_type];
|
||||||
|
|
||||||
|
writer.WriteObjectStart ();
|
||||||
|
foreach (PropertyMetadata p_data in props) {
|
||||||
|
if (p_data.IsField) {
|
||||||
|
writer.WritePropertyName (p_data.Info.Name);
|
||||||
|
WriteValue (((FieldInfo) p_data.Info).GetValue (obj),
|
||||||
|
writer, writer_is_private, depth + 1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
PropertyInfo p_info = (PropertyInfo) p_data.Info;
|
||||||
|
|
||||||
|
if (p_info.CanRead) {
|
||||||
|
writer.WritePropertyName (p_data.Info.Name);
|
||||||
|
WriteValue (p_info.GetValue (obj, null),
|
||||||
|
writer, writer_is_private, depth + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
writer.WriteObjectEnd ();
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
public static string ToJson (object obj)
|
||||||
|
{
|
||||||
|
lock (static_writer_lock) {
|
||||||
|
static_writer.Reset ();
|
||||||
|
|
||||||
|
WriteValue (obj, static_writer, true, 0);
|
||||||
|
|
||||||
|
return static_writer.ToString ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ToJson (object obj, JsonWriter writer)
|
||||||
|
{
|
||||||
|
WriteValue (obj, writer, false, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static JsonData ToObject (JsonReader reader)
|
||||||
|
{
|
||||||
|
return (JsonData) ToWrapper (
|
||||||
|
delegate { return new JsonData (); }, reader);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static JsonData ToObject (TextReader reader)
|
||||||
|
{
|
||||||
|
JsonReader json_reader = new JsonReader (reader);
|
||||||
|
|
||||||
|
return (JsonData) ToWrapper (
|
||||||
|
delegate { return new JsonData (); }, json_reader);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static JsonData ToObject (string json)
|
||||||
|
{
|
||||||
|
return (JsonData) ToWrapper (
|
||||||
|
delegate { return new JsonData (); }, json);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static T ToObject<T> (JsonReader reader)
|
||||||
|
{
|
||||||
|
return (T) ReadValue (typeof (T), reader);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static T ToObject<T> (TextReader reader)
|
||||||
|
{
|
||||||
|
JsonReader json_reader = new JsonReader (reader);
|
||||||
|
|
||||||
|
return (T) ReadValue (typeof (T), json_reader);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static T ToObject<T> (string json)
|
||||||
|
{
|
||||||
|
JsonReader reader = new JsonReader (json);
|
||||||
|
|
||||||
|
return (T) ReadValue (typeof (T), reader);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static object ToObject(string json, Type ConvertType )
|
||||||
|
{
|
||||||
|
JsonReader reader = new JsonReader(json);
|
||||||
|
|
||||||
|
return ReadValue(ConvertType, reader);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IJsonWrapper ToWrapper (WrapperFactory factory,
|
||||||
|
JsonReader reader)
|
||||||
|
{
|
||||||
|
return ReadValue (factory, reader);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IJsonWrapper ToWrapper (WrapperFactory factory,
|
||||||
|
string json)
|
||||||
|
{
|
||||||
|
JsonReader reader = new JsonReader (json);
|
||||||
|
|
||||||
|
return ReadValue (factory, reader);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void RegisterExporter<T> (ExporterFunc<T> exporter)
|
||||||
|
{
|
||||||
|
ExporterFunc exporter_wrapper =
|
||||||
|
delegate (object obj, JsonWriter writer) {
|
||||||
|
exporter ((T) obj, writer);
|
||||||
|
};
|
||||||
|
|
||||||
|
lock (custom_exporters_table_lock) {
|
||||||
|
custom_exporters_table[typeof (T)] = exporter_wrapper;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void RegisterImporter<TJson, TValue> (
|
||||||
|
ImporterFunc<TJson, TValue> importer)
|
||||||
|
{
|
||||||
|
ImporterFunc importer_wrapper =
|
||||||
|
delegate (object input) {
|
||||||
|
return importer ((TJson) input);
|
||||||
|
};
|
||||||
|
|
||||||
|
lock (custom_importers_table_lock) {
|
||||||
|
RegisterImporter (custom_importers_table, typeof (TJson),
|
||||||
|
typeof (TValue), importer_wrapper);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void UnregisterExporters ()
|
||||||
|
{
|
||||||
|
lock (custom_exporters_table_lock) {
|
||||||
|
custom_exporters_table.Clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void UnregisterImporters ()
|
||||||
|
{
|
||||||
|
lock (custom_importers_table_lock) {
|
||||||
|
custom_importers_table.Clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: edd6f9d3799c99b4bac832f30e68d0a9
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,105 @@
|
|||||||
|
#region Header
|
||||||
|
/**
|
||||||
|
* JsonMockWrapper.cs
|
||||||
|
* Mock object implementing IJsonWrapper, to facilitate actions like
|
||||||
|
* skipping data more efficiently.
|
||||||
|
*
|
||||||
|
* The authors disclaim copyright to this source code. For more details, see
|
||||||
|
* the COPYING file included with this distribution.
|
||||||
|
**/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Specialized;
|
||||||
|
|
||||||
|
|
||||||
|
namespace LitJson
|
||||||
|
{
|
||||||
|
public class JsonMockWrapper : IJsonWrapper
|
||||||
|
{
|
||||||
|
public bool IsArray { get { return false; } }
|
||||||
|
public bool IsBoolean { get { return false; } }
|
||||||
|
public bool IsDouble { get { return false; } }
|
||||||
|
public bool IsInt { get { return false; } }
|
||||||
|
public bool IsLong { get { return false; } }
|
||||||
|
public bool IsObject { get { return false; } }
|
||||||
|
public bool IsString { get { return false; } }
|
||||||
|
|
||||||
|
public bool GetBoolean () { return false; }
|
||||||
|
public double GetDouble () { return 0.0; }
|
||||||
|
public int GetInt () { return 0; }
|
||||||
|
public JsonType GetJsonType () { return JsonType.None; }
|
||||||
|
public long GetLong () { return 0L; }
|
||||||
|
public string GetString () { return ""; }
|
||||||
|
|
||||||
|
public void SetBoolean (bool val) {}
|
||||||
|
public void SetDouble (double val) {}
|
||||||
|
public void SetInt (int val) {}
|
||||||
|
public void SetJsonType (JsonType type) {}
|
||||||
|
public void SetLong (long val) {}
|
||||||
|
public void SetString (string val) {}
|
||||||
|
|
||||||
|
public string ToJson () { return ""; }
|
||||||
|
public void ToJson (JsonWriter writer) {}
|
||||||
|
|
||||||
|
|
||||||
|
bool IList.IsFixedSize { get { return true; } }
|
||||||
|
bool IList.IsReadOnly { get { return true; } }
|
||||||
|
|
||||||
|
object IList.this[int index] {
|
||||||
|
get { return null; }
|
||||||
|
set {}
|
||||||
|
}
|
||||||
|
|
||||||
|
int IList.Add (object value) { return 0; }
|
||||||
|
void IList.Clear () {}
|
||||||
|
bool IList.Contains (object value) { return false; }
|
||||||
|
int IList.IndexOf (object value) { return -1; }
|
||||||
|
void IList.Insert (int i, object v) {}
|
||||||
|
void IList.Remove (object value) {}
|
||||||
|
void IList.RemoveAt (int index) {}
|
||||||
|
|
||||||
|
|
||||||
|
int ICollection.Count { get { return 0; } }
|
||||||
|
bool ICollection.IsSynchronized { get { return false; } }
|
||||||
|
object ICollection.SyncRoot { get { return null; } }
|
||||||
|
|
||||||
|
void ICollection.CopyTo (Array array, int index) {}
|
||||||
|
|
||||||
|
|
||||||
|
IEnumerator IEnumerable.GetEnumerator () { return null; }
|
||||||
|
|
||||||
|
|
||||||
|
bool IDictionary.IsFixedSize { get { return true; } }
|
||||||
|
bool IDictionary.IsReadOnly { get { return true; } }
|
||||||
|
|
||||||
|
ICollection IDictionary.Keys { get { return null; } }
|
||||||
|
ICollection IDictionary.Values { get { return null; } }
|
||||||
|
|
||||||
|
object IDictionary.this[object key] {
|
||||||
|
get { return null; }
|
||||||
|
set {}
|
||||||
|
}
|
||||||
|
|
||||||
|
void IDictionary.Add (object k, object v) {}
|
||||||
|
void IDictionary.Clear () {}
|
||||||
|
bool IDictionary.Contains (object key) { return false; }
|
||||||
|
void IDictionary.Remove (object key) {}
|
||||||
|
|
||||||
|
IDictionaryEnumerator IDictionary.GetEnumerator () { return null; }
|
||||||
|
|
||||||
|
|
||||||
|
object IOrderedDictionary.this[int idx] {
|
||||||
|
get { return null; }
|
||||||
|
set {}
|
||||||
|
}
|
||||||
|
|
||||||
|
IDictionaryEnumerator IOrderedDictionary.GetEnumerator () {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
void IOrderedDictionary.Insert (int i, object k, object v) {}
|
||||||
|
void IOrderedDictionary.RemoveAt (int i) {}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 89450f8cbaa603948b21641918c50f0e
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
478
meng_yao/Assets/Scripts/Framework/Json/LitJson/JsonReader.cs
Normal file
478
meng_yao/Assets/Scripts/Framework/Json/LitJson/JsonReader.cs
Normal file
@ -0,0 +1,478 @@
|
|||||||
|
#region Header
|
||||||
|
/**
|
||||||
|
* JsonReader.cs
|
||||||
|
* Stream-like access to JSON text.
|
||||||
|
*
|
||||||
|
* The authors disclaim copyright to this source code. For more details, see
|
||||||
|
* the COPYING file included with this distribution.
|
||||||
|
**/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.IO;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
|
||||||
|
namespace LitJson
|
||||||
|
{
|
||||||
|
public enum JsonToken
|
||||||
|
{
|
||||||
|
None,
|
||||||
|
|
||||||
|
ObjectStart,
|
||||||
|
PropertyName,
|
||||||
|
ObjectEnd,
|
||||||
|
|
||||||
|
ArrayStart,
|
||||||
|
ArrayEnd,
|
||||||
|
|
||||||
|
Int,
|
||||||
|
Long,
|
||||||
|
Double,
|
||||||
|
|
||||||
|
String,
|
||||||
|
|
||||||
|
Boolean,
|
||||||
|
Null
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class JsonReader
|
||||||
|
{
|
||||||
|
#region Fields
|
||||||
|
private static readonly IDictionary<int, IDictionary<int, int[]>> parse_table;
|
||||||
|
|
||||||
|
private Stack<int> automaton_stack;
|
||||||
|
private int current_input;
|
||||||
|
private int current_symbol;
|
||||||
|
private bool end_of_json;
|
||||||
|
private bool end_of_input;
|
||||||
|
private Lexer lexer;
|
||||||
|
private bool parser_in_string;
|
||||||
|
private bool parser_return;
|
||||||
|
private bool read_started;
|
||||||
|
private TextReader reader;
|
||||||
|
private bool reader_is_owned;
|
||||||
|
private bool skip_non_members;
|
||||||
|
private object token_value;
|
||||||
|
private JsonToken token;
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region Public Properties
|
||||||
|
public bool AllowComments {
|
||||||
|
get { return lexer.AllowComments; }
|
||||||
|
set { lexer.AllowComments = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool AllowSingleQuotedStrings {
|
||||||
|
get { return lexer.AllowSingleQuotedStrings; }
|
||||||
|
set { lexer.AllowSingleQuotedStrings = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool SkipNonMembers {
|
||||||
|
get { return skip_non_members; }
|
||||||
|
set { skip_non_members = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool EndOfInput {
|
||||||
|
get { return end_of_input; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool EndOfJson {
|
||||||
|
get { return end_of_json; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public JsonToken Token {
|
||||||
|
get { return token; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public object Value {
|
||||||
|
get { return token_value; }
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region Constructors
|
||||||
|
static JsonReader ()
|
||||||
|
{
|
||||||
|
parse_table = PopulateParseTable ();
|
||||||
|
}
|
||||||
|
|
||||||
|
public JsonReader (string json_text) :
|
||||||
|
this (new StringReader (json_text), true)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public JsonReader (TextReader reader) :
|
||||||
|
this (reader, false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private JsonReader (TextReader reader, bool owned)
|
||||||
|
{
|
||||||
|
if (reader == null)
|
||||||
|
throw new ArgumentNullException ("reader");
|
||||||
|
|
||||||
|
parser_in_string = false;
|
||||||
|
parser_return = false;
|
||||||
|
|
||||||
|
read_started = false;
|
||||||
|
automaton_stack = new Stack<int> ();
|
||||||
|
automaton_stack.Push ((int) ParserToken.End);
|
||||||
|
automaton_stack.Push ((int) ParserToken.Text);
|
||||||
|
|
||||||
|
lexer = new Lexer (reader);
|
||||||
|
|
||||||
|
end_of_input = false;
|
||||||
|
end_of_json = false;
|
||||||
|
|
||||||
|
skip_non_members = true;
|
||||||
|
|
||||||
|
this.reader = reader;
|
||||||
|
reader_is_owned = owned;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region Static Methods
|
||||||
|
private static IDictionary<int, IDictionary<int, int[]>> PopulateParseTable ()
|
||||||
|
{
|
||||||
|
// See section A.2. of the manual for details
|
||||||
|
IDictionary<int, IDictionary<int, int[]>> parse_table = new Dictionary<int, IDictionary<int, int[]>> ();
|
||||||
|
|
||||||
|
TableAddRow (parse_table, ParserToken.Array);
|
||||||
|
TableAddCol (parse_table, ParserToken.Array, '[',
|
||||||
|
'[',
|
||||||
|
(int) ParserToken.ArrayPrime);
|
||||||
|
|
||||||
|
TableAddRow (parse_table, ParserToken.ArrayPrime);
|
||||||
|
TableAddCol (parse_table, ParserToken.ArrayPrime, '"',
|
||||||
|
(int) ParserToken.Value,
|
||||||
|
|
||||||
|
(int) ParserToken.ValueRest,
|
||||||
|
']');
|
||||||
|
TableAddCol (parse_table, ParserToken.ArrayPrime, '[',
|
||||||
|
(int) ParserToken.Value,
|
||||||
|
(int) ParserToken.ValueRest,
|
||||||
|
']');
|
||||||
|
TableAddCol (parse_table, ParserToken.ArrayPrime, ']',
|
||||||
|
']');
|
||||||
|
TableAddCol (parse_table, ParserToken.ArrayPrime, '{',
|
||||||
|
(int) ParserToken.Value,
|
||||||
|
(int) ParserToken.ValueRest,
|
||||||
|
']');
|
||||||
|
TableAddCol (parse_table, ParserToken.ArrayPrime, (int) ParserToken.Number,
|
||||||
|
(int) ParserToken.Value,
|
||||||
|
(int) ParserToken.ValueRest,
|
||||||
|
']');
|
||||||
|
TableAddCol (parse_table, ParserToken.ArrayPrime, (int) ParserToken.True,
|
||||||
|
(int) ParserToken.Value,
|
||||||
|
(int) ParserToken.ValueRest,
|
||||||
|
']');
|
||||||
|
TableAddCol (parse_table, ParserToken.ArrayPrime, (int) ParserToken.False,
|
||||||
|
(int) ParserToken.Value,
|
||||||
|
(int) ParserToken.ValueRest,
|
||||||
|
']');
|
||||||
|
TableAddCol (parse_table, ParserToken.ArrayPrime, (int) ParserToken.Null,
|
||||||
|
(int) ParserToken.Value,
|
||||||
|
(int) ParserToken.ValueRest,
|
||||||
|
']');
|
||||||
|
|
||||||
|
TableAddRow (parse_table, ParserToken.Object);
|
||||||
|
TableAddCol (parse_table, ParserToken.Object, '{',
|
||||||
|
'{',
|
||||||
|
(int) ParserToken.ObjectPrime);
|
||||||
|
|
||||||
|
TableAddRow (parse_table, ParserToken.ObjectPrime);
|
||||||
|
TableAddCol (parse_table, ParserToken.ObjectPrime, '"',
|
||||||
|
(int) ParserToken.Pair,
|
||||||
|
(int) ParserToken.PairRest,
|
||||||
|
'}');
|
||||||
|
TableAddCol (parse_table, ParserToken.ObjectPrime, '}',
|
||||||
|
'}');
|
||||||
|
|
||||||
|
TableAddRow (parse_table, ParserToken.Pair);
|
||||||
|
TableAddCol (parse_table, ParserToken.Pair, '"',
|
||||||
|
(int) ParserToken.String,
|
||||||
|
':',
|
||||||
|
(int) ParserToken.Value);
|
||||||
|
|
||||||
|
TableAddRow (parse_table, ParserToken.PairRest);
|
||||||
|
TableAddCol (parse_table, ParserToken.PairRest, ',',
|
||||||
|
',',
|
||||||
|
(int) ParserToken.Pair,
|
||||||
|
(int) ParserToken.PairRest);
|
||||||
|
TableAddCol (parse_table, ParserToken.PairRest, '}',
|
||||||
|
(int) ParserToken.Epsilon);
|
||||||
|
|
||||||
|
TableAddRow (parse_table, ParserToken.String);
|
||||||
|
TableAddCol (parse_table, ParserToken.String, '"',
|
||||||
|
'"',
|
||||||
|
(int) ParserToken.CharSeq,
|
||||||
|
'"');
|
||||||
|
|
||||||
|
TableAddRow (parse_table, ParserToken.Text);
|
||||||
|
TableAddCol (parse_table, ParserToken.Text, '[',
|
||||||
|
(int) ParserToken.Array);
|
||||||
|
TableAddCol (parse_table, ParserToken.Text, '{',
|
||||||
|
(int) ParserToken.Object);
|
||||||
|
|
||||||
|
TableAddRow (parse_table, ParserToken.Value);
|
||||||
|
TableAddCol (parse_table, ParserToken.Value, '"',
|
||||||
|
(int) ParserToken.String);
|
||||||
|
TableAddCol (parse_table, ParserToken.Value, '[',
|
||||||
|
(int) ParserToken.Array);
|
||||||
|
TableAddCol (parse_table, ParserToken.Value, '{',
|
||||||
|
(int) ParserToken.Object);
|
||||||
|
TableAddCol (parse_table, ParserToken.Value, (int) ParserToken.Number,
|
||||||
|
(int) ParserToken.Number);
|
||||||
|
TableAddCol (parse_table, ParserToken.Value, (int) ParserToken.True,
|
||||||
|
(int) ParserToken.True);
|
||||||
|
TableAddCol (parse_table, ParserToken.Value, (int) ParserToken.False,
|
||||||
|
(int) ParserToken.False);
|
||||||
|
TableAddCol (parse_table, ParserToken.Value, (int) ParserToken.Null,
|
||||||
|
(int) ParserToken.Null);
|
||||||
|
|
||||||
|
TableAddRow (parse_table, ParserToken.ValueRest);
|
||||||
|
TableAddCol (parse_table, ParserToken.ValueRest, ',',
|
||||||
|
',',
|
||||||
|
(int) ParserToken.Value,
|
||||||
|
(int) ParserToken.ValueRest);
|
||||||
|
TableAddCol (parse_table, ParserToken.ValueRest, ']',
|
||||||
|
(int) ParserToken.Epsilon);
|
||||||
|
|
||||||
|
return parse_table;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void TableAddCol (IDictionary<int, IDictionary<int, int[]>> parse_table, ParserToken row, int col,
|
||||||
|
params int[] symbols)
|
||||||
|
{
|
||||||
|
parse_table[(int) row].Add (col, symbols);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void TableAddRow (IDictionary<int, IDictionary<int, int[]>> parse_table, ParserToken rule)
|
||||||
|
{
|
||||||
|
parse_table.Add ((int) rule, new Dictionary<int, int[]> ());
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region Private Methods
|
||||||
|
private void ProcessNumber (string number)
|
||||||
|
{
|
||||||
|
if (number.IndexOf ('.') != -1 ||
|
||||||
|
number.IndexOf ('e') != -1 ||
|
||||||
|
number.IndexOf ('E') != -1) {
|
||||||
|
|
||||||
|
double n_double;
|
||||||
|
if (double.TryParse (number, NumberStyles.Any, CultureInfo.InvariantCulture, out n_double)) {
|
||||||
|
token = JsonToken.Double;
|
||||||
|
token_value = n_double;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int n_int32;
|
||||||
|
if (int.TryParse (number, NumberStyles.Integer, CultureInfo.InvariantCulture, out n_int32)) {
|
||||||
|
token = JsonToken.Int;
|
||||||
|
token_value = n_int32;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
long n_int64;
|
||||||
|
if (long.TryParse (number, NumberStyles.Integer, CultureInfo.InvariantCulture, out n_int64)) {
|
||||||
|
token = JsonToken.Long;
|
||||||
|
token_value = n_int64;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ulong n_uint64;
|
||||||
|
if (ulong.TryParse(number, NumberStyles.Integer, CultureInfo.InvariantCulture, out n_uint64))
|
||||||
|
{
|
||||||
|
token = JsonToken.Long;
|
||||||
|
token_value = n_uint64;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Shouldn't happen, but just in case, return something
|
||||||
|
token = JsonToken.Int;
|
||||||
|
token_value = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ProcessSymbol ()
|
||||||
|
{
|
||||||
|
if (current_symbol == '[') {
|
||||||
|
token = JsonToken.ArrayStart;
|
||||||
|
parser_return = true;
|
||||||
|
|
||||||
|
} else if (current_symbol == ']') {
|
||||||
|
token = JsonToken.ArrayEnd;
|
||||||
|
parser_return = true;
|
||||||
|
|
||||||
|
} else if (current_symbol == '{') {
|
||||||
|
token = JsonToken.ObjectStart;
|
||||||
|
parser_return = true;
|
||||||
|
|
||||||
|
} else if (current_symbol == '}') {
|
||||||
|
token = JsonToken.ObjectEnd;
|
||||||
|
parser_return = true;
|
||||||
|
|
||||||
|
} else if (current_symbol == '"') {
|
||||||
|
if (parser_in_string) {
|
||||||
|
parser_in_string = false;
|
||||||
|
|
||||||
|
parser_return = true;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if (token == JsonToken.None)
|
||||||
|
token = JsonToken.String;
|
||||||
|
|
||||||
|
parser_in_string = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (current_symbol == (int) ParserToken.CharSeq) {
|
||||||
|
token_value = lexer.StringValue;
|
||||||
|
|
||||||
|
} else if (current_symbol == (int) ParserToken.False) {
|
||||||
|
token = JsonToken.Boolean;
|
||||||
|
token_value = false;
|
||||||
|
parser_return = true;
|
||||||
|
|
||||||
|
} else if (current_symbol == (int) ParserToken.Null) {
|
||||||
|
token = JsonToken.Null;
|
||||||
|
parser_return = true;
|
||||||
|
|
||||||
|
} else if (current_symbol == (int) ParserToken.Number) {
|
||||||
|
ProcessNumber (lexer.StringValue);
|
||||||
|
|
||||||
|
parser_return = true;
|
||||||
|
|
||||||
|
} else if (current_symbol == (int) ParserToken.Pair) {
|
||||||
|
token = JsonToken.PropertyName;
|
||||||
|
|
||||||
|
} else if (current_symbol == (int) ParserToken.True) {
|
||||||
|
token = JsonToken.Boolean;
|
||||||
|
token_value = true;
|
||||||
|
parser_return = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool ReadToken ()
|
||||||
|
{
|
||||||
|
if (end_of_input)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
lexer.NextToken ();
|
||||||
|
|
||||||
|
if (lexer.EndOfInput) {
|
||||||
|
Close ();
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
current_input = lexer.Token;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
public void Close ()
|
||||||
|
{
|
||||||
|
if (end_of_input)
|
||||||
|
return;
|
||||||
|
|
||||||
|
end_of_input = true;
|
||||||
|
end_of_json = true;
|
||||||
|
|
||||||
|
if (reader_is_owned)
|
||||||
|
{
|
||||||
|
using(reader){}
|
||||||
|
}
|
||||||
|
|
||||||
|
reader = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Read ()
|
||||||
|
{
|
||||||
|
if (end_of_input)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (end_of_json) {
|
||||||
|
end_of_json = false;
|
||||||
|
automaton_stack.Clear ();
|
||||||
|
automaton_stack.Push ((int) ParserToken.End);
|
||||||
|
automaton_stack.Push ((int) ParserToken.Text);
|
||||||
|
}
|
||||||
|
|
||||||
|
parser_in_string = false;
|
||||||
|
parser_return = false;
|
||||||
|
|
||||||
|
token = JsonToken.None;
|
||||||
|
token_value = null;
|
||||||
|
|
||||||
|
if (! read_started) {
|
||||||
|
read_started = true;
|
||||||
|
|
||||||
|
if (! ReadToken ())
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int[] entry_symbols;
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
if (parser_return) {
|
||||||
|
if (automaton_stack.Peek () == (int) ParserToken.End)
|
||||||
|
end_of_json = true;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
current_symbol = automaton_stack.Pop ();
|
||||||
|
|
||||||
|
ProcessSymbol ();
|
||||||
|
|
||||||
|
if (current_symbol == current_input) {
|
||||||
|
if (! ReadToken ()) {
|
||||||
|
if (automaton_stack.Peek () != (int) ParserToken.End)
|
||||||
|
throw new JsonException (
|
||||||
|
"Input doesn't evaluate to proper JSON text");
|
||||||
|
|
||||||
|
if (parser_return)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
entry_symbols =
|
||||||
|
parse_table[current_symbol][current_input];
|
||||||
|
|
||||||
|
} catch (KeyNotFoundException e) {
|
||||||
|
throw new JsonException ((ParserToken) current_input, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (entry_symbols[0] == (int) ParserToken.Epsilon)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
for (int i = entry_symbols.Length - 1; i >= 0; i--)
|
||||||
|
automaton_stack.Push (entry_symbols[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2b78736f80d5c6a4e9513154181900b9
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
484
meng_yao/Assets/Scripts/Framework/Json/LitJson/JsonWriter.cs
Normal file
484
meng_yao/Assets/Scripts/Framework/Json/LitJson/JsonWriter.cs
Normal file
@ -0,0 +1,484 @@
|
|||||||
|
#region Header
|
||||||
|
/**
|
||||||
|
* JsonWriter.cs
|
||||||
|
* Stream-like facility to output JSON text.
|
||||||
|
*
|
||||||
|
* The authors disclaim copyright to this source code. For more details, see
|
||||||
|
* the COPYING file included with this distribution.
|
||||||
|
**/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.IO;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
|
||||||
|
namespace LitJson
|
||||||
|
{
|
||||||
|
internal enum Condition
|
||||||
|
{
|
||||||
|
InArray,
|
||||||
|
InObject,
|
||||||
|
NotAProperty,
|
||||||
|
Property,
|
||||||
|
Value
|
||||||
|
}
|
||||||
|
|
||||||
|
internal class WriterContext
|
||||||
|
{
|
||||||
|
public int Count;
|
||||||
|
public bool InArray;
|
||||||
|
public bool InObject;
|
||||||
|
public bool ExpectingValue;
|
||||||
|
public int Padding;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class JsonWriter
|
||||||
|
{
|
||||||
|
#region Fields
|
||||||
|
private static readonly NumberFormatInfo number_format;
|
||||||
|
|
||||||
|
private WriterContext context;
|
||||||
|
private Stack<WriterContext> ctx_stack;
|
||||||
|
private bool has_reached_end;
|
||||||
|
private char[] hex_seq;
|
||||||
|
private int indentation;
|
||||||
|
private int indent_value;
|
||||||
|
private StringBuilder inst_string_builder;
|
||||||
|
private bool pretty_print;
|
||||||
|
private bool validate;
|
||||||
|
private bool lower_case_properties;
|
||||||
|
private TextWriter writer;
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region Properties
|
||||||
|
public int IndentValue {
|
||||||
|
get { return indent_value; }
|
||||||
|
set {
|
||||||
|
indentation = (indentation / indent_value) * value;
|
||||||
|
indent_value = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool PrettyPrint {
|
||||||
|
get { return pretty_print; }
|
||||||
|
set { pretty_print = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public TextWriter TextWriter {
|
||||||
|
get { return writer; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Validate {
|
||||||
|
get { return validate; }
|
||||||
|
set { validate = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool LowerCaseProperties {
|
||||||
|
get { return lower_case_properties; }
|
||||||
|
set { lower_case_properties = value; }
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region Constructors
|
||||||
|
static JsonWriter ()
|
||||||
|
{
|
||||||
|
number_format = NumberFormatInfo.InvariantInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JsonWriter ()
|
||||||
|
{
|
||||||
|
inst_string_builder = new StringBuilder ();
|
||||||
|
writer = new StringWriter (inst_string_builder);
|
||||||
|
|
||||||
|
Init ();
|
||||||
|
}
|
||||||
|
|
||||||
|
public JsonWriter (StringBuilder sb) :
|
||||||
|
this (new StringWriter (sb))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public JsonWriter (TextWriter writer)
|
||||||
|
{
|
||||||
|
if (writer == null)
|
||||||
|
throw new ArgumentNullException ("writer");
|
||||||
|
|
||||||
|
this.writer = writer;
|
||||||
|
|
||||||
|
Init ();
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region Private Methods
|
||||||
|
private void DoValidation (Condition cond)
|
||||||
|
{
|
||||||
|
if (! context.ExpectingValue)
|
||||||
|
context.Count++;
|
||||||
|
|
||||||
|
if (! validate)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (has_reached_end)
|
||||||
|
throw new JsonException (
|
||||||
|
"A complete JSON symbol has already been written");
|
||||||
|
|
||||||
|
switch (cond) {
|
||||||
|
case Condition.InArray:
|
||||||
|
if (! context.InArray)
|
||||||
|
throw new JsonException (
|
||||||
|
"Can't close an array here");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Condition.InObject:
|
||||||
|
if (! context.InObject || context.ExpectingValue)
|
||||||
|
throw new JsonException (
|
||||||
|
"Can't close an object here");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Condition.NotAProperty:
|
||||||
|
if (context.InObject && ! context.ExpectingValue)
|
||||||
|
throw new JsonException (
|
||||||
|
"Expected a property");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Condition.Property:
|
||||||
|
if (! context.InObject || context.ExpectingValue)
|
||||||
|
throw new JsonException (
|
||||||
|
"Can't add a property here");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Condition.Value:
|
||||||
|
if (! context.InArray &&
|
||||||
|
(! context.InObject || ! context.ExpectingValue))
|
||||||
|
throw new JsonException (
|
||||||
|
"Can't add a value here");
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Init ()
|
||||||
|
{
|
||||||
|
has_reached_end = false;
|
||||||
|
hex_seq = new char[4];
|
||||||
|
indentation = 0;
|
||||||
|
indent_value = 4;
|
||||||
|
pretty_print = false;
|
||||||
|
validate = true;
|
||||||
|
lower_case_properties = false;
|
||||||
|
|
||||||
|
ctx_stack = new Stack<WriterContext> ();
|
||||||
|
context = new WriterContext ();
|
||||||
|
ctx_stack.Push (context);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void IntToHex (int n, char[] hex)
|
||||||
|
{
|
||||||
|
int num;
|
||||||
|
|
||||||
|
for (int i = 0; i < 4; i++) {
|
||||||
|
num = n % 16;
|
||||||
|
|
||||||
|
if (num < 10)
|
||||||
|
hex[3 - i] = (char) ('0' + num);
|
||||||
|
else
|
||||||
|
hex[3 - i] = (char) ('A' + (num - 10));
|
||||||
|
|
||||||
|
n >>= 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Indent ()
|
||||||
|
{
|
||||||
|
if (pretty_print)
|
||||||
|
indentation += indent_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void Put (string str)
|
||||||
|
{
|
||||||
|
if (pretty_print && ! context.ExpectingValue)
|
||||||
|
for (int i = 0; i < indentation; i++)
|
||||||
|
writer.Write (' ');
|
||||||
|
|
||||||
|
writer.Write (str);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PutNewline ()
|
||||||
|
{
|
||||||
|
PutNewline (true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PutNewline (bool add_comma)
|
||||||
|
{
|
||||||
|
if (add_comma && ! context.ExpectingValue &&
|
||||||
|
context.Count > 1)
|
||||||
|
writer.Write (',');
|
||||||
|
|
||||||
|
if (pretty_print && ! context.ExpectingValue)
|
||||||
|
writer.Write (Environment.NewLine);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PutString (string str)
|
||||||
|
{
|
||||||
|
Put (String.Empty);
|
||||||
|
|
||||||
|
writer.Write ('"');
|
||||||
|
|
||||||
|
int n = str.Length;
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
switch (str[i]) {
|
||||||
|
case '\n':
|
||||||
|
writer.Write ("\\n");
|
||||||
|
continue;
|
||||||
|
|
||||||
|
case '\r':
|
||||||
|
writer.Write ("\\r");
|
||||||
|
continue;
|
||||||
|
|
||||||
|
case '\t':
|
||||||
|
writer.Write ("\\t");
|
||||||
|
continue;
|
||||||
|
|
||||||
|
case '"':
|
||||||
|
case '\\':
|
||||||
|
writer.Write ('\\');
|
||||||
|
writer.Write (str[i]);
|
||||||
|
continue;
|
||||||
|
|
||||||
|
case '\f':
|
||||||
|
writer.Write ("\\f");
|
||||||
|
continue;
|
||||||
|
|
||||||
|
case '\b':
|
||||||
|
writer.Write ("\\b");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((int) str[i] >= 32 && (int) str[i] <= 126) {
|
||||||
|
writer.Write (str[i]);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Default, turn into a \uXXXX sequence
|
||||||
|
IntToHex ((int) str[i], hex_seq);
|
||||||
|
writer.Write ("\\u");
|
||||||
|
writer.Write (hex_seq);
|
||||||
|
}
|
||||||
|
|
||||||
|
writer.Write ('"');
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Unindent ()
|
||||||
|
{
|
||||||
|
if (pretty_print)
|
||||||
|
indentation -= indent_value;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
public override string ToString ()
|
||||||
|
{
|
||||||
|
if (inst_string_builder == null)
|
||||||
|
return String.Empty;
|
||||||
|
|
||||||
|
return inst_string_builder.ToString ();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Reset ()
|
||||||
|
{
|
||||||
|
has_reached_end = false;
|
||||||
|
|
||||||
|
ctx_stack.Clear ();
|
||||||
|
context = new WriterContext ();
|
||||||
|
ctx_stack.Push (context);
|
||||||
|
|
||||||
|
if (inst_string_builder != null)
|
||||||
|
inst_string_builder.Remove (0, inst_string_builder.Length);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Write (bool boolean)
|
||||||
|
{
|
||||||
|
DoValidation (Condition.Value);
|
||||||
|
PutNewline ();
|
||||||
|
|
||||||
|
Put (boolean ? "true" : "false");
|
||||||
|
|
||||||
|
context.ExpectingValue = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Write (decimal number)
|
||||||
|
{
|
||||||
|
DoValidation (Condition.Value);
|
||||||
|
PutNewline ();
|
||||||
|
|
||||||
|
Put (Convert.ToString (number, number_format));
|
||||||
|
|
||||||
|
context.ExpectingValue = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Write (double number)
|
||||||
|
{
|
||||||
|
DoValidation (Condition.Value);
|
||||||
|
PutNewline ();
|
||||||
|
|
||||||
|
string str = Convert.ToString (number, number_format);
|
||||||
|
Put (str);
|
||||||
|
|
||||||
|
if (str.IndexOf ('.') == -1 &&
|
||||||
|
str.IndexOf ('E') == -1)
|
||||||
|
writer.Write (".0");
|
||||||
|
|
||||||
|
context.ExpectingValue = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Write(float number)
|
||||||
|
{
|
||||||
|
DoValidation(Condition.Value);
|
||||||
|
PutNewline();
|
||||||
|
|
||||||
|
string str = Convert.ToString(number, number_format);
|
||||||
|
Put(str);
|
||||||
|
|
||||||
|
context.ExpectingValue = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Write (int number)
|
||||||
|
{
|
||||||
|
DoValidation (Condition.Value);
|
||||||
|
PutNewline ();
|
||||||
|
|
||||||
|
Put (Convert.ToString (number, number_format));
|
||||||
|
|
||||||
|
context.ExpectingValue = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Write (long number)
|
||||||
|
{
|
||||||
|
DoValidation (Condition.Value);
|
||||||
|
PutNewline ();
|
||||||
|
|
||||||
|
Put (Convert.ToString (number, number_format));
|
||||||
|
|
||||||
|
context.ExpectingValue = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Write (string str)
|
||||||
|
{
|
||||||
|
DoValidation (Condition.Value);
|
||||||
|
PutNewline ();
|
||||||
|
|
||||||
|
if (str == null)
|
||||||
|
Put ("null");
|
||||||
|
else
|
||||||
|
PutString (str);
|
||||||
|
|
||||||
|
context.ExpectingValue = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
[CLSCompliant(false)]
|
||||||
|
public void Write (ulong number)
|
||||||
|
{
|
||||||
|
DoValidation (Condition.Value);
|
||||||
|
PutNewline ();
|
||||||
|
|
||||||
|
Put (Convert.ToString (number, number_format));
|
||||||
|
|
||||||
|
context.ExpectingValue = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void WriteArrayEnd ()
|
||||||
|
{
|
||||||
|
DoValidation (Condition.InArray);
|
||||||
|
PutNewline (false);
|
||||||
|
|
||||||
|
ctx_stack.Pop ();
|
||||||
|
if (ctx_stack.Count == 1)
|
||||||
|
has_reached_end = true;
|
||||||
|
else {
|
||||||
|
context = ctx_stack.Peek ();
|
||||||
|
context.ExpectingValue = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Unindent ();
|
||||||
|
Put ("]");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void WriteArrayStart ()
|
||||||
|
{
|
||||||
|
DoValidation (Condition.NotAProperty);
|
||||||
|
PutNewline ();
|
||||||
|
|
||||||
|
Put ("[");
|
||||||
|
|
||||||
|
context = new WriterContext ();
|
||||||
|
context.InArray = true;
|
||||||
|
ctx_stack.Push (context);
|
||||||
|
|
||||||
|
Indent ();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void WriteObjectEnd ()
|
||||||
|
{
|
||||||
|
DoValidation (Condition.InObject);
|
||||||
|
PutNewline (false);
|
||||||
|
|
||||||
|
ctx_stack.Pop ();
|
||||||
|
if (ctx_stack.Count == 1)
|
||||||
|
has_reached_end = true;
|
||||||
|
else {
|
||||||
|
context = ctx_stack.Peek ();
|
||||||
|
context.ExpectingValue = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Unindent ();
|
||||||
|
Put ("}");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void WriteObjectStart ()
|
||||||
|
{
|
||||||
|
DoValidation (Condition.NotAProperty);
|
||||||
|
PutNewline ();
|
||||||
|
|
||||||
|
Put ("{");
|
||||||
|
|
||||||
|
context = new WriterContext ();
|
||||||
|
context.InObject = true;
|
||||||
|
ctx_stack.Push (context);
|
||||||
|
|
||||||
|
Indent ();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void WritePropertyName (string property_name)
|
||||||
|
{
|
||||||
|
DoValidation (Condition.Property);
|
||||||
|
PutNewline ();
|
||||||
|
string propertyName = (property_name == null || !lower_case_properties)
|
||||||
|
? property_name
|
||||||
|
: property_name.ToLowerInvariant();
|
||||||
|
|
||||||
|
PutString (propertyName);
|
||||||
|
|
||||||
|
if (pretty_print) {
|
||||||
|
if (propertyName.Length > context.Padding)
|
||||||
|
context.Padding = propertyName.Length;
|
||||||
|
|
||||||
|
for (int i = context.Padding - propertyName.Length;
|
||||||
|
i >= 0; i--)
|
||||||
|
writer.Write (' ');
|
||||||
|
|
||||||
|
writer.Write (": ");
|
||||||
|
} else
|
||||||
|
writer.Write (':');
|
||||||
|
|
||||||
|
context.ExpectingValue = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7f71379d1020b374999e5c241a7c663c
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
912
meng_yao/Assets/Scripts/Framework/Json/LitJson/Lexer.cs
Normal file
912
meng_yao/Assets/Scripts/Framework/Json/LitJson/Lexer.cs
Normal file
@ -0,0 +1,912 @@
|
|||||||
|
#region Header
|
||||||
|
/**
|
||||||
|
* Lexer.cs
|
||||||
|
* JSON lexer implementation based on a finite state machine.
|
||||||
|
*
|
||||||
|
* The authors disclaim copyright to this source code. For more details, see
|
||||||
|
* the COPYING file included with this distribution.
|
||||||
|
**/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
|
||||||
|
namespace LitJson
|
||||||
|
{
|
||||||
|
internal class FsmContext
|
||||||
|
{
|
||||||
|
public bool Return;
|
||||||
|
public int NextState;
|
||||||
|
public Lexer L;
|
||||||
|
public int StateStack;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
internal class Lexer
|
||||||
|
{
|
||||||
|
#region Fields
|
||||||
|
private delegate bool StateHandler (FsmContext ctx);
|
||||||
|
|
||||||
|
private static readonly int[] fsm_return_table;
|
||||||
|
private static readonly StateHandler[] fsm_handler_table;
|
||||||
|
|
||||||
|
private bool allow_comments;
|
||||||
|
private bool allow_single_quoted_strings;
|
||||||
|
private bool end_of_input;
|
||||||
|
private FsmContext fsm_context;
|
||||||
|
private int input_buffer;
|
||||||
|
private int input_char;
|
||||||
|
private TextReader reader;
|
||||||
|
private int state;
|
||||||
|
private StringBuilder string_buffer;
|
||||||
|
private string string_value;
|
||||||
|
private int token;
|
||||||
|
private int unichar;
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region Properties
|
||||||
|
public bool AllowComments {
|
||||||
|
get { return allow_comments; }
|
||||||
|
set { allow_comments = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool AllowSingleQuotedStrings {
|
||||||
|
get { return allow_single_quoted_strings; }
|
||||||
|
set { allow_single_quoted_strings = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool EndOfInput {
|
||||||
|
get { return end_of_input; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Token {
|
||||||
|
get { return token; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public string StringValue {
|
||||||
|
get { return string_value; }
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region Constructors
|
||||||
|
static Lexer ()
|
||||||
|
{
|
||||||
|
PopulateFsmTables (out fsm_handler_table, out fsm_return_table);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Lexer (TextReader reader)
|
||||||
|
{
|
||||||
|
allow_comments = true;
|
||||||
|
allow_single_quoted_strings = true;
|
||||||
|
|
||||||
|
input_buffer = 0;
|
||||||
|
string_buffer = new StringBuilder (128);
|
||||||
|
state = 1;
|
||||||
|
end_of_input = false;
|
||||||
|
this.reader = reader;
|
||||||
|
|
||||||
|
fsm_context = new FsmContext ();
|
||||||
|
fsm_context.L = this;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region Static Methods
|
||||||
|
private static int HexValue (int digit)
|
||||||
|
{
|
||||||
|
switch (digit) {
|
||||||
|
case 'a':
|
||||||
|
case 'A':
|
||||||
|
return 10;
|
||||||
|
|
||||||
|
case 'b':
|
||||||
|
case 'B':
|
||||||
|
return 11;
|
||||||
|
|
||||||
|
case 'c':
|
||||||
|
case 'C':
|
||||||
|
return 12;
|
||||||
|
|
||||||
|
case 'd':
|
||||||
|
case 'D':
|
||||||
|
return 13;
|
||||||
|
|
||||||
|
case 'e':
|
||||||
|
case 'E':
|
||||||
|
return 14;
|
||||||
|
|
||||||
|
case 'f':
|
||||||
|
case 'F':
|
||||||
|
return 15;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return digit - '0';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void PopulateFsmTables (out StateHandler[] fsm_handler_table, out int[] fsm_return_table)
|
||||||
|
{
|
||||||
|
// See section A.1. of the manual for details of the finite
|
||||||
|
// state machine.
|
||||||
|
fsm_handler_table = new StateHandler[28] {
|
||||||
|
State1,
|
||||||
|
State2,
|
||||||
|
State3,
|
||||||
|
State4,
|
||||||
|
State5,
|
||||||
|
State6,
|
||||||
|
State7,
|
||||||
|
State8,
|
||||||
|
State9,
|
||||||
|
State10,
|
||||||
|
State11,
|
||||||
|
State12,
|
||||||
|
State13,
|
||||||
|
State14,
|
||||||
|
State15,
|
||||||
|
State16,
|
||||||
|
State17,
|
||||||
|
State18,
|
||||||
|
State19,
|
||||||
|
State20,
|
||||||
|
State21,
|
||||||
|
State22,
|
||||||
|
State23,
|
||||||
|
State24,
|
||||||
|
State25,
|
||||||
|
State26,
|
||||||
|
State27,
|
||||||
|
State28
|
||||||
|
};
|
||||||
|
|
||||||
|
fsm_return_table = new int[28] {
|
||||||
|
(int) ParserToken.Char,
|
||||||
|
0,
|
||||||
|
(int) ParserToken.Number,
|
||||||
|
(int) ParserToken.Number,
|
||||||
|
0,
|
||||||
|
(int) ParserToken.Number,
|
||||||
|
0,
|
||||||
|
(int) ParserToken.Number,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
(int) ParserToken.True,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
(int) ParserToken.False,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
(int) ParserToken.Null,
|
||||||
|
(int) ParserToken.CharSeq,
|
||||||
|
(int) ParserToken.Char,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
(int) ParserToken.CharSeq,
|
||||||
|
(int) ParserToken.Char,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private static char ProcessEscChar (int esc_char)
|
||||||
|
{
|
||||||
|
switch (esc_char) {
|
||||||
|
case '"':
|
||||||
|
case '\'':
|
||||||
|
case '\\':
|
||||||
|
case '/':
|
||||||
|
return Convert.ToChar (esc_char);
|
||||||
|
|
||||||
|
case 'n':
|
||||||
|
return '\n';
|
||||||
|
|
||||||
|
case 't':
|
||||||
|
return '\t';
|
||||||
|
|
||||||
|
case 'r':
|
||||||
|
return '\r';
|
||||||
|
|
||||||
|
case 'b':
|
||||||
|
return '\b';
|
||||||
|
|
||||||
|
case 'f':
|
||||||
|
return '\f';
|
||||||
|
|
||||||
|
default:
|
||||||
|
// Unreachable
|
||||||
|
return '?';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State1 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
while (ctx.L.GetChar ()) {
|
||||||
|
if (ctx.L.input_char == ' ' ||
|
||||||
|
ctx.L.input_char >= '\t' && ctx.L.input_char <= '\r')
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (ctx.L.input_char >= '1' && ctx.L.input_char <= '9') {
|
||||||
|
ctx.L.string_buffer.Append ((char) ctx.L.input_char);
|
||||||
|
ctx.NextState = 3;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case '"':
|
||||||
|
ctx.NextState = 19;
|
||||||
|
ctx.Return = true;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case ',':
|
||||||
|
case ':':
|
||||||
|
case '[':
|
||||||
|
case ']':
|
||||||
|
case '{':
|
||||||
|
case '}':
|
||||||
|
ctx.NextState = 1;
|
||||||
|
ctx.Return = true;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case '-':
|
||||||
|
ctx.L.string_buffer.Append ((char) ctx.L.input_char);
|
||||||
|
ctx.NextState = 2;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case '0':
|
||||||
|
ctx.L.string_buffer.Append ((char) ctx.L.input_char);
|
||||||
|
ctx.NextState = 4;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case 'f':
|
||||||
|
ctx.NextState = 12;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case 'n':
|
||||||
|
ctx.NextState = 16;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case 't':
|
||||||
|
ctx.NextState = 9;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case '\'':
|
||||||
|
if (! ctx.L.allow_single_quoted_strings)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
ctx.L.input_char = '"';
|
||||||
|
ctx.NextState = 23;
|
||||||
|
ctx.Return = true;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case '/':
|
||||||
|
if (! ctx.L.allow_comments)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
ctx.NextState = 25;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State2 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
ctx.L.GetChar ();
|
||||||
|
|
||||||
|
if (ctx.L.input_char >= '1' && ctx.L.input_char<= '9') {
|
||||||
|
ctx.L.string_buffer.Append ((char) ctx.L.input_char);
|
||||||
|
ctx.NextState = 3;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case '0':
|
||||||
|
ctx.L.string_buffer.Append ((char) ctx.L.input_char);
|
||||||
|
ctx.NextState = 4;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State3 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
while (ctx.L.GetChar ()) {
|
||||||
|
if (ctx.L.input_char >= '0' && ctx.L.input_char <= '9') {
|
||||||
|
ctx.L.string_buffer.Append ((char) ctx.L.input_char);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ctx.L.input_char == ' ' ||
|
||||||
|
ctx.L.input_char >= '\t' && ctx.L.input_char <= '\r') {
|
||||||
|
ctx.Return = true;
|
||||||
|
ctx.NextState = 1;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case ',':
|
||||||
|
case ']':
|
||||||
|
case '}':
|
||||||
|
ctx.L.UngetChar ();
|
||||||
|
ctx.Return = true;
|
||||||
|
ctx.NextState = 1;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case '.':
|
||||||
|
ctx.L.string_buffer.Append ((char) ctx.L.input_char);
|
||||||
|
ctx.NextState = 5;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case 'e':
|
||||||
|
case 'E':
|
||||||
|
ctx.L.string_buffer.Append ((char) ctx.L.input_char);
|
||||||
|
ctx.NextState = 7;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State4 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
ctx.L.GetChar ();
|
||||||
|
|
||||||
|
if (ctx.L.input_char == ' ' ||
|
||||||
|
ctx.L.input_char >= '\t' && ctx.L.input_char <= '\r') {
|
||||||
|
ctx.Return = true;
|
||||||
|
ctx.NextState = 1;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case ',':
|
||||||
|
case ']':
|
||||||
|
case '}':
|
||||||
|
ctx.L.UngetChar ();
|
||||||
|
ctx.Return = true;
|
||||||
|
ctx.NextState = 1;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case '.':
|
||||||
|
ctx.L.string_buffer.Append ((char) ctx.L.input_char);
|
||||||
|
ctx.NextState = 5;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case 'e':
|
||||||
|
case 'E':
|
||||||
|
ctx.L.string_buffer.Append ((char) ctx.L.input_char);
|
||||||
|
ctx.NextState = 7;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State5 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
ctx.L.GetChar ();
|
||||||
|
|
||||||
|
if (ctx.L.input_char >= '0' && ctx.L.input_char <= '9') {
|
||||||
|
ctx.L.string_buffer.Append ((char) ctx.L.input_char);
|
||||||
|
ctx.NextState = 6;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State6 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
while (ctx.L.GetChar ()) {
|
||||||
|
if (ctx.L.input_char >= '0' && ctx.L.input_char <= '9') {
|
||||||
|
ctx.L.string_buffer.Append ((char) ctx.L.input_char);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ctx.L.input_char == ' ' ||
|
||||||
|
ctx.L.input_char >= '\t' && ctx.L.input_char <= '\r') {
|
||||||
|
ctx.Return = true;
|
||||||
|
ctx.NextState = 1;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case ',':
|
||||||
|
case ']':
|
||||||
|
case '}':
|
||||||
|
ctx.L.UngetChar ();
|
||||||
|
ctx.Return = true;
|
||||||
|
ctx.NextState = 1;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case 'e':
|
||||||
|
case 'E':
|
||||||
|
ctx.L.string_buffer.Append ((char) ctx.L.input_char);
|
||||||
|
ctx.NextState = 7;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State7 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
ctx.L.GetChar ();
|
||||||
|
|
||||||
|
if (ctx.L.input_char >= '0' && ctx.L.input_char<= '9') {
|
||||||
|
ctx.L.string_buffer.Append ((char) ctx.L.input_char);
|
||||||
|
ctx.NextState = 8;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case '+':
|
||||||
|
case '-':
|
||||||
|
ctx.L.string_buffer.Append ((char) ctx.L.input_char);
|
||||||
|
ctx.NextState = 8;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State8 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
while (ctx.L.GetChar ()) {
|
||||||
|
if (ctx.L.input_char >= '0' && ctx.L.input_char<= '9') {
|
||||||
|
ctx.L.string_buffer.Append ((char) ctx.L.input_char);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ctx.L.input_char == ' ' ||
|
||||||
|
ctx.L.input_char >= '\t' && ctx.L.input_char<= '\r') {
|
||||||
|
ctx.Return = true;
|
||||||
|
ctx.NextState = 1;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case ',':
|
||||||
|
case ']':
|
||||||
|
case '}':
|
||||||
|
ctx.L.UngetChar ();
|
||||||
|
ctx.Return = true;
|
||||||
|
ctx.NextState = 1;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State9 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
ctx.L.GetChar ();
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case 'r':
|
||||||
|
ctx.NextState = 10;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State10 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
ctx.L.GetChar ();
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case 'u':
|
||||||
|
ctx.NextState = 11;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State11 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
ctx.L.GetChar ();
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case 'e':
|
||||||
|
ctx.Return = true;
|
||||||
|
ctx.NextState = 1;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State12 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
ctx.L.GetChar ();
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case 'a':
|
||||||
|
ctx.NextState = 13;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State13 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
ctx.L.GetChar ();
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case 'l':
|
||||||
|
ctx.NextState = 14;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State14 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
ctx.L.GetChar ();
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case 's':
|
||||||
|
ctx.NextState = 15;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State15 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
ctx.L.GetChar ();
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case 'e':
|
||||||
|
ctx.Return = true;
|
||||||
|
ctx.NextState = 1;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State16 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
ctx.L.GetChar ();
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case 'u':
|
||||||
|
ctx.NextState = 17;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State17 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
ctx.L.GetChar ();
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case 'l':
|
||||||
|
ctx.NextState = 18;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State18 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
ctx.L.GetChar ();
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case 'l':
|
||||||
|
ctx.Return = true;
|
||||||
|
ctx.NextState = 1;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State19 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
while (ctx.L.GetChar ()) {
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case '"':
|
||||||
|
ctx.L.UngetChar ();
|
||||||
|
ctx.Return = true;
|
||||||
|
ctx.NextState = 20;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case '\\':
|
||||||
|
ctx.StateStack = 19;
|
||||||
|
ctx.NextState = 21;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
ctx.L.string_buffer.Append ((char) ctx.L.input_char);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State20 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
ctx.L.GetChar ();
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case '"':
|
||||||
|
ctx.Return = true;
|
||||||
|
ctx.NextState = 1;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State21 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
ctx.L.GetChar ();
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case 'u':
|
||||||
|
ctx.NextState = 22;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case '"':
|
||||||
|
case '\'':
|
||||||
|
case '/':
|
||||||
|
case '\\':
|
||||||
|
case 'b':
|
||||||
|
case 'f':
|
||||||
|
case 'n':
|
||||||
|
case 'r':
|
||||||
|
case 't':
|
||||||
|
ctx.L.string_buffer.Append (
|
||||||
|
ProcessEscChar (ctx.L.input_char));
|
||||||
|
ctx.NextState = ctx.StateStack;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State22 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
int counter = 0;
|
||||||
|
int mult = 4096;
|
||||||
|
|
||||||
|
ctx.L.unichar = 0;
|
||||||
|
|
||||||
|
while (ctx.L.GetChar ()) {
|
||||||
|
|
||||||
|
if (ctx.L.input_char >= '0' && ctx.L.input_char <= '9' ||
|
||||||
|
ctx.L.input_char >= 'A' && ctx.L.input_char <= 'F' ||
|
||||||
|
ctx.L.input_char >= 'a' && ctx.L.input_char <= 'f') {
|
||||||
|
|
||||||
|
ctx.L.unichar += HexValue (ctx.L.input_char) * mult;
|
||||||
|
|
||||||
|
counter++;
|
||||||
|
mult /= 16;
|
||||||
|
|
||||||
|
if (counter == 4) {
|
||||||
|
ctx.L.string_buffer.Append (
|
||||||
|
Convert.ToChar (ctx.L.unichar));
|
||||||
|
ctx.NextState = ctx.StateStack;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State23 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
while (ctx.L.GetChar ()) {
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case '\'':
|
||||||
|
ctx.L.UngetChar ();
|
||||||
|
ctx.Return = true;
|
||||||
|
ctx.NextState = 24;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case '\\':
|
||||||
|
ctx.StateStack = 23;
|
||||||
|
ctx.NextState = 21;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
ctx.L.string_buffer.Append ((char) ctx.L.input_char);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State24 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
ctx.L.GetChar ();
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case '\'':
|
||||||
|
ctx.L.input_char = '"';
|
||||||
|
ctx.Return = true;
|
||||||
|
ctx.NextState = 1;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State25 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
ctx.L.GetChar ();
|
||||||
|
|
||||||
|
switch (ctx.L.input_char) {
|
||||||
|
case '*':
|
||||||
|
ctx.NextState = 27;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case '/':
|
||||||
|
ctx.NextState = 26;
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State26 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
while (ctx.L.GetChar ()) {
|
||||||
|
if (ctx.L.input_char == '\n') {
|
||||||
|
ctx.NextState = 1;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State27 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
while (ctx.L.GetChar ()) {
|
||||||
|
if (ctx.L.input_char == '*') {
|
||||||
|
ctx.NextState = 28;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool State28 (FsmContext ctx)
|
||||||
|
{
|
||||||
|
while (ctx.L.GetChar ()) {
|
||||||
|
if (ctx.L.input_char == '*')
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (ctx.L.input_char == '/') {
|
||||||
|
ctx.NextState = 1;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx.NextState = 27;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
private bool GetChar ()
|
||||||
|
{
|
||||||
|
if ((input_char = NextChar ()) != -1)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
end_of_input = true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int NextChar ()
|
||||||
|
{
|
||||||
|
if (input_buffer != 0) {
|
||||||
|
int tmp = input_buffer;
|
||||||
|
input_buffer = 0;
|
||||||
|
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
return reader.Read ();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool NextToken ()
|
||||||
|
{
|
||||||
|
StateHandler handler;
|
||||||
|
fsm_context.Return = false;
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
handler = fsm_handler_table[state - 1];
|
||||||
|
|
||||||
|
if (! handler (fsm_context))
|
||||||
|
throw new JsonException (input_char);
|
||||||
|
|
||||||
|
if (end_of_input)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (fsm_context.Return) {
|
||||||
|
string_value = string_buffer.ToString ();
|
||||||
|
string_buffer.Remove (0, string_buffer.Length);
|
||||||
|
token = fsm_return_table[state - 1];
|
||||||
|
|
||||||
|
if (token == (int) ParserToken.Char)
|
||||||
|
token = input_char;
|
||||||
|
|
||||||
|
state = fsm_context.NextState;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
state = fsm_context.NextState;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UngetChar ()
|
||||||
|
{
|
||||||
|
input_buffer = input_char;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
11
meng_yao/Assets/Scripts/Framework/Json/LitJson/Lexer.cs.meta
Normal file
11
meng_yao/Assets/Scripts/Framework/Json/LitJson/Lexer.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fed7c00e58225cc478cd7e57bc42ca71
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,87 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFrameworks>netstandard2.1;netstandard2.0;net45;net48;netstandard1.5;net40;net35;net20;net6.0;net8.0</TargetFrameworks>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||||
|
<DebugType>embedded</DebugType>
|
||||||
|
<EmbedUntrackedSources>true</EmbedUntrackedSources>
|
||||||
|
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
||||||
|
<SourceLinkCreate Condition="'$(OS)' == 'Windows_NT'">true</SourceLinkCreate>
|
||||||
|
<PackageReadmeFile>README.md</PackageReadmeFile>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup Condition="'$(OS)' == 'Windows_NT'">
|
||||||
|
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="all" />
|
||||||
|
<DotNetCliToolReference Include="dotnet-sourcelink-git" Version="2.8.3" />
|
||||||
|
<DotNetCliToolReference Include="dotnet-sourcelink" Version="2.8.3" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<PackageId>LitJson</PackageId>
|
||||||
|
<Description>A .NET library to handle conversions from and to JSON (JavaScript Object Notation) strings. Written in C#, and it’s intended to be small, fast and easy to use.
|
||||||
|
It's quick and lean, without external dependencies.</Description>
|
||||||
|
<Copyright>The authors disclaim copyright to this source code.</Copyright>
|
||||||
|
<Authors>Leonardo Boshell, Mattias Karlsson and contributors</Authors>
|
||||||
|
<Company>Leonardo Boshell, Mattias Karlsson and contributors</Company>
|
||||||
|
<PackageLicenseExpression>Unlicense</PackageLicenseExpression>
|
||||||
|
<PackageIcon>litjson.png</PackageIcon>
|
||||||
|
<RepositoryUrl>https://github.com/LitJSON/litjson</RepositoryUrl>
|
||||||
|
<RepositoryType>git</RepositoryType>
|
||||||
|
<PackageTags>JSON;Serializer</PackageTags>
|
||||||
|
<IncludeSource>true</IncludeSource>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="litjson.png" Pack="true" PackagePath="" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Condition="'$(TargetFramework)' == 'net20' ">
|
||||||
|
<DefineConstants>$(DefineConstants);LEGACY</DefineConstants>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Condition="'$(TargetFramework)' == 'net35' ">
|
||||||
|
<DefineConstants>$(DefineConstants);LEGACY</DefineConstants>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Condition="'$(TargetFramework)' == 'net40' ">
|
||||||
|
<DefineConstants>$(DefineConstants);LEGACY</DefineConstants>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.5' ">
|
||||||
|
<PackageReference Include="System.Collections.NonGeneric" Version="4.3.0" />
|
||||||
|
<PackageReference Include="System.Collections.Specialized" Version="4.3.0" />
|
||||||
|
<PackageReference Include="System.Reflection" Version="4.3.0" />
|
||||||
|
<PackageReference Include="System.Reflection.TypeExtensions" Version="4.7.0" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies.net20" Version="1.0.3" Condition="'$(TargetFramework)' == 'net20' ">
|
||||||
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies.net35" Version="1.0.3" Condition="'$(TargetFramework)' == 'net35' ">
|
||||||
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies.net40" Version="1.0.3" Condition="'$(TargetFramework)' == 'net40' ">
|
||||||
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies.net45" Version="1.0.3" Condition="'$(TargetFramework)' == 'net45' ">
|
||||||
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies.net48" Version="1.0.3" Condition="'$(TargetFramework)' == 'net48' ">
|
||||||
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||||
|
</PackageReference>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="../../README.md" Pack="true" PackagePath="\" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c8d9220f6027bfa4d97fe31ad5eea1fd
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,24 @@
|
|||||||
|
#if NETSTANDARD1_5
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
namespace LitJson
|
||||||
|
{
|
||||||
|
internal static class Netstandard15Polyfill
|
||||||
|
{
|
||||||
|
internal static Type GetInterface(this Type type, string name)
|
||||||
|
{
|
||||||
|
return type.GetTypeInfo().GetInterface(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static bool IsClass(this Type type)
|
||||||
|
{
|
||||||
|
return type.GetTypeInfo().IsClass;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static bool IsEnum(this Type type)
|
||||||
|
{
|
||||||
|
return type.GetTypeInfo().IsEnum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 412bfda3786a3d74696bbf0b9b77c74b
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,44 @@
|
|||||||
|
#region Header
|
||||||
|
/**
|
||||||
|
* ParserToken.cs
|
||||||
|
* Internal representation of the tokens used by the lexer and the parser.
|
||||||
|
*
|
||||||
|
* The authors disclaim copyright to this source code. For more details, see
|
||||||
|
* the COPYING file included with this distribution.
|
||||||
|
**/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
namespace LitJson
|
||||||
|
{
|
||||||
|
internal enum ParserToken
|
||||||
|
{
|
||||||
|
// Lexer tokens (see section A.1.1. of the manual)
|
||||||
|
None = System.Char.MaxValue + 1,
|
||||||
|
Number,
|
||||||
|
True,
|
||||||
|
False,
|
||||||
|
Null,
|
||||||
|
CharSeq,
|
||||||
|
// Single char
|
||||||
|
Char,
|
||||||
|
|
||||||
|
// Parser Rules (see section A.2.1 of the manual)
|
||||||
|
Text,
|
||||||
|
Object,
|
||||||
|
ObjectPrime,
|
||||||
|
Pair,
|
||||||
|
PairRest,
|
||||||
|
Array,
|
||||||
|
ArrayPrime,
|
||||||
|
Value,
|
||||||
|
ValueRest,
|
||||||
|
String,
|
||||||
|
|
||||||
|
// End of input
|
||||||
|
End,
|
||||||
|
|
||||||
|
// The empty rule
|
||||||
|
Epsilon
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9699d359e4b3e9a4e80b67fdabbd1eea
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
meng_yao/Assets/Scripts/Framework/Json/LitJson/litjson.png
Normal file
BIN
meng_yao/Assets/Scripts/Framework/Json/LitJson/litjson.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.3 KiB |
147
meng_yao/Assets/Scripts/Framework/Json/LitJson/litjson.png.meta
Normal file
147
meng_yao/Assets/Scripts/Framework/Json/LitJson/litjson.png.meta
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7bc1a92c460e4d044a17dcda3033935f
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 12
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMasterTextureLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 0
|
||||||
|
wrapV: 0
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: iPhone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: WebGL
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
File diff suppressed because one or more lines are too long
@ -41,9 +41,43 @@ public class mount : MonoBehaviour
|
|||||||
//mountitem.login_screen();
|
//mountitem.login_screen();
|
||||||
|
|
||||||
}
|
}
|
||||||
private void Start()
|
[System.Serializable]
|
||||||
|
public class MyJsonData
|
||||||
{
|
{
|
||||||
//give_firend();
|
public object list;
|
||||||
|
}
|
||||||
|
private async void Start()
|
||||||
|
{
|
||||||
|
string jsonString = "{\"list\":1.2333333}";
|
||||||
|
MyJsonData itemList = JsonUtility.FromJson<MyJsonData>(jsonString);
|
||||||
|
Debug.Log(itemList.list);
|
||||||
|
Debug.Log((float)itemList.list);
|
||||||
|
Debug.Log("======");
|
||||||
|
|
||||||
|
|
||||||
|
//AddGold AddGold = new AddGold();
|
||||||
|
//AddGold.Gold = 100;
|
||||||
|
//string jsonString1 = JsonUtility.ToJson(AddGold);
|
||||||
|
//string response_1 = await web.SendRequest(web.URL + "/Player/Login", "POST", jsonString1);
|
||||||
|
//de
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//Login register = new Login();
|
||||||
|
//register.phonenumble = "13667637952";
|
||||||
|
//string jsonString = JsonUtility.ToJson(register);
|
||||||
|
//string response_1 = await web.SendRequest("http://47.109.133.52/Player/Login", "POST", jsonString);
|
||||||
|
|
||||||
|
//Register register = new Register();
|
||||||
|
//register.Phone = "13667637952";
|
||||||
|
//string jsonString = JsonUtility.ToJson(register);
|
||||||
|
|
||||||
|
//string response_1 = await web.SendRequest("http://47.109.133.52/Player/Login", "POST", jsonString);
|
||||||
|
//Debug.Log(response_1);
|
||||||
|
|
||||||
|
|
||||||
|
//string response_2 = await web.SendRequest("http://47.109.133.52/MinerElf/GetList", "POST");
|
||||||
|
//Debug.Log(response_2);
|
||||||
}
|
}
|
||||||
public GameObject add_pop_up(bool is_force = false)//添加弹窗
|
public GameObject add_pop_up(bool is_force = false)//添加弹窗
|
||||||
{
|
{
|
||||||
@ -63,7 +97,6 @@ public class mount : MonoBehaviour
|
|||||||
List<BoxType> boxTypes = new List<BoxType>();
|
List<BoxType> boxTypes = new List<BoxType>();
|
||||||
boxTypes.Add(new BoxType { Name = "account_number", textName = " 手机号", prompt= "请输入手机号", Type = 1, is_required = true });
|
boxTypes.Add(new BoxType { Name = "account_number", textName = " 手机号", prompt= "请输入手机号", Type = 1, is_required = true });
|
||||||
boxTypes.Add(new BoxType { Name = "verification_code", textName = " 验证码 ", prompt = "请输入验证码", Type = 0, is_required = true });
|
boxTypes.Add(new BoxType { Name = "verification_code", textName = " 验证码 ", prompt = "请输入验证码", Type = 0, is_required = true });
|
||||||
|
|
||||||
boxTypes.Add(new BoxType { Name = "submit", textName = " 取消确定 ",Type = 2});
|
boxTypes.Add(new BoxType { Name = "submit", textName = " 取消确定 ",Type = 2});
|
||||||
GameObject gameObject = add_pop_up(true);//生成弹窗母体
|
GameObject gameObject = add_pop_up(true);//生成弹窗母体
|
||||||
List<GameObject> gameObjects = gameObject.GetComponent<input_box_pop_up_window>().updateUI(boxTypes, "注册");//测试输入框回调处理
|
List<GameObject> gameObjects = gameObject.GetComponent<input_box_pop_up_window>().updateUI(boxTypes, "注册");//测试输入框回调处理
|
||||||
@ -92,48 +125,6 @@ public class mount : MonoBehaviour
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void give_firend()
|
|
||||||
{
|
|
||||||
List<BoxType> boxTypes = new List<BoxType>();
|
|
||||||
boxTypes.Add(new BoxType { Name = "account_number", textName = " 手机号", prompt = "请输入手机号", Type = 8, is_required = true });
|
|
||||||
GameObject gameObject = add_pop_up(true);//生成弹窗母体
|
|
||||||
gameObject.GetComponent<input_box_pop_up_window>().minHeight = 150;
|
|
||||||
gameObject.GetComponent<input_box_pop_up_window>().setScrollMode(0);
|
|
||||||
List<GameObject> gameObjects = gameObject.GetComponent<input_box_pop_up_window>().updateUI(boxTypes, "赠送好友");//回调处理
|
|
||||||
List<GameObject> gameObjectitems = new List<GameObject>();
|
|
||||||
gameObjects[0].GetComponent<input_box_pop_up_window_item>().register_click(async (BoxType boxType, int type) =>//登录确定或取消
|
|
||||||
{
|
|
||||||
foreach (GameObject item in gameObjectitems)
|
|
||||||
{
|
|
||||||
gameObject.GetComponent<input_box_pop_up_window>().Remove(item);
|
|
||||||
}
|
|
||||||
gameObject.GetComponent<input_box_pop_up_window>().minHeight = 900;
|
|
||||||
gameObject.GetComponent<input_box_pop_up_window>().setScrollMode(1);
|
|
||||||
//获取玩家数量代码。。。。。。。
|
|
||||||
List<BoxType> boxTypes = new List<BoxType>();
|
|
||||||
for (int i = 0; i < Random.Range(5,20); i++)
|
|
||||||
{
|
|
||||||
boxTypes.Add(new BoxType {textName = " 查找到的玩家",Type = 7 });
|
|
||||||
}
|
|
||||||
|
|
||||||
gameObjectitems = gameObject.GetComponent<input_box_pop_up_window>().updateUI(boxTypes, "赠送好友");
|
|
||||||
foreach (GameObject item in gameObjectitems)
|
|
||||||
{
|
|
||||||
item.GetComponent<input_box_pop_up_window_item>().register_click(async (BoxType boxType, int type) => {
|
|
||||||
|
|
||||||
List<BoxType> boxTypeser = new List<BoxType>();
|
|
||||||
boxTypeser.Add(new BoxType { Name = "account_number", textName = "二次确定", content = "xxxxxxxxxxx", Type = 9, is_required = true });
|
|
||||||
boxTypeser.Add(new BoxType { Name = "account_number", textName = "确认取消按钮", Type = 2, is_required = true });
|
|
||||||
GameObject ercitanchuang = add_pop_up(true);//生成弹窗母体
|
|
||||||
ercitanchuang.GetComponent<input_box_pop_up_window>().is_force = false;
|
|
||||||
List <GameObject> ercitanchuangs = ercitanchuang.GetComponent<input_box_pop_up_window>().updateUI(boxTypeser, "警告");
|
|
||||||
ercitanchuangs[1].GetComponent<input_box_pop_up_window_item>().register_click(async (BoxType boxType, int type) =>
|
|
||||||
{
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -54,12 +54,9 @@ public class input_box_pop_up_window : MonoBehaviour
|
|||||||
{
|
{
|
||||||
case 0://×Ô¶¯Ìî³ä
|
case 0://×Ô¶¯Ìî³ä
|
||||||
contentList.GetComponent<ContentSizeFitter>().verticalFit = ContentSizeFitter.FitMode.MinSize;
|
contentList.GetComponent<ContentSizeFitter>().verticalFit = ContentSizeFitter.FitMode.MinSize;
|
||||||
viewport.GetComponent<VerticalLayoutGroup>().enabled = true;
|
|
||||||
viewport.GetComponent<VerticalLayoutGroup>().childControlHeight = true;
|
viewport.GetComponent<VerticalLayoutGroup>().childControlHeight = true;
|
||||||
scroll_view.GetComponent<ScrollRect>().horizontal = false;
|
scroll_view.GetComponent<ScrollRect>().horizontal = false;
|
||||||
scroll_view.GetComponent<ScrollRect>().vertical = false;
|
scroll_view.GetComponent<ScrollRect>().vertical = false;
|
||||||
viewport.GetComponent<LayoutElement>().minHeight = minHeight;
|
|
||||||
scroll_view.GetComponent<LayoutElement>().minHeight = minHeight;
|
|
||||||
break;
|
break;
|
||||||
case 1://¹ö¶¯
|
case 1://¹ö¶¯
|
||||||
contentList.GetComponent<ContentSizeFitter>().verticalFit = ContentSizeFitter.FitMode.MinSize;
|
contentList.GetComponent<ContentSizeFitter>().verticalFit = ContentSizeFitter.FitMode.MinSize;
|
||||||
@ -68,16 +65,6 @@ public class input_box_pop_up_window : MonoBehaviour
|
|||||||
viewport.GetComponent<LayoutElement>().minHeight = minHeight;
|
viewport.GetComponent<LayoutElement>().minHeight = minHeight;
|
||||||
scroll_view.GetComponent<LayoutElement>().minHeight = minHeight;
|
scroll_view.GetComponent<LayoutElement>().minHeight = minHeight;
|
||||||
scroll_view.GetComponent<ScrollRect>().vertical = true;
|
scroll_view.GetComponent<ScrollRect>().vertical = true;
|
||||||
|
|
||||||
// 获取RectTransform组件
|
|
||||||
RectTransform rectTransform = contentList.GetComponent<RectTransform>();
|
|
||||||
|
|
||||||
// 设置锚点到中心
|
|
||||||
rectTransform.anchorMin = new Vector2(0.5f, 1);
|
|
||||||
rectTransform.anchorMax = new Vector2(0.5f, 1);
|
|
||||||
|
|
||||||
// 如果需要设置元素相对于锚点的位置,也可以设置pivot
|
|
||||||
rectTransform.pivot = new Vector2(0.5f, 0.5f);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,87 +77,69 @@ public class input_box_pop_up_window : MonoBehaviour
|
|||||||
}
|
}
|
||||||
public void trydestroy()
|
public void trydestroy()
|
||||||
{
|
{
|
||||||
Debug.Log(!is_force);
|
|
||||||
if (!is_force)
|
if (!is_force)
|
||||||
{
|
{
|
||||||
destroy();
|
destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
List<GameObject> gameObjects = new List<GameObject>();
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
setScrollMode(0);
|
setScrollMode(0);
|
||||||
}
|
}
|
||||||
private GameObject addItem(BoxType boxType)
|
|
||||||
{
|
|
||||||
GameObject prefab = null;
|
|
||||||
if (boxType.Type == 0)
|
|
||||||
{
|
|
||||||
prefab = Resources.Load<GameObject>("preform/gui/Input_box");
|
|
||||||
}
|
|
||||||
else if (boxType.Type == 1)
|
|
||||||
{
|
|
||||||
prefab = Resources.Load<GameObject>("preform/gui/Input_box_butt");
|
|
||||||
}
|
|
||||||
else if (boxType.Type == 2)
|
|
||||||
{
|
|
||||||
prefab = Resources.Load<GameObject>("preform/gui/item_button");
|
|
||||||
}
|
|
||||||
else if (boxType.Type == 3)
|
|
||||||
{
|
|
||||||
prefab = Resources.Load<GameObject>("preform/gui/Hero_Ui");
|
|
||||||
}
|
|
||||||
else if (boxType.Type == 4)
|
|
||||||
{
|
|
||||||
prefab = Resources.Load<GameObject>("preform/gui/number_of_layers");
|
|
||||||
}
|
|
||||||
else if (boxType.Type == 5)
|
|
||||||
{
|
|
||||||
prefab = Resources.Load<GameObject>("preform/gui/item_button_1");
|
|
||||||
}
|
|
||||||
else if (boxType.Type == 6)
|
|
||||||
{
|
|
||||||
prefab = Resources.Load<GameObject>("preform/gui/Swap_items_number");
|
|
||||||
}
|
|
||||||
else if (boxType.Type == 7)
|
|
||||||
{
|
|
||||||
prefab = Resources.Load<GameObject>("preform/gui/talent_gift");//赠送玩家信息
|
|
||||||
}
|
|
||||||
else if (boxType.Type == 8)
|
|
||||||
{
|
|
||||||
prefab = Resources.Load<GameObject>("preform/gui/talent_gift_input");//赠送输入框
|
|
||||||
}
|
|
||||||
else if (boxType.Type == 9)
|
|
||||||
{
|
|
||||||
prefab = Resources.Load<GameObject>("preform/gui/text_content");//文本
|
|
||||||
}
|
|
||||||
|
|
||||||
GameObject ranking_list_item = Instantiate(prefab, Vector3.zero, Quaternion.identity);
|
|
||||||
ranking_list_item.transform.parent = contentList.transform;
|
|
||||||
ranking_list_item.GetComponent<input_box_pop_up_window_item>().Update_text(boxType);
|
|
||||||
return ranking_list_item;
|
|
||||||
}
|
|
||||||
public List<GameObject> updateUI(List<BoxType> my_boxTypes,string type = "±êÌâ")//ui¸üÐÂ
|
public List<GameObject> updateUI(List<BoxType> my_boxTypes,string type = "±êÌâ")//ui¸üÐÂ
|
||||||
{
|
{
|
||||||
List<GameObject> gameObjectitem = new List<GameObject>();
|
List<GameObject> gameObjects = new List<GameObject>();
|
||||||
boxTypes = my_boxTypes;
|
boxTypes = my_boxTypes;
|
||||||
Type.GetComponent<Text>().text = type;
|
Type.GetComponent<Text>().text = type;
|
||||||
float posY = 0;
|
|
||||||
foreach (BoxType boxType in boxTypes)
|
foreach (var boxType in boxTypes)
|
||||||
{
|
{
|
||||||
GameObject gameObject = addItem(boxType);
|
|
||||||
gameObjects.Add(gameObject);
|
|
||||||
gameObjectitem.Add(gameObject);
|
|
||||||
posY += gameObject.GetComponent<RectTransform>().sizeDelta.y;
|
|
||||||
|
|
||||||
|
GameObject prefab = null;
|
||||||
|
if (boxType.Type == 0){
|
||||||
|
prefab = Resources.Load<GameObject>("preform/gui/Input_box");
|
||||||
|
}else if (boxType.Type == 1){
|
||||||
|
prefab = Resources.Load<GameObject>("preform/gui/Input_box_butt");
|
||||||
|
}else if (boxType.Type == 2){
|
||||||
|
prefab = Resources.Load<GameObject>("preform/gui/item_button");
|
||||||
|
}else if (boxType.Type == 3)
|
||||||
|
{
|
||||||
|
prefab = Resources.Load<GameObject>("preform/gui/Hero_Ui");
|
||||||
|
}
|
||||||
|
else if (boxType.Type == 4)
|
||||||
|
{
|
||||||
|
prefab = Resources.Load<GameObject>("preform/gui/number_of_layers");
|
||||||
|
}
|
||||||
|
else if (boxType.Type == 5)
|
||||||
|
{
|
||||||
|
prefab = Resources.Load<GameObject>("preform/gui/item_button_1");
|
||||||
|
}else if (boxType.Type == 6)
|
||||||
|
{
|
||||||
|
prefab = Resources.Load<GameObject>("preform/gui/Swap_items_number");
|
||||||
|
}
|
||||||
|
|
||||||
|
GameObject ranking_list_item = Instantiate(prefab, Vector3.zero, Quaternion.identity);
|
||||||
|
ranking_list_item.transform.parent = contentList.transform;
|
||||||
|
ranking_list_item.GetComponent<input_box_pop_up_window_item>().Update_text(boxType);
|
||||||
|
gameObjects.Add(ranking_list_item);
|
||||||
}
|
}
|
||||||
scroll_view.GetComponent<ScrollRect>().verticalNormalizedPosition = 1.0f;
|
|
||||||
return gameObjectitem;
|
SetPosY();
|
||||||
|
return gameObjects;
|
||||||
}
|
}
|
||||||
public void Remove(GameObject gameObject)
|
|
||||||
|
|
||||||
|
public async void SetPosY()
|
||||||
{
|
{
|
||||||
gameObjects.Remove(gameObject);
|
//contentList.GetComponent<CanvasGroup>().alpha = 0;
|
||||||
Destroy(gameObject);
|
await Task.Delay(10);
|
||||||
|
float posY = -(contentList.GetComponent<RectTransform>().sizeDelta.y / 2);
|
||||||
|
Vector3 pos= new Vector3(contentList.transform.position.x, posY, contentList.transform.position.z);
|
||||||
|
contentList.transform.position = pos;
|
||||||
|
/*await Task.Delay(200);
|
||||||
|
contentList.GetComponent<CanvasGroup>().alpha = 1;*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,6 @@ public class input_box_pop_up_window_item : MonoBehaviour
|
|||||||
if (textobj != null) textobj.GetComponent<Text>().text = boxType.textName;
|
if (textobj != null) textobj.GetComponent<Text>().text = boxType.textName;
|
||||||
if (promptobj != null) promptobj.GetComponent<Text>().text = boxType.prompt;
|
if (promptobj != null) promptobj.GetComponent<Text>().text = boxType.prompt;
|
||||||
if (iconobj != null) iconobj.GetComponent<Image>().sprite = boxType.icon;
|
if (iconobj != null) iconobj.GetComponent<Image>().sprite = boxType.icon;
|
||||||
if (contentobj != null) contentobj.GetComponent<Text>().text = boxType.content;
|
|
||||||
}
|
}
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
|
@ -55,7 +55,6 @@ public class web : MonoBehaviour
|
|||||||
// 处理返回的Cookie
|
// 处理返回的Cookie
|
||||||
string setCookieHeader;
|
string setCookieHeader;
|
||||||
string str = request.downloadHandler.text;
|
string str = request.downloadHandler.text;
|
||||||
Debug.Log(str);
|
|
||||||
if (request.GetResponseHeaders().TryGetValue("Set-Cookie", out setCookieHeader))
|
if (request.GetResponseHeaders().TryGetValue("Set-Cookie", out setCookieHeader))
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEditor.Hardware;
|
using Unity.VisualScripting;
|
||||||
using UnityEditorInternal.VersionControl;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
||||||
public class InitInfo : MonoBehaviour
|
public class InitInfo : MonoBehaviour
|
||||||
{
|
{
|
||||||
private MainObject parsedData;
|
private MainObject parsedData;
|
||||||
private Username userdata;
|
|
||||||
|
|
||||||
public Text name;
|
public Text name;
|
||||||
|
public Text userid;
|
||||||
// Start is called before the first frame update
|
// Start is called before the first frame update
|
||||||
private async void Start()
|
private async void Start()
|
||||||
{
|
{
|
||||||
@ -25,16 +25,32 @@ public class InitInfo : MonoBehaviour
|
|||||||
AssestPanel.instance.SetCoinText(parsedData.Info.Gold);
|
AssestPanel.instance.SetCoinText(parsedData.Info.Gold);
|
||||||
AssestPanel.instance.SetStoneText(parsedData.Info.Gem);
|
AssestPanel.instance.SetStoneText(parsedData.Info.Gem);
|
||||||
|
|
||||||
|
//name.text = parsedData.Info.Name;
|
||||||
|
//userid.text = "id :" + parsedData.Info.Id;
|
||||||
|
|
||||||
GetListByPhone getlistbyphone = new GetListByPhone();
|
GetListByPhone getlistbyphone = new GetListByPhone();
|
||||||
getlistbyphone.Phone = "1";
|
getlistbyphone.Phone = "1";
|
||||||
string jsonString = JsonUtility.ToJson(getlistbyphone);
|
string jsonString = JsonUtility.ToJson(getlistbyphone);
|
||||||
string userponse = await web.SendRequest("http://47.109.133.52/Player/GetListByPhone", "POST", jsonString);
|
|
||||||
Debug.Log(userponse);
|
|
||||||
userdata = JsonUtility.FromJson<Username>(userponse);
|
|
||||||
Debug.Log(userdata.ErrorCode);
|
|
||||||
|
|
||||||
//name.text=userdata.nameitem.Name;
|
|
||||||
|
|
||||||
|
string userponse = await web.SendRequest("http://47.109.133.52/Player/GetListByPhone", "POST", jsonString);
|
||||||
|
|
||||||
|
Debug.Log(userponse);
|
||||||
|
//RootData RootData = LitJson.JsonMapper.ToObject<RootData>(userponse);
|
||||||
|
RootData itemList = JsonUtility.FromJson<RootData>(userponse);
|
||||||
|
Debug.Log(itemList.List[0].Gold);
|
||||||
|
if (itemList.List == null)
|
||||||
|
{
|
||||||
|
Debug.Log("list¿Õ");
|
||||||
|
//Debug.Log(rootData.);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Debug.Log(rootData.Info.Id);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update is called once per frame
|
// Update is called once per frame
|
||||||
@ -62,21 +78,56 @@ public class Info
|
|||||||
public string Name;
|
public string Name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[System.Serializable]
|
||||||
public class Username
|
public class PlayerData
|
||||||
{
|
{
|
||||||
public List<nameitem> namelist;
|
public string Id;
|
||||||
|
public object IslandId;
|
||||||
|
public object IsLocked;
|
||||||
|
public object IsCanceled;
|
||||||
|
public string Phone;
|
||||||
|
public string Name;
|
||||||
|
public object Level;
|
||||||
|
public object Referrer;
|
||||||
|
public object Referrals;
|
||||||
|
public float Gold;
|
||||||
|
public object Gem;
|
||||||
|
public object Ore;
|
||||||
|
public object Forge;
|
||||||
|
public object FirstBlood;
|
||||||
|
public object LoginCount;
|
||||||
|
public object TeamLevel;
|
||||||
|
public object Contribution;
|
||||||
|
public object Stamina;
|
||||||
|
public object TreeLevel;
|
||||||
|
public object TreeExp;
|
||||||
|
public object Water;
|
||||||
|
public object CreateDateTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class InfoData
|
||||||
|
{
|
||||||
|
public string Id;
|
||||||
|
public string Name;
|
||||||
|
public float Gold;
|
||||||
|
public int Gem;
|
||||||
|
public int Forge;
|
||||||
|
public int Water;
|
||||||
|
public int Level;
|
||||||
|
}
|
||||||
|
|
||||||
|
[System.Serializable]
|
||||||
|
public class RootData
|
||||||
|
{
|
||||||
|
public PlayerData[] List;
|
||||||
|
public object Info ;
|
||||||
|
public int Stamina;
|
||||||
|
public int Count;
|
||||||
public int ErrorCode;
|
public int ErrorCode;
|
||||||
public string ErrorMessage;
|
public string ErrorMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class nameitem
|
|
||||||
{
|
|
||||||
public string Id;
|
|
||||||
public string Phone;
|
|
||||||
public string Name;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,7 +2,6 @@ using System;
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
|
||||||
|
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
@ -33,7 +32,6 @@ public class JinShaBuy : mount
|
|||||||
{
|
{
|
||||||
|
|
||||||
public int number=1;
|
public int number=1;
|
||||||
public int max = 10;
|
|
||||||
public override void Awake()
|
public override void Awake()
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -54,49 +52,10 @@ public class JinShaBuy : mount
|
|||||||
{
|
{
|
||||||
|
|
||||||
List<BoxType> boxTypes = new List<BoxType>();
|
List<BoxType> boxTypes = new List<BoxType>();
|
||||||
boxTypes.Add(new BoxType { Name = "account_number", textName = " 数量:", prompt = "请输入购买数量", Type = 6, is_required = false});
|
boxTypes.Add(new BoxType { Name = "account_number", textName = " 数量", prompt = "请输入购买数量", Type = 6, is_required = true });
|
||||||
boxTypes.Add(new BoxType { Name = "submit", textName = " 取消购买 ", Type = 2 });
|
boxTypes.Add(new BoxType { Name = "submit", textName = " 取消购买 ", Type = 2 });
|
||||||
GameObject gameObject = add_pop_up(true);//生成弹窗母体
|
GameObject gameObject = add_pop_up(true);//生成弹窗母体
|
||||||
gameObject.GetComponent<input_box_pop_up_window>().minHeight = 800;//设置最低高度
|
|
||||||
List<GameObject> gameObjects = gameObject.GetComponent<input_box_pop_up_window>().updateUI(boxTypes, "购买");//测试输入框回调处理
|
List<GameObject> gameObjects = gameObject.GetComponent<input_box_pop_up_window>().updateUI(boxTypes, "购买");//测试输入框回调处理
|
||||||
|
|
||||||
UpdateText(gameObjects[0].GetComponent<input_box_pop_up_window_item>().contentobj.GetComponent<Text>());
|
|
||||||
|
|
||||||
gameObjects[0].GetComponent<input_box_pop_up_window_item>().register_click(async (BoxType boxType, int type) =>//登录确定或取消
|
|
||||||
{
|
|
||||||
if (type == 0)
|
|
||||||
{
|
|
||||||
if (number>1)
|
|
||||||
{
|
|
||||||
number--;
|
|
||||||
UpdateText(gameObjects[0].GetComponent<input_box_pop_up_window_item>().contentobj.GetComponent<Text>());
|
|
||||||
Debug.Log("减少");
|
|
||||||
Debug.Log(number);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (type == 1)
|
|
||||||
{
|
|
||||||
if (number < max)
|
|
||||||
{
|
|
||||||
number++;
|
|
||||||
UpdateText(gameObjects[0].GetComponent<input_box_pop_up_window_item>().contentobj.GetComponent<Text>());
|
|
||||||
Debug.Log("增加");
|
|
||||||
Debug.Log(number);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (type == 2)
|
|
||||||
{
|
|
||||||
if (number!= max)
|
|
||||||
{
|
|
||||||
number=max;
|
|
||||||
UpdateText(gameObjects[0].GetComponent<input_box_pop_up_window_item>().contentobj.GetComponent<Text>());
|
|
||||||
Debug.Log("Max");
|
|
||||||
Debug.Log(number);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
gameObjects[1].GetComponent<input_box_pop_up_window_item>().register_click(async (BoxType boxType, int type) =>//登录确定或取消
|
gameObjects[1].GetComponent<input_box_pop_up_window_item>().register_click(async (BoxType boxType, int type) =>//登录确定或取消
|
||||||
{
|
{
|
||||||
@ -120,12 +79,6 @@ public class JinShaBuy : mount
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void UpdateText(Text text)
|
|
||||||
{
|
|
||||||
Debug.Log(text.text);
|
|
||||||
text.text = number.ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -77,18 +77,23 @@ public class SceneBtn : MonoBehaviour
|
|||||||
switch (SceneGuodu.instance.sceneName)
|
switch (SceneGuodu.instance.sceneName)
|
||||||
{
|
{
|
||||||
case JumpScene.main_scene:
|
case JumpScene.main_scene:
|
||||||
|
RemoveImage();
|
||||||
Showimage(Troughimagebg, Troughmagerup);
|
Showimage(Troughimagebg, Troughmagerup);
|
||||||
break;
|
break;
|
||||||
case JumpScene.develop_the_main_interface_slices:
|
case JumpScene.develop_the_main_interface_slices:
|
||||||
|
RemoveImage();
|
||||||
Showimage(Developimagebg, Developimagerup);
|
Showimage(Developimagebg, Developimagerup);
|
||||||
break;
|
break;
|
||||||
case JumpScene.shop_scene:
|
case JumpScene.shop_scene:
|
||||||
|
RemoveImage();
|
||||||
Showimage(shopimagebg, shopimagerup);
|
Showimage(shopimagebg, shopimagerup);
|
||||||
break;
|
break;
|
||||||
case JumpScene.heroBg:
|
case JumpScene.heroBg:
|
||||||
|
RemoveImage();
|
||||||
Showimage(Heroimagebg, Heroimagerup);
|
Showimage(Heroimagebg, Heroimagerup);
|
||||||
break;
|
break;
|
||||||
case JumpScene.EcoTree:
|
case JumpScene.EcoTree:
|
||||||
|
RemoveImage();
|
||||||
Showimage(Treeimagebg, Treeimagerup);
|
Showimage(Treeimagebg, Treeimagerup);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -98,7 +103,7 @@ public class SceneBtn : MonoBehaviour
|
|||||||
}
|
}
|
||||||
void shopClick()
|
void shopClick()
|
||||||
{
|
{
|
||||||
RemoveImage();
|
|
||||||
|
|
||||||
shoppanel.DOScale(Deflate, 0.3f).SetEase(Ease.OutBack);
|
shoppanel.DOScale(Deflate, 0.3f).SetEase(Ease.OutBack);
|
||||||
StartCoroutine(Magnify(shoppanel));
|
StartCoroutine(Magnify(shoppanel));
|
||||||
@ -108,7 +113,6 @@ public class SceneBtn : MonoBehaviour
|
|||||||
|
|
||||||
void DevelopClick()
|
void DevelopClick()
|
||||||
{
|
{
|
||||||
RemoveImage();
|
|
||||||
|
|
||||||
Developpanel.DOScale(Deflate,0.3f).SetEase(Ease.OutBack);
|
Developpanel.DOScale(Deflate,0.3f).SetEase(Ease.OutBack);
|
||||||
StartCoroutine(Magnify(Developpanel));
|
StartCoroutine(Magnify(Developpanel));
|
||||||
@ -118,7 +122,7 @@ public class SceneBtn : MonoBehaviour
|
|||||||
|
|
||||||
void TroughClick()
|
void TroughClick()
|
||||||
{
|
{
|
||||||
RemoveImage();
|
|
||||||
|
|
||||||
Troughpanel.DOScale(Deflate, 0.3f).SetEase(Ease.OutBack);
|
Troughpanel.DOScale(Deflate, 0.3f).SetEase(Ease.OutBack);
|
||||||
StartCoroutine(Magnify(Troughpanel));
|
StartCoroutine(Magnify(Troughpanel));
|
||||||
@ -128,7 +132,7 @@ public class SceneBtn : MonoBehaviour
|
|||||||
|
|
||||||
void HeroClick()
|
void HeroClick()
|
||||||
{
|
{
|
||||||
RemoveImage();
|
|
||||||
|
|
||||||
heropanel.DOScale(Deflate, 0.3f).SetEase(Ease.OutBack);
|
heropanel.DOScale(Deflate, 0.3f).SetEase(Ease.OutBack);
|
||||||
StartCoroutine(Magnify(heropanel));
|
StartCoroutine(Magnify(heropanel));
|
||||||
@ -138,7 +142,7 @@ public class SceneBtn : MonoBehaviour
|
|||||||
|
|
||||||
void TreeClick()
|
void TreeClick()
|
||||||
{
|
{
|
||||||
RemoveImage();
|
|
||||||
|
|
||||||
treepanel.DOScale(Deflate, 0.3f).SetEase(Ease.OutBack);
|
treepanel.DOScale(Deflate, 0.3f).SetEase(Ease.OutBack);
|
||||||
StartCoroutine(Magnify(treepanel));
|
StartCoroutine(Magnify(treepanel));
|
||||||
@ -169,7 +173,6 @@ public class SceneBtn : MonoBehaviour
|
|||||||
|
|
||||||
Treeimagebg.sprite = removetextbg;
|
Treeimagebg.sprite = removetextbg;
|
||||||
Treeimagerup.sprite = removetextup;
|
Treeimagerup.sprite = removetextup;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
IEnumerator Magnify(RectTransform allpanel)
|
IEnumerator Magnify(RectTransform allpanel)
|
||||||
@ -178,25 +181,6 @@ public class SceneBtn : MonoBehaviour
|
|||||||
allpanel.DOScale(Vector3.one, 0.5f).SetEase(Ease.OutBack);
|
allpanel.DOScale(Vector3.one, 0.5f).SetEase(Ease.OutBack);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void BeginLoad(int i)
|
|
||||||
{
|
|
||||||
RemoveImage();
|
|
||||||
switch (i)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
Showimage(shopimagebg, shopimagerup);
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
Showimage(Developimagebg, Developimagerup);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
Showimage(Troughimagebg, Troughmagerup);
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
Showimage(Heroimagebg, Heroimagerup);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -42,11 +42,7 @@ public class SilderUI : MonoBehaviour, IDragHandler, IEndDragHandler
|
|||||||
JumpScene.jumpbool = 0;
|
JumpScene.jumpbool = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Mathf.Abs(dragDistance) >= swipeThreshold)
|
|
||||||
{
|
|
||||||
sceneBtn.BeginLoad(JumpScene.jumpbool);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -64,7 +64,8 @@ public class jinsha : mount
|
|||||||
gameObjects[1].GetComponent<input_box_pop_up_window_item>().register_click(async (BoxType boxType, int type) =>//되쩌횅땍샀혤句
|
gameObjects[1].GetComponent<input_box_pop_up_window_item>().register_click(async (BoxType boxType, int type) =>//되쩌횅땍샀혤句
|
||||||
{
|
{
|
||||||
if (type == 1)
|
if (type == 1)
|
||||||
{
|
{
|
||||||
|
Debug.LogError("弹窗界面,但是有bug");
|
||||||
go.Show_buy();
|
go.Show_buy();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -3,7 +3,6 @@ using System.Collections.Generic;
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using TMPro;
|
using TMPro;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Palmmedia.ReportGenerator.Core;
|
|
||||||
using System;
|
using System;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user