diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials/1024x768.prefab b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials/1024x768.prefab index 84a5e43..4838d13 100644 --- a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials/1024x768.prefab +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials/1024x768.prefab @@ -1,22 +1,12 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1001 &100100000 -Prefab: - m_ObjectHideFlags: 1 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: [] - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 0} - m_RootGameObject: {fileID: 1506555509391478} - m_IsPrefabParent: 1 --- !u!1 &1048958803402864 GameObject: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 224396785236523192} - component: {fileID: 222833382448378890} @@ -29,12 +19,115 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!224 &224396785236523192 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1048958803402864} + 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: 224410274476360834} + m_Father: {fileID: 224412111100384724} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 169.8, y: -35.9} + m_SizeDelta: {x: 339.8, y: 71.8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222833382448378890 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1048958803402864} + m_CullTransparentMesh: 1 +--- !u!114 &114429971286294426 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1048958803402864} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &114825474698679592 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1048958803402864} + 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: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114429971286294426} + m_OnClick: + m_PersistentCalls: + m_Calls: [] --- !u!1 &1086316119044956 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 224412111100384724} - component: {fileID: 222123731056135654} @@ -47,12 +140,115 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!224 &224412111100384724 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1086316119044956} + 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: 224396785236523192} + m_Father: {fileID: 224049503732257422} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 2000, y: 1436} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222123731056135654 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1086316119044956} + m_CullTransparentMesh: 1 +--- !u!114 &114947809371510874 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1086316119044956} + 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: 4c69db43dbd474a2987be5807129b4cc, 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 &114962388913432892 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1086316119044956} + 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: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114947809371510874} + m_OnClick: + m_PersistentCalls: + m_Calls: [] --- !u!1 &1506555509391478 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 224049503732257422} - component: {fileID: 223443791425986802} @@ -65,12 +261,97 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!224 &224049503732257422 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1506555509391478} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 224408585172404824} + - {fileID: 224412111100384724} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!223 &223443791425986802 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1506555509391478} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 32767 + m_TargetDisplay: 0 +--- !u!114 &114420769206196330 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1506555509391478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 2960, y: 1440} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!114 &114535206133587424 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1506555509391478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 --- !u!1 &1701400232489060 GameObject: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 224410274476360834} - component: {fileID: 222763382731799498} @@ -82,42 +363,53 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!1 &1761048403840336 -GameObject: +--- !u!224 &224410274476360834 +RectTransform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 - m_Component: - - component: {fileID: 224408585172404824} - - component: {fileID: 222519335633903876} - - component: {fileID: 114502356579168518} - m_Layer: 5 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1701400232489060} + 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: 224396785236523192} + 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 &222763382731799498 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1701400232489060} + m_CullTransparentMesh: 1 --- !u!114 &114000294713222290 MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1701400232489060} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 45 @@ -132,73 +424,71 @@ MonoBehaviour: m_VerticalOverflow: 0 m_LineSpacing: 1 m_Text: Close Ad ---- !u!114 &114420769206196330 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1506555509391478} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 1 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 2960, y: 1440} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 1 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 ---- !u!114 &114429971286294426 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1048958803402864} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 +--- !u!1 &1761048403840336 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224408585172404824} + - component: {fileID: 222519335633903876} + - component: {fileID: 114502356579168518} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224408585172404824 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1761048403840336} + 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: 224049503732257422} + 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 &222519335633903876 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1761048403840336} + m_CullTransparentMesh: 1 --- !u!114 &114502356579168518 MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1761048403840336} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0, g: 0, b: 0, a: 0.809} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_Sprite: {fileID: 0} m_Type: 0 m_PreserveAspect: 0 @@ -207,266 +497,5 @@ MonoBehaviour: m_FillAmount: 1 m_FillClockwise: 1 m_FillOrigin: 0 ---- !u!114 &114535206133587424 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1506555509391478} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &114825474698679592 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1048958803402864} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - 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_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_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 114429971286294426} - m_OnClick: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null ---- !u!114 &114947809371510874 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1086316119044956} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_Sprite: {fileID: 21300000, guid: 4c69db43dbd474a2987be5807129b4cc, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 ---- !u!114 &114962388913432892 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1086316119044956} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - 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_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_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 114947809371510874} - m_OnClick: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null ---- !u!222 &222123731056135654 -CanvasRenderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1086316119044956} ---- !u!222 &222519335633903876 -CanvasRenderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1761048403840336} ---- !u!222 &222763382731799498 -CanvasRenderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1701400232489060} ---- !u!222 &222833382448378890 -CanvasRenderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1048958803402864} ---- !u!223 &223443791425986802 -Canvas: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1506555509391478} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!224 &224049503732257422 -RectTransform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1506555509391478} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_Children: - - {fileID: 224408585172404824} - - {fileID: 224412111100384724} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!224 &224396785236523192 -RectTransform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1048958803402864} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 224410274476360834} - m_Father: {fileID: 224412111100384724} - 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: 169.8, y: -35.9} - m_SizeDelta: {x: 339.8, y: 71.8} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!224 &224408585172404824 -RectTransform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1761048403840336} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 224049503732257422} - 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!224 &224410274476360834 -RectTransform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1701400232489060} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 224396785236523192} - 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!224 &224412111100384724 -RectTransform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1086316119044956} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 224396785236523192} - m_Father: {fileID: 224049503732257422} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 2000, y: 1436} - m_Pivot: {x: 0.5, y: 0.5} + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded/1024x768.prefab b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded/1024x768.prefab index 90748af..6f9eede 100644 --- a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded/1024x768.prefab +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded/1024x768.prefab @@ -1,22 +1,12 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1001 &100100000 -Prefab: - m_ObjectHideFlags: 1 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: [] - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 0} - m_RootGameObject: {fileID: 1372156606540976} - m_IsPrefabParent: 1 --- !u!1 &1128573709916514 GameObject: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 224613362496813788} - component: {fileID: 222982220858172370} @@ -29,12 +19,115 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!224 &224613362496813788 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1128573709916514} + 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: 224920559942719848} + m_Father: {fileID: 224516481964458542} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 161.38, y: -34.2} + m_SizeDelta: {x: 323, y: 68.4} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222982220858172370 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1128573709916514} + m_CullTransparentMesh: 1 +--- !u!114 &114531233940747562 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1128573709916514} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &114252552421956380 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1128573709916514} + 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: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114531233940747562} + m_OnClick: + m_PersistentCalls: + m_Calls: [] --- !u!1 &1266630977519298 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 224230749014027406} - component: {fileID: 222796572593907422} @@ -46,12 +139,70 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!224 &224230749014027406 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1266630977519298} + 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: 224692589100518744} + 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 &222796572593907422 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1266630977519298} + m_CullTransparentMesh: 1 +--- !u!114 &114058432909893366 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1266630977519298} + 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: 0, g: 0, b: 0, a: 0.80784315} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &1372156606540976 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 224692589100518744} - component: {fileID: 223553207263892384} @@ -64,12 +215,97 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!224 &224692589100518744 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1372156606540976} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 224230749014027406} + - {fileID: 224516481964458542} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!223 &223553207263892384 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1372156606540976} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 32767 + m_TargetDisplay: 0 +--- !u!114 &114758204355010086 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1372156606540976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 2960, y: 1440} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0.5 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!114 &114768781952071512 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1372156606540976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 --- !u!1 &1776151137375062 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 224516481964458542} - component: {fileID: 222969686989629696} @@ -82,12 +318,116 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!224 &224516481964458542 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1776151137375062} + 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: 224613362496813788} + - {fileID: 224061913340101242} + m_Father: {fileID: 224692589100518744} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 2000, y: 1436} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222969686989629696 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1776151137375062} + m_CullTransparentMesh: 1 +--- !u!114 &114818721744753168 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1776151137375062} + 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: 4c69db43dbd474a2987be5807129b4cc, 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 &114637091538056986 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1776151137375062} + 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: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114818721744753168} + m_OnClick: + m_PersistentCalls: + m_Calls: [] --- !u!1 &1839101188223610 GameObject: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 224920559942719848} - component: {fileID: 222848794251129344} @@ -99,143 +439,53 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!1 &1940818438327928 -GameObject: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 5 - m_Component: - - component: {fileID: 224061913340101242} - - component: {fileID: 222966908609815736} - - component: {fileID: 114332259168256334} - m_Layer: 5 - m_Name: Text - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &114058432909893366 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1266630977519298} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.80784315} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 ---- !u!114 &114252552421956380 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1128573709916514} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - 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_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_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 114531233940747562} - m_OnClick: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null ---- !u!114 &114332259168256334 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1940818438327928} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 45 - m_FontStyle: 1 - m_BestFit: 0 - m_MinSize: 0 - m_MaxSize: 45 - m_Alignment: 0 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: 5 second(s) remaining +--- !u!224 &224920559942719848 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1839101188223610} + 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: 224613362496813788} + 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 &222848794251129344 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1839101188223610} + m_CullTransparentMesh: 1 --- !u!114 &114380357142010322 MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1839101188223610} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 45 @@ -250,298 +500,82 @@ MonoBehaviour: m_VerticalOverflow: 0 m_LineSpacing: 1 m_Text: Close Ad ---- !u!114 &114531233940747562 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1128573709916514} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 ---- !u!114 &114637091538056986 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1776151137375062} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - 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_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_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 114818721744753168} - m_OnClick: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, - Culture=neutral, PublicKeyToken=null ---- !u!114 &114758204355010086 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1372156606540976} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 1 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 2960, y: 1440} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0.5 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 ---- !u!114 &114768781952071512 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1372156606540976} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &114818721744753168 -MonoBehaviour: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1776151137375062} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, - Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - m_Sprite: {fileID: 21300000, guid: 4c69db43dbd474a2987be5807129b4cc, type: 3} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 ---- !u!222 &222796572593907422 -CanvasRenderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1266630977519298} ---- !u!222 &222848794251129344 -CanvasRenderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1839101188223610} ---- !u!222 &222966908609815736 -CanvasRenderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1940818438327928} ---- !u!222 &222969686989629696 -CanvasRenderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1776151137375062} ---- !u!222 &222982220858172370 -CanvasRenderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1128573709916514} ---- !u!223 &223553207263892384 -Canvas: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1372156606540976} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 +--- !u!1 &1940818438327928 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224061913340101242} + - component: {fileID: 222966908609815736} + - component: {fileID: 114332259168256334} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 --- !u!224 &224061913340101242 RectTransform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1940818438327928} 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: 224516481964458542} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} m_AnchoredPosition: {x: 290, y: -42.7} m_SizeDelta: {x: 493, y: 51.4} m_Pivot: {x: 0.5, y: 0.5} ---- !u!224 &224230749014027406 -RectTransform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1266630977519298} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 224692589100518744} - 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!224 &224516481964458542 -RectTransform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1776151137375062} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 224613362496813788} - - {fileID: 224061913340101242} - m_Father: {fileID: 224692589100518744} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 2000, y: 1436} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!224 &224613362496813788 -RectTransform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1128573709916514} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 224920559942719848} - m_Father: {fileID: 224516481964458542} - 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: 161.38, y: -34.2} - m_SizeDelta: {x: 323, y: 68.4} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!224 &224692589100518744 -RectTransform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1372156606540976} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_Children: - - {fileID: 224230749014027406} - - {fileID: 224516481964458542} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!224 &224920559942719848 -RectTransform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 1839101188223610} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 224613362496813788} - 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 &222966908609815736 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1940818438327928} + m_CullTransparentMesh: 1 +--- !u!114 &114332259168256334 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1940818438327928} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 45 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 45 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 5 second(s) remaining diff --git a/Assets/GoogleSignIn/Editor/google-signin-plugin_v1.0.4.txt b/Assets/GoogleSignIn/Editor/google-signin-plugin_v1.0.4.txt index 4f1abe2..46cff60 100644 --- a/Assets/GoogleSignIn/Editor/google-signin-plugin_v1.0.4.txt +++ b/Assets/GoogleSignIn/Editor/google-signin-plugin_v1.0.4.txt @@ -1,33 +1,33 @@ -Assets/PlayServicesResolver/Editor/Google.VersionHandlerImpl.dll -Assets/PlayServicesResolver/Editor/Google.IOSResolver.dll -Assets/PlayServicesResolver/Editor/Google.VersionHandler.dll -Assets/PlayServicesResolver/Editor/Google.JarResolver.dll -Assets/Plugins/iOS/GoogleSignIn/GoogleSignInAppController.mm -Assets/Plugins/iOS/GoogleSignIn/GoogleSignInAppController.h -Assets/Plugins/iOS/GoogleSignIn/GoogleSignIn.h -Assets/Plugins/iOS/GoogleSignIn/GoogleSignIn.mm -Assets/Parse/LICENSE -Assets/Parse/Plugins/Unity.Compat.dll -Assets/Parse/Plugins/Unity.Tasks.dll -Assets/SignInSample/MainScene.unity -Assets/SignInSample/SigninSampleScript.cs -Assets/GoogleSignIn/Impl/GoogleSignInImpl.cs -Assets/GoogleSignIn/Impl/SignInHelperObject.cs -Assets/GoogleSignIn/Impl/NativeFuture.cs -Assets/GoogleSignIn/Impl/BaseObject.cs -Assets/GoogleSignIn/GoogleSignIn.cs -Assets/GoogleSignIn/GoogleSignInConfiguration.cs -Assets/GoogleSignIn/Future.cs -Assets/GoogleSignIn/GoogleSignInUser.cs -Assets/GoogleSignIn/GoogleSignInStatusCode.cs -Assets/GoogleSignIn/Editor/GoogleSignInDependencies.xml -Assets/GoogleSignIn/Editor/GoogleSignInSupportDependencies.xml -Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/maven-metadata.xml -Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/maven-metadata.xml.md5 -Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/maven-metadata.xml.sha1 -Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.pom.md5 -Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.srcaar.sha1 -Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.pom.sha1 -Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.srcaar -Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.pom -Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.srcaar.md5 +Assets/PlayServicesResolver/Editor/Google.VersionHandlerImpl.dll +Assets/PlayServicesResolver/Editor/Google.IOSResolver.dll +Assets/PlayServicesResolver/Editor/Google.VersionHandler.dll +Assets/PlayServicesResolver/Editor/Google.JarResolver.dll +Assets/Plugins/iOS/GoogleSignIn/GoogleSignInAppController.mm +Assets/Plugins/iOS/GoogleSignIn/GoogleSignInAppController.h +Assets/Plugins/iOS/GoogleSignIn/GoogleSignIn.h +Assets/Plugins/iOS/GoogleSignIn/GoogleSignIn.mm +Assets/Parse/LICENSE +Assets/Parse/Plugins/Unity.Compat.dll +Assets/Parse/Plugins/Unity.Tasks.dll +Assets/SignInSample/MainScene.unity +Assets/SignInSample/SigninSampleScript.cs +Assets/GoogleSignIn/Impl/GoogleSignInImpl.cs +Assets/GoogleSignIn/Impl/SignInHelperObject.cs +Assets/GoogleSignIn/Impl/NativeFuture.cs +Assets/GoogleSignIn/Impl/BaseObject.cs +Assets/GoogleSignIn/GoogleSignIn.cs +Assets/GoogleSignIn/GoogleSignInConfiguration.cs +Assets/GoogleSignIn/Future.cs +Assets/GoogleSignIn/GoogleSignInUser.cs +Assets/GoogleSignIn/GoogleSignInStatusCode.cs +Assets/GoogleSignIn/Editor/GoogleSignInDependencies.xml +Assets/GoogleSignIn/Editor/GoogleSignInSupportDependencies.xml +Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/maven-metadata.xml +Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/maven-metadata.xml.md5 +Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/maven-metadata.xml.sha1 +Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.pom.md5 +Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.srcaar.sha1 +Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.pom.sha1 +Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.srcaar +Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.pom +Assets/GoogleSignIn/Editor/m2repository/com/google/signin/google-signin-support/1.0.4/google-signin-support-1.0.4.srcaar.md5 diff --git a/Assets/Inguz Media Studio/Free 2D Impact FX/Demo Scene/Righteous-Regular OFLicence.txt b/Assets/Inguz Media Studio/Free 2D Impact FX/Demo Scene/Righteous-Regular OFLicence.txt index 1456c18..f1a20ac 100644 --- a/Assets/Inguz Media Studio/Free 2D Impact FX/Demo Scene/Righteous-Regular OFLicence.txt +++ b/Assets/Inguz Media Studio/Free 2D Impact FX/Demo Scene/Righteous-Regular OFLicence.txt @@ -1,97 +1,97 @@ -Copyright (c) , (), -with Reserved Font Name . -Copyright (c) , (), -with Reserved Font Name . -Copyright (c) , (). - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -http://scripts.sil.org/OFL - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. +Copyright (c) , (), +with Reserved Font Name . +Copyright (c) , (), +with Reserved Font Name . +Copyright (c) , (). + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/Assets/JMO Assets/Cartoon FX (legacy)/CartoonFX Free.txt b/Assets/JMO Assets/Cartoon FX (legacy)/CartoonFX Free.txt index 3179a92..6068e75 100644 --- a/Assets/JMO Assets/Cartoon FX (legacy)/CartoonFX Free.txt +++ b/Assets/JMO Assets/Cartoon FX (legacy)/CartoonFX Free.txt @@ -1,55 +1,55 @@ -Cartoon FX Free, version 1.01 -2019/03/20 -© 2019 - Jean Moreno -============================= - -QUICK START ------------ -This is a selection of effects from Cartoon FX Packs 1,2,3 and 4. -You can find the effects in the following folders: -/JMO Assets/Cartoon FX/CFX* Prefabs/ -(* being the number of the pack the effect is from) - - -FULL PACKS ----------- -The full commercial packs on the Unity Asset Store offer: -- way more effect prefabs -- multiple variations of the effects -- mobile-optimized versions of the effects -- CFX Spawn System (beginner-friendly way to recycle spawned effect, aka "pooling") - -Open the Welcome Screen in the menu to quickly see them on the Asset Store: -Window > JMO Assets > Welcome Screens > Cartoon FX Free - - - -PLEASE LEAVE A REVIEW OR RATE THE PACKAGE IF YOU FIND IT USEFUL! -Enjoy! :) - - - -CONTACT -------- -Questions, suggestions, help needed? -Contact me at: - -jean.moreno.public+unity@gmail.com - - -RELEASE NOTES -------------- -1.03 -- Welcome Screen fix for Unity 2019.1 -- Removed 'JMOAssets.dll', became obsolete with the Asset Store update notification system - -1.02 -- fixed small API deprecation as of Unity 2017.4+ - -1.01 -- updated shaders so that they work on PS4 -- updated shaders for GPU Instancing and Stereo Rendering -- updated effects with "Horizontal Billboard" particle render mode to "Billboard" with local alignment so that they can be freely rotated - -1.0 +Cartoon FX Free, version 1.01 +2019/03/20 +© 2019 - Jean Moreno +============================= + +QUICK START +----------- +This is a selection of effects from Cartoon FX Packs 1,2,3 and 4. +You can find the effects in the following folders: +/JMO Assets/Cartoon FX/CFX* Prefabs/ +(* being the number of the pack the effect is from) + + +FULL PACKS +---------- +The full commercial packs on the Unity Asset Store offer: +- way more effect prefabs +- multiple variations of the effects +- mobile-optimized versions of the effects +- CFX Spawn System (beginner-friendly way to recycle spawned effect, aka "pooling") + +Open the Welcome Screen in the menu to quickly see them on the Asset Store: +Window > JMO Assets > Welcome Screens > Cartoon FX Free + + + +PLEASE LEAVE A REVIEW OR RATE THE PACKAGE IF YOU FIND IT USEFUL! +Enjoy! :) + + + +CONTACT +------- +Questions, suggestions, help needed? +Contact me at: + +jean.moreno.public+unity@gmail.com + + +RELEASE NOTES +------------- +1.03 +- Welcome Screen fix for Unity 2019.1 +- Removed 'JMOAssets.dll', became obsolete with the Asset Store update notification system + +1.02 +- fixed small API deprecation as of Unity 2017.4+ + +1.01 +- updated shaders so that they work on PS4 +- updated shaders for GPU Instancing and Stereo Rendering +- updated effects with "Horizontal Billboard" particle render mode to "Billboard" with local alignment so that they can be freely rotated + +1.0 - initial release \ No newline at end of file diff --git a/Assets/JMO Assets/Cartoon FX (legacy)/Demo/Assets/CFX_Demo_New.cs b/Assets/JMO Assets/Cartoon FX (legacy)/Demo/Assets/CFX_Demo_New.cs index 03ae835..c12eaaa 100644 --- a/Assets/JMO Assets/Cartoon FX (legacy)/Demo/Assets/CFX_Demo_New.cs +++ b/Assets/JMO Assets/Cartoon FX (legacy)/Demo/Assets/CFX_Demo_New.cs @@ -1,239 +1,239 @@ -using UnityEngine; -using UnityEngine.UI; -using System.Collections; -using System.Collections.Generic; -using System.Text.RegularExpressions; - -// Cartoon FX - (c) 2015 - Jean Moreno -// -// Script handling the Demo scene of the Cartoon FX Packs - -public class CFX_Demo_New : MonoBehaviour -{ - public Renderer groundRenderer; - public Collider groundCollider; - [Space] - [Space] - public Image slowMoBtn; - public Text slowMoLabel; - public Image camRotBtn; - public Text camRotLabel; - public Image groundBtn; - public Text groundLabel; - [Space] - public Text EffectLabel; - public Text EffectIndexLabel; - - //------------------------------------------------------------- - - private GameObject[] ParticleExamples; - private int exampleIndex; - private bool slowMo; - private Vector3 defaultCamPosition; - private Quaternion defaultCamRotation; - - private List onScreenParticles = new List(); - - //------------------------------------------------------------- - - void Awake() - { - List particleExampleList = new List(); - int nbChild = this.transform.childCount; - for(int i = 0; i < nbChild; i++) - { - GameObject child = this.transform.GetChild(i).gameObject; - particleExampleList.Add(child); - } - particleExampleList.Sort( delegate(GameObject o1, GameObject o2) { return o1.name.CompareTo(o2.name); } ); - ParticleExamples = particleExampleList.ToArray(); - - defaultCamPosition = Camera.main.transform.position; - defaultCamRotation = Camera.main.transform.rotation; - - StartCoroutine("CheckForDeletedParticles"); - - UpdateUI(); - } - - void Update() - { - if(Input.GetKeyDown(KeyCode.LeftArrow)) - { - prevParticle(); - } - else if(Input.GetKeyDown(KeyCode.RightArrow)) - { - nextParticle(); - } - else if(Input.GetKeyDown(KeyCode.Delete)) - { - destroyParticles(); - } - - if(Input.GetMouseButtonDown(0)) - { - RaycastHit hit = new RaycastHit(); - if(groundCollider.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, 9999f)) - { - GameObject particle = spawnParticle(); - particle.transform.position = hit.point + particle.transform.position; - } - } - - float scroll = Input.GetAxis("Mouse ScrollWheel"); - if(scroll != 0f) - { - Camera.main.transform.Translate(Vector3.forward * (scroll < 0f ? -1f : 1f), Space.Self); - } - - if(Input.GetMouseButtonDown(2)) - { - Camera.main.transform.position = defaultCamPosition; - Camera.main.transform.rotation = defaultCamRotation; - } - } - - //------------------------------------------------------------- - // MESSAGES - - public void OnToggleGround() - { - var c = Color.white; - groundRenderer.enabled = !groundRenderer.enabled; - c.a = groundRenderer.enabled ? 1f : 0.33f; - groundBtn.color = c; - groundLabel.color = c; - } - - public void OnToggleCamera() - { - var c = Color.white; - CFX_Demo_RotateCamera.rotating = !CFX_Demo_RotateCamera.rotating; - c.a = CFX_Demo_RotateCamera.rotating ? 1f : 0.33f; - camRotBtn.color = c; - camRotLabel.color = c; - } - - public void OnToggleSlowMo() - { - var c = Color.white; - - slowMo = !slowMo; - if(slowMo) - { - Time.timeScale = 0.33f; - c.a = 1f; - } - else - { - Time.timeScale = 1.0f; - c.a = 0.33f; - } - - slowMoBtn.color = c; - slowMoLabel.color = c; - } - - public void OnPreviousEffect() - { - prevParticle(); - } - - public void OnNextEffect() - { - nextParticle(); - } - - //------------------------------------------------------------- - // UI - - private void UpdateUI() - { - EffectLabel.text = ParticleExamples[exampleIndex].name; - EffectIndexLabel.text = string.Format("{0}/{1}", (exampleIndex+1).ToString("00"), ParticleExamples.Length.ToString("00")); - } - - //------------------------------------------------------------- - // SYSTEM - - private GameObject spawnParticle() - { - GameObject particles = (GameObject)Instantiate(ParticleExamples[exampleIndex]); - particles.transform.position = new Vector3(0,particles.transform.position.y,0); - #if UNITY_3_5 - particles.SetActiveRecursively(true); - #else - particles.SetActive(true); -// for(int i = 0; i < particles.transform.childCount; i++) -// particles.transform.GetChild(i).gameObject.SetActive(true); - #endif - - ParticleSystem ps = particles.GetComponent(); - -#if UNITY_5_5_OR_NEWER - if (ps != null) - { - var main = ps.main; - if (main.loop) - { - ps.gameObject.AddComponent(); - ps.gameObject.AddComponent(); - } - } -#else - if(ps != null && ps.loop) - { - ps.gameObject.AddComponent(); - ps.gameObject.AddComponent(); - } -#endif - - onScreenParticles.Add(particles); - - return particles; - } - - IEnumerator CheckForDeletedParticles() - { - while(true) - { - yield return new WaitForSeconds(5.0f); - for(int i = onScreenParticles.Count - 1; i >= 0; i--) - { - if(onScreenParticles[i] == null) - { - onScreenParticles.RemoveAt(i); - } - } - } - } - - private void prevParticle() - { - exampleIndex--; - if(exampleIndex < 0) exampleIndex = ParticleExamples.Length - 1; - - UpdateUI(); - } - private void nextParticle() - { - exampleIndex++; - if(exampleIndex >= ParticleExamples.Length) exampleIndex = 0; - - UpdateUI(); - } - - private void destroyParticles() - { - for(int i = onScreenParticles.Count - 1; i >= 0; i--) - { - if(onScreenParticles[i] != null) - { - GameObject.Destroy(onScreenParticles[i]); - } - - onScreenParticles.RemoveAt(i); - } - } -} +using UnityEngine; +using UnityEngine.UI; +using System.Collections; +using System.Collections.Generic; +using System.Text.RegularExpressions; + +// Cartoon FX - (c) 2015 - Jean Moreno +// +// Script handling the Demo scene of the Cartoon FX Packs + +public class CFX_Demo_New : MonoBehaviour +{ + public Renderer groundRenderer; + public Collider groundCollider; + [Space] + [Space] + public Image slowMoBtn; + public Text slowMoLabel; + public Image camRotBtn; + public Text camRotLabel; + public Image groundBtn; + public Text groundLabel; + [Space] + public Text EffectLabel; + public Text EffectIndexLabel; + + //------------------------------------------------------------- + + private GameObject[] ParticleExamples; + private int exampleIndex; + private bool slowMo; + private Vector3 defaultCamPosition; + private Quaternion defaultCamRotation; + + private List onScreenParticles = new List(); + + //------------------------------------------------------------- + + void Awake() + { + List particleExampleList = new List(); + int nbChild = this.transform.childCount; + for(int i = 0; i < nbChild; i++) + { + GameObject child = this.transform.GetChild(i).gameObject; + particleExampleList.Add(child); + } + particleExampleList.Sort( delegate(GameObject o1, GameObject o2) { return o1.name.CompareTo(o2.name); } ); + ParticleExamples = particleExampleList.ToArray(); + + defaultCamPosition = Camera.main.transform.position; + defaultCamRotation = Camera.main.transform.rotation; + + StartCoroutine("CheckForDeletedParticles"); + + UpdateUI(); + } + + void Update() + { + if(Input.GetKeyDown(KeyCode.LeftArrow)) + { + prevParticle(); + } + else if(Input.GetKeyDown(KeyCode.RightArrow)) + { + nextParticle(); + } + else if(Input.GetKeyDown(KeyCode.Delete)) + { + destroyParticles(); + } + + if(Input.GetMouseButtonDown(0)) + { + RaycastHit hit = new RaycastHit(); + if(groundCollider.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, 9999f)) + { + GameObject particle = spawnParticle(); + particle.transform.position = hit.point + particle.transform.position; + } + } + + float scroll = Input.GetAxis("Mouse ScrollWheel"); + if(scroll != 0f) + { + Camera.main.transform.Translate(Vector3.forward * (scroll < 0f ? -1f : 1f), Space.Self); + } + + if(Input.GetMouseButtonDown(2)) + { + Camera.main.transform.position = defaultCamPosition; + Camera.main.transform.rotation = defaultCamRotation; + } + } + + //------------------------------------------------------------- + // MESSAGES + + public void OnToggleGround() + { + var c = Color.white; + groundRenderer.enabled = !groundRenderer.enabled; + c.a = groundRenderer.enabled ? 1f : 0.33f; + groundBtn.color = c; + groundLabel.color = c; + } + + public void OnToggleCamera() + { + var c = Color.white; + CFX_Demo_RotateCamera.rotating = !CFX_Demo_RotateCamera.rotating; + c.a = CFX_Demo_RotateCamera.rotating ? 1f : 0.33f; + camRotBtn.color = c; + camRotLabel.color = c; + } + + public void OnToggleSlowMo() + { + var c = Color.white; + + slowMo = !slowMo; + if(slowMo) + { + Time.timeScale = 0.33f; + c.a = 1f; + } + else + { + Time.timeScale = 1.0f; + c.a = 0.33f; + } + + slowMoBtn.color = c; + slowMoLabel.color = c; + } + + public void OnPreviousEffect() + { + prevParticle(); + } + + public void OnNextEffect() + { + nextParticle(); + } + + //------------------------------------------------------------- + // UI + + private void UpdateUI() + { + EffectLabel.text = ParticleExamples[exampleIndex].name; + EffectIndexLabel.text = string.Format("{0}/{1}", (exampleIndex+1).ToString("00"), ParticleExamples.Length.ToString("00")); + } + + //------------------------------------------------------------- + // SYSTEM + + private GameObject spawnParticle() + { + GameObject particles = (GameObject)Instantiate(ParticleExamples[exampleIndex]); + particles.transform.position = new Vector3(0,particles.transform.position.y,0); + #if UNITY_3_5 + particles.SetActiveRecursively(true); + #else + particles.SetActive(true); +// for(int i = 0; i < particles.transform.childCount; i++) +// particles.transform.GetChild(i).gameObject.SetActive(true); + #endif + + ParticleSystem ps = particles.GetComponent(); + +#if UNITY_5_5_OR_NEWER + if (ps != null) + { + var main = ps.main; + if (main.loop) + { + ps.gameObject.AddComponent(); + ps.gameObject.AddComponent(); + } + } +#else + if(ps != null && ps.loop) + { + ps.gameObject.AddComponent(); + ps.gameObject.AddComponent(); + } +#endif + + onScreenParticles.Add(particles); + + return particles; + } + + IEnumerator CheckForDeletedParticles() + { + while(true) + { + yield return new WaitForSeconds(5.0f); + for(int i = onScreenParticles.Count - 1; i >= 0; i--) + { + if(onScreenParticles[i] == null) + { + onScreenParticles.RemoveAt(i); + } + } + } + } + + private void prevParticle() + { + exampleIndex--; + if(exampleIndex < 0) exampleIndex = ParticleExamples.Length - 1; + + UpdateUI(); + } + private void nextParticle() + { + exampleIndex++; + if(exampleIndex >= ParticleExamples.Length) exampleIndex = 0; + + UpdateUI(); + } + + private void destroyParticles() + { + for(int i = onScreenParticles.Count - 1; i >= 0; i--) + { + if(onScreenParticles[i] != null) + { + GameObject.Destroy(onScreenParticles[i]); + } + + onScreenParticles.RemoveAt(i); + } + } +} diff --git a/Assets/JMO Assets/Cartoon FX (legacy)/Mesh/CFX_Mesh_Circular.FBX b/Assets/JMO Assets/Cartoon FX (legacy)/Mesh/CFX_Mesh_Circular.FBX index c535d96..1b8e728 100644 --- a/Assets/JMO Assets/Cartoon FX (legacy)/Mesh/CFX_Mesh_Circular.FBX +++ b/Assets/JMO Assets/Cartoon FX (legacy)/Mesh/CFX_Mesh_Circular.FBX @@ -1,284 +1,284 @@ -; FBX 6.1.0 project file -; Copyright (C) 1997-2008 Autodesk Inc. and/or its licensors. -; All rights reserved. -; ---------------------------------------------------- - -FBXHeaderExtension: { - FBXHeaderVersion: 1003 - FBXVersion: 6100 - CreationTimeStamp: { - Version: 1000 - Year: 2012 - Month: 7 - Day: 26 - Hour: 16 - Minute: 9 - Second: 17 - Millisecond: 234 - } - Creator: "FBX SDK/FBX Plugins version 2009.3" - OtherFlags: { - FlagPLE: 0 - } -} -CreationTime: "2012-07-26 16:09:17:234" -Creator: "FBX SDK/FBX Plugins build 20080926" - -; Document Description -;------------------------------------------------------------------ - -Document: { - Name: "" -} - -; Document References -;------------------------------------------------------------------ - -References: { -} - -; Object definitions -;------------------------------------------------------------------ - -Definitions: { - Version: 100 - Count: 3 - ObjectType: "Model" { - Count: 1 - } - ObjectType: "SceneInfo" { - Count: 1 - } - ObjectType: "GlobalSettings" { - Count: 1 - } -} - -; Object properties -;------------------------------------------------------------------ - -Objects: { - Model: "Model::CFX_Circular", "Mesh" { - Version: 232 - Properties60: { - Property: "QuaternionInterpolate", "bool", "",0 - Property: "RotationOffset", "Vector3D", "",0,0,0 - Property: "RotationPivot", "Vector3D", "",0,0,0 - Property: "ScalingOffset", "Vector3D", "",0,0,0 - Property: "ScalingPivot", "Vector3D", "",0,0,0 - Property: "TranslationActive", "bool", "",0 - Property: "TranslationMin", "Vector3D", "",0,0,0 - Property: "TranslationMax", "Vector3D", "",0,0,0 - Property: "TranslationMinX", "bool", "",0 - Property: "TranslationMinY", "bool", "",0 - Property: "TranslationMinZ", "bool", "",0 - Property: "TranslationMaxX", "bool", "",0 - Property: "TranslationMaxY", "bool", "",0 - Property: "TranslationMaxZ", "bool", "",0 - Property: "RotationOrder", "enum", "",0 - Property: "RotationSpaceForLimitOnly", "bool", "",0 - Property: "RotationStiffnessX", "double", "",0 - Property: "RotationStiffnessY", "double", "",0 - Property: "RotationStiffnessZ", "double", "",0 - Property: "AxisLen", "double", "",10 - Property: "PreRotation", "Vector3D", "",-90,0,0 - Property: "PostRotation", "Vector3D", "",0,0,0 - Property: "RotationActive", "bool", "",1 - Property: "RotationMin", "Vector3D", "",0,0,0 - Property: "RotationMax", "Vector3D", "",0,0,0 - Property: "RotationMinX", "bool", "",0 - Property: "RotationMinY", "bool", "",0 - Property: "RotationMinZ", "bool", "",0 - Property: "RotationMaxX", "bool", "",0 - Property: "RotationMaxY", "bool", "",0 - Property: "RotationMaxZ", "bool", "",0 - Property: "InheritType", "enum", "",1 - Property: "ScalingActive", "bool", "",0 - Property: "ScalingMin", "Vector3D", "",1,1,1 - Property: "ScalingMax", "Vector3D", "",1,1,1 - Property: "ScalingMinX", "bool", "",0 - Property: "ScalingMinY", "bool", "",0 - Property: "ScalingMinZ", "bool", "",0 - Property: "ScalingMaxX", "bool", "",0 - Property: "ScalingMaxY", "bool", "",0 - Property: "ScalingMaxZ", "bool", "",0 - Property: "GeometricTranslation", "Vector3D", "",0,0,0 - Property: "GeometricRotation", "Vector3D", "",90,-0,0 - Property: "GeometricScaling", "Vector3D", "",3.59999990463257,3.59999990463257,3.59999990463257 - Property: "MinDampRangeX", "double", "",0 - Property: "MinDampRangeY", "double", "",0 - Property: "MinDampRangeZ", "double", "",0 - Property: "MaxDampRangeX", "double", "",0 - Property: "MaxDampRangeY", "double", "",0 - Property: "MaxDampRangeZ", "double", "",0 - Property: "MinDampStrengthX", "double", "",0 - Property: "MinDampStrengthY", "double", "",0 - Property: "MinDampStrengthZ", "double", "",0 - Property: "MaxDampStrengthX", "double", "",0 - Property: "MaxDampStrengthY", "double", "",0 - Property: "MaxDampStrengthZ", "double", "",0 - Property: "PreferedAngleX", "double", "",0 - Property: "PreferedAngleY", "double", "",0 - Property: "PreferedAngleZ", "double", "",0 - Property: "LookAtProperty", "object", "" - Property: "UpVectorProperty", "object", "" - Property: "Show", "bool", "",1 - Property: "NegativePercentShapeSupport", "bool", "",1 - Property: "DefaultAttributeIndex", "int", "",0 - Property: "Lcl Translation", "Lcl Translation", "A+",0,0,0 - Property: "Lcl Rotation", "Lcl Rotation", "A+",0,0,0 - Property: "Lcl Scaling", "Lcl Scaling", "A+",1,1,1 - Property: "Visibility", "Visibility", "A+",1 - Property: "Color", "ColorRGB", "N",0.83921568627451,0.894117647058824,0.6 - Property: "BBoxMin", "Vector3D", "N",0,0,0 - Property: "BBoxMax", "Vector3D", "N",0,0,0 - } - MultiLayer: 0 - MultiTake: 1 - Shading: T - Culling: "CullingOff" - Vertices: 10,1.57766021402495e-006,-1.01514160633087e-006,9.23879528045654,2.14576721191406e-006,3.82683372497559,7.07106781005859 - ,2.86102294921875e-006,7.07106637954712,3.82683420181274,2.86102294921875e-006,9.23879528045654,-4.37113897078234e-007 - ,2.86102294921875e-006,10,-3.82683515548706,2.86102294921875e-006,9.23879528045654,-7.07106781005859,2.86102294921875e-006 - ,7.07106637954712,-9.23879528045654,2.14576721191406e-006,3.82683420181274,-10,1.57766044139862e-006,4.94816390528285e-007 - ,-9.23879623413086,9.5367431640625e-007,-3.82683300971985,-7.07107019424438,4.76837158203125e-007,-7.07106685638428 - ,-3.82683563232422,0,-9.23879432678223,1.19248809937744e-007,0,-10,3.8268358707428,0,-9.23879432678223,7.07107019424438 - ,4.76837158203125e-007,-7.07106685638428,9.23879718780518,9.5367431640625e-007,-3.82683038711548 - PolygonVertexIndex: 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,-1 - Edges: 14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,15 - GeometryVersion: 124 - LayerElementNormal: 0 { - Version: 101 - Name: "" - MappingInformationType: "ByPolygonVertex" - ReferenceInformationType: "Direct" - Normals: 3.64384722414501e-015,1,-1.55395511569623e-007,3.64384680062854e-015,1,-1.55395497358768e-007,3.64384722414501e-015 - ,1,-1.55395511569623e-007,3.64384722414501e-015,1,-1.55395511569623e-007,3.64384722414501e-015,1,-1.55395511569623e-007 - ,3.64384680062854e-015,1,-1.55395497358768e-007,3.64384722414501e-015,1,-1.55395511569623e-007,3.64384722414501e-015 - ,1,-1.55395511569623e-007,3.64384722414501e-015,1,-1.55395511569623e-007,3.64384722414501e-015,1,-1.55395511569623e-007 - ,3.64384722414501e-015,1,-1.55395511569623e-007,3.64384722414501e-015,1,-1.55395511569623e-007,3.64384722414501e-015 - ,1,-1.55395511569623e-007,3.64384722414501e-015,1,-1.55395511569623e-007,3.64384722414501e-015,1,-1.55395511569623e-007 - ,3.64384722414501e-015,1,-1.55395511569623e-007 - } - LayerElementUV: 0 { - Version: 101 - Name: "UVChannel_1" - MappingInformationType: "ByPolygonVertex" - ReferenceInformationType: "IndexToDirect" - UV: 0.691341459751129,0.961939871311188,0.853553235530853,0.853553533554077,0.961939692497253,0.691341817378998,1 - ,0.5,0.961939692497253,0.308658242225647,0.853553295135498,0.146446526050568,0.691341638565063,0.038060188293457 - ,0.499999940395355,0,0.308658272027969,0.0380602180957794,0.146446645259857,0.146446585655212,0.0380602180957794 - ,0.308658242225647,0,0.499999970197678,0.0380602180957794,0.691341698169708,0.146446585655212,0.853553354740143 - ,0.308658242225647,0.961939811706543,0.499999970197678,1 - UVIndex: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 - } - LayerElementSmoothing: 0 { - Version: 102 - Name: "" - MappingInformationType: "ByPolygon" - ReferenceInformationType: "Direct" - Smoothing: 1 - } - Layer: 0 { - Version: 100 - LayerElement: { - Type: "LayerElementNormal" - TypedIndex: 0 - } - LayerElement: { - Type: "LayerElementUV" - TypedIndex: 0 - } - LayerElement: { - Type: "LayerElementSmoothing" - TypedIndex: 0 - } - } - NodeAttributeName: "Geometry::CFX_Circular_ncl1_1" - } - SceneInfo: "SceneInfo::GlobalInfo", "UserData" { - Type: "UserData" - Version: 100 - MetaData: { - Version: 100 - Title: "" - Subject: "" - Author: "" - Keywords: "" - Revision: "" - Comment: "" - } - Properties60: { - Property: "DocumentUrl", "KString", "", "C:\Documents and Settings\Jean\Bureau\UNITY3D\UNITY PROJECTS\CartoonEffects AssetStore\Assets\Cartoon FX\Mesh\Mesh_Circular.FBX" - - Property: "SrcDocumentUrl", "KString", "", "C:\Documents and Settings\Jean\Bureau\UNITY3D\UNITY PROJECTS\CartoonEffects AssetStore\Assets\Cartoon FX\Mesh\Mesh_Circular.FBX" - - Property: "Original", "Compound", "" - Property: "Original|ApplicationVendor", "KString", "", "Autodesk" - Property: "Original|ApplicationName", "KString", "", "3ds Max" - Property: "Original|ApplicationVersion", "KString", "", "2009.3" - Property: "Original|DateTime_GMT", "DateTime", "", "26/07/2012 14:09:17.218" - Property: "Original|FileName", "KString", "", "C:\Documents and Settings\Jean\Bureau\UNITY3D\UNITY PROJECTS\CartoonEffects AssetStore\Assets\Cartoon FX\Mesh\Mesh_Circular.FBX" - - Property: "LastSaved", "Compound", "" - Property: "LastSaved|ApplicationVendor", "KString", "", "Autodesk" - Property: "LastSaved|ApplicationName", "KString", "", "3ds Max" - Property: "LastSaved|ApplicationVersion", "KString", "", "2009.3" - Property: "LastSaved|DateTime_GMT", "DateTime", "", "26/07/2012 14:09:17.218" - } - } - GlobalSettings: { - Version: 1000 - Properties60: { - Property: "UpAxis", "int", "",1 - Property: "UpAxisSign", "int", "",1 - Property: "FrontAxis", "int", "",2 - Property: "FrontAxisSign", "int", "",1 - Property: "CoordAxis", "int", "",0 - Property: "CoordAxisSign", "int", "",1 - Property: "UnitScaleFactor", "double", "",0.1 - } - } -} - -; Object connections -;------------------------------------------------------------------ - -Connections: { - Connect: "OO", "Model::CFX_Circular", "Model::Scene" -} -;Takes and animation section -;---------------------------------------------------- - -Takes: { - Current: "Take 001" -} -;Version 5 settings -;------------------------------------------------------------------ - -Version5: { - AmbientRenderSettings: { - Version: 101 - AmbientLightColor: 0,0,0,1 - } - FogOptions: { - FlogEnable: 0 - FogMode: 0 - FogDensity: 0.002 - FogStart: 0.3 - FogEnd: 1000 - FogColor: 1,1,1,1 - } - Settings: { - FrameRate: "30" - TimeFormat: 1 - SnapOnFrames: 0 - ReferenceTimeIndex: -1 - TimeLineStartTime: 0 - TimeLineStopTime: 153953860000 - } - RendererSetting: { - DefaultCamera: "Producer Perspective" - DefaultViewingMode: 0 - } -} +; FBX 6.1.0 project file +; Copyright (C) 1997-2008 Autodesk Inc. and/or its licensors. +; All rights reserved. +; ---------------------------------------------------- + +FBXHeaderExtension: { + FBXHeaderVersion: 1003 + FBXVersion: 6100 + CreationTimeStamp: { + Version: 1000 + Year: 2012 + Month: 7 + Day: 26 + Hour: 16 + Minute: 9 + Second: 17 + Millisecond: 234 + } + Creator: "FBX SDK/FBX Plugins version 2009.3" + OtherFlags: { + FlagPLE: 0 + } +} +CreationTime: "2012-07-26 16:09:17:234" +Creator: "FBX SDK/FBX Plugins build 20080926" + +; Document Description +;------------------------------------------------------------------ + +Document: { + Name: "" +} + +; Document References +;------------------------------------------------------------------ + +References: { +} + +; Object definitions +;------------------------------------------------------------------ + +Definitions: { + Version: 100 + Count: 3 + ObjectType: "Model" { + Count: 1 + } + ObjectType: "SceneInfo" { + Count: 1 + } + ObjectType: "GlobalSettings" { + Count: 1 + } +} + +; Object properties +;------------------------------------------------------------------ + +Objects: { + Model: "Model::CFX_Circular", "Mesh" { + Version: 232 + Properties60: { + Property: "QuaternionInterpolate", "bool", "",0 + Property: "RotationOffset", "Vector3D", "",0,0,0 + Property: "RotationPivot", "Vector3D", "",0,0,0 + Property: "ScalingOffset", "Vector3D", "",0,0,0 + Property: "ScalingPivot", "Vector3D", "",0,0,0 + Property: "TranslationActive", "bool", "",0 + Property: "TranslationMin", "Vector3D", "",0,0,0 + Property: "TranslationMax", "Vector3D", "",0,0,0 + Property: "TranslationMinX", "bool", "",0 + Property: "TranslationMinY", "bool", "",0 + Property: "TranslationMinZ", "bool", "",0 + Property: "TranslationMaxX", "bool", "",0 + Property: "TranslationMaxY", "bool", "",0 + Property: "TranslationMaxZ", "bool", "",0 + Property: "RotationOrder", "enum", "",0 + Property: "RotationSpaceForLimitOnly", "bool", "",0 + Property: "RotationStiffnessX", "double", "",0 + Property: "RotationStiffnessY", "double", "",0 + Property: "RotationStiffnessZ", "double", "",0 + Property: "AxisLen", "double", "",10 + Property: "PreRotation", "Vector3D", "",-90,0,0 + Property: "PostRotation", "Vector3D", "",0,0,0 + Property: "RotationActive", "bool", "",1 + Property: "RotationMin", "Vector3D", "",0,0,0 + Property: "RotationMax", "Vector3D", "",0,0,0 + Property: "RotationMinX", "bool", "",0 + Property: "RotationMinY", "bool", "",0 + Property: "RotationMinZ", "bool", "",0 + Property: "RotationMaxX", "bool", "",0 + Property: "RotationMaxY", "bool", "",0 + Property: "RotationMaxZ", "bool", "",0 + Property: "InheritType", "enum", "",1 + Property: "ScalingActive", "bool", "",0 + Property: "ScalingMin", "Vector3D", "",1,1,1 + Property: "ScalingMax", "Vector3D", "",1,1,1 + Property: "ScalingMinX", "bool", "",0 + Property: "ScalingMinY", "bool", "",0 + Property: "ScalingMinZ", "bool", "",0 + Property: "ScalingMaxX", "bool", "",0 + Property: "ScalingMaxY", "bool", "",0 + Property: "ScalingMaxZ", "bool", "",0 + Property: "GeometricTranslation", "Vector3D", "",0,0,0 + Property: "GeometricRotation", "Vector3D", "",90,-0,0 + Property: "GeometricScaling", "Vector3D", "",3.59999990463257,3.59999990463257,3.59999990463257 + Property: "MinDampRangeX", "double", "",0 + Property: "MinDampRangeY", "double", "",0 + Property: "MinDampRangeZ", "double", "",0 + Property: "MaxDampRangeX", "double", "",0 + Property: "MaxDampRangeY", "double", "",0 + Property: "MaxDampRangeZ", "double", "",0 + Property: "MinDampStrengthX", "double", "",0 + Property: "MinDampStrengthY", "double", "",0 + Property: "MinDampStrengthZ", "double", "",0 + Property: "MaxDampStrengthX", "double", "",0 + Property: "MaxDampStrengthY", "double", "",0 + Property: "MaxDampStrengthZ", "double", "",0 + Property: "PreferedAngleX", "double", "",0 + Property: "PreferedAngleY", "double", "",0 + Property: "PreferedAngleZ", "double", "",0 + Property: "LookAtProperty", "object", "" + Property: "UpVectorProperty", "object", "" + Property: "Show", "bool", "",1 + Property: "NegativePercentShapeSupport", "bool", "",1 + Property: "DefaultAttributeIndex", "int", "",0 + Property: "Lcl Translation", "Lcl Translation", "A+",0,0,0 + Property: "Lcl Rotation", "Lcl Rotation", "A+",0,0,0 + Property: "Lcl Scaling", "Lcl Scaling", "A+",1,1,1 + Property: "Visibility", "Visibility", "A+",1 + Property: "Color", "ColorRGB", "N",0.83921568627451,0.894117647058824,0.6 + Property: "BBoxMin", "Vector3D", "N",0,0,0 + Property: "BBoxMax", "Vector3D", "N",0,0,0 + } + MultiLayer: 0 + MultiTake: 1 + Shading: T + Culling: "CullingOff" + Vertices: 10,1.57766021402495e-006,-1.01514160633087e-006,9.23879528045654,2.14576721191406e-006,3.82683372497559,7.07106781005859 + ,2.86102294921875e-006,7.07106637954712,3.82683420181274,2.86102294921875e-006,9.23879528045654,-4.37113897078234e-007 + ,2.86102294921875e-006,10,-3.82683515548706,2.86102294921875e-006,9.23879528045654,-7.07106781005859,2.86102294921875e-006 + ,7.07106637954712,-9.23879528045654,2.14576721191406e-006,3.82683420181274,-10,1.57766044139862e-006,4.94816390528285e-007 + ,-9.23879623413086,9.5367431640625e-007,-3.82683300971985,-7.07107019424438,4.76837158203125e-007,-7.07106685638428 + ,-3.82683563232422,0,-9.23879432678223,1.19248809937744e-007,0,-10,3.8268358707428,0,-9.23879432678223,7.07107019424438 + ,4.76837158203125e-007,-7.07106685638428,9.23879718780518,9.5367431640625e-007,-3.82683038711548 + PolygonVertexIndex: 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,-1 + Edges: 14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,15 + GeometryVersion: 124 + LayerElementNormal: 0 { + Version: 101 + Name: "" + MappingInformationType: "ByPolygonVertex" + ReferenceInformationType: "Direct" + Normals: 3.64384722414501e-015,1,-1.55395511569623e-007,3.64384680062854e-015,1,-1.55395497358768e-007,3.64384722414501e-015 + ,1,-1.55395511569623e-007,3.64384722414501e-015,1,-1.55395511569623e-007,3.64384722414501e-015,1,-1.55395511569623e-007 + ,3.64384680062854e-015,1,-1.55395497358768e-007,3.64384722414501e-015,1,-1.55395511569623e-007,3.64384722414501e-015 + ,1,-1.55395511569623e-007,3.64384722414501e-015,1,-1.55395511569623e-007,3.64384722414501e-015,1,-1.55395511569623e-007 + ,3.64384722414501e-015,1,-1.55395511569623e-007,3.64384722414501e-015,1,-1.55395511569623e-007,3.64384722414501e-015 + ,1,-1.55395511569623e-007,3.64384722414501e-015,1,-1.55395511569623e-007,3.64384722414501e-015,1,-1.55395511569623e-007 + ,3.64384722414501e-015,1,-1.55395511569623e-007 + } + LayerElementUV: 0 { + Version: 101 + Name: "UVChannel_1" + MappingInformationType: "ByPolygonVertex" + ReferenceInformationType: "IndexToDirect" + UV: 0.691341459751129,0.961939871311188,0.853553235530853,0.853553533554077,0.961939692497253,0.691341817378998,1 + ,0.5,0.961939692497253,0.308658242225647,0.853553295135498,0.146446526050568,0.691341638565063,0.038060188293457 + ,0.499999940395355,0,0.308658272027969,0.0380602180957794,0.146446645259857,0.146446585655212,0.0380602180957794 + ,0.308658242225647,0,0.499999970197678,0.0380602180957794,0.691341698169708,0.146446585655212,0.853553354740143 + ,0.308658242225647,0.961939811706543,0.499999970197678,1 + UVIndex: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + } + LayerElementSmoothing: 0 { + Version: 102 + Name: "" + MappingInformationType: "ByPolygon" + ReferenceInformationType: "Direct" + Smoothing: 1 + } + Layer: 0 { + Version: 100 + LayerElement: { + Type: "LayerElementNormal" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementUV" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementSmoothing" + TypedIndex: 0 + } + } + NodeAttributeName: "Geometry::CFX_Circular_ncl1_1" + } + SceneInfo: "SceneInfo::GlobalInfo", "UserData" { + Type: "UserData" + Version: 100 + MetaData: { + Version: 100 + Title: "" + Subject: "" + Author: "" + Keywords: "" + Revision: "" + Comment: "" + } + Properties60: { + Property: "DocumentUrl", "KString", "", "C:\Documents and Settings\Jean\Bureau\UNITY3D\UNITY PROJECTS\CartoonEffects AssetStore\Assets\Cartoon FX\Mesh\Mesh_Circular.FBX" + + Property: "SrcDocumentUrl", "KString", "", "C:\Documents and Settings\Jean\Bureau\UNITY3D\UNITY PROJECTS\CartoonEffects AssetStore\Assets\Cartoon FX\Mesh\Mesh_Circular.FBX" + + Property: "Original", "Compound", "" + Property: "Original|ApplicationVendor", "KString", "", "Autodesk" + Property: "Original|ApplicationName", "KString", "", "3ds Max" + Property: "Original|ApplicationVersion", "KString", "", "2009.3" + Property: "Original|DateTime_GMT", "DateTime", "", "26/07/2012 14:09:17.218" + Property: "Original|FileName", "KString", "", "C:\Documents and Settings\Jean\Bureau\UNITY3D\UNITY PROJECTS\CartoonEffects AssetStore\Assets\Cartoon FX\Mesh\Mesh_Circular.FBX" + + Property: "LastSaved", "Compound", "" + Property: "LastSaved|ApplicationVendor", "KString", "", "Autodesk" + Property: "LastSaved|ApplicationName", "KString", "", "3ds Max" + Property: "LastSaved|ApplicationVersion", "KString", "", "2009.3" + Property: "LastSaved|DateTime_GMT", "DateTime", "", "26/07/2012 14:09:17.218" + } + } + GlobalSettings: { + Version: 1000 + Properties60: { + Property: "UpAxis", "int", "",1 + Property: "UpAxisSign", "int", "",1 + Property: "FrontAxis", "int", "",2 + Property: "FrontAxisSign", "int", "",1 + Property: "CoordAxis", "int", "",0 + Property: "CoordAxisSign", "int", "",1 + Property: "UnitScaleFactor", "double", "",0.1 + } + } +} + +; Object connections +;------------------------------------------------------------------ + +Connections: { + Connect: "OO", "Model::CFX_Circular", "Model::Scene" +} +;Takes and animation section +;---------------------------------------------------- + +Takes: { + Current: "Take 001" +} +;Version 5 settings +;------------------------------------------------------------------ + +Version5: { + AmbientRenderSettings: { + Version: 101 + AmbientLightColor: 0,0,0,1 + } + FogOptions: { + FlogEnable: 0 + FogMode: 0 + FogDensity: 0.002 + FogStart: 0.3 + FogEnd: 1000 + FogColor: 1,1,1,1 + } + Settings: { + FrameRate: "30" + TimeFormat: 1 + SnapOnFrames: 0 + ReferenceTimeIndex: -1 + TimeLineStartTime: 0 + TimeLineStopTime: 153953860000 + } + RendererSetting: { + DefaultCamera: "Producer Perspective" + DefaultViewingMode: 0 + } +} diff --git a/Assets/JMO Assets/Cartoon FX (legacy)/Mesh/CFX_Mesh_Circular2.FBX b/Assets/JMO Assets/Cartoon FX (legacy)/Mesh/CFX_Mesh_Circular2.FBX index 7314ee8..9fcc8d1 100644 --- a/Assets/JMO Assets/Cartoon FX (legacy)/Mesh/CFX_Mesh_Circular2.FBX +++ b/Assets/JMO Assets/Cartoon FX (legacy)/Mesh/CFX_Mesh_Circular2.FBX @@ -1,344 +1,344 @@ -; FBX 6.1.0 project file -; Copyright (C) 1997-2008 Autodesk Inc. and/or its licensors. -; All rights reserved. -; ---------------------------------------------------- - -FBXHeaderExtension: { - FBXHeaderVersion: 1003 - FBXVersion: 6100 - CreationTimeStamp: { - Version: 1000 - Year: 2012 - Month: 8 - Day: 8 - Hour: 16 - Minute: 8 - Second: 48 - Millisecond: 219 - } - Creator: "FBX SDK/FBX Plugins version 2009.3" - OtherFlags: { - FlagPLE: 0 - } -} -CreationTime: "2012-08-08 16:08:48:219" -Creator: "FBX SDK/FBX Plugins build 20080926" - -; Document Description -;------------------------------------------------------------------ - -Document: { - Name: "" -} - -; Document References -;------------------------------------------------------------------ - -References: { -} - -; Object definitions -;------------------------------------------------------------------ - -Definitions: { - Version: 100 - Count: 3 - ObjectType: "Model" { - Count: 1 - } - ObjectType: "SceneInfo" { - Count: 1 - } - ObjectType: "GlobalSettings" { - Count: 1 - } -} - -; Object properties -;------------------------------------------------------------------ - -Objects: { - Model: "Model::CFX_Circular2", "Mesh" { - Version: 232 - Properties60: { - Property: "QuaternionInterpolate", "bool", "",0 - Property: "RotationOffset", "Vector3D", "",0,0,0 - Property: "RotationPivot", "Vector3D", "",0,0,0 - Property: "ScalingOffset", "Vector3D", "",0,0,0 - Property: "ScalingPivot", "Vector3D", "",0,0,0 - Property: "TranslationActive", "bool", "",0 - Property: "TranslationMin", "Vector3D", "",0,0,0 - Property: "TranslationMax", "Vector3D", "",0,0,0 - Property: "TranslationMinX", "bool", "",0 - Property: "TranslationMinY", "bool", "",0 - Property: "TranslationMinZ", "bool", "",0 - Property: "TranslationMaxX", "bool", "",0 - Property: "TranslationMaxY", "bool", "",0 - Property: "TranslationMaxZ", "bool", "",0 - Property: "RotationOrder", "enum", "",0 - Property: "RotationSpaceForLimitOnly", "bool", "",0 - Property: "RotationStiffnessX", "double", "",0 - Property: "RotationStiffnessY", "double", "",0 - Property: "RotationStiffnessZ", "double", "",0 - Property: "AxisLen", "double", "",10 - Property: "PreRotation", "Vector3D", "",-90,0,0 - Property: "PostRotation", "Vector3D", "",0,0,0 - Property: "RotationActive", "bool", "",1 - Property: "RotationMin", "Vector3D", "",0,0,0 - Property: "RotationMax", "Vector3D", "",0,0,0 - Property: "RotationMinX", "bool", "",0 - Property: "RotationMinY", "bool", "",0 - Property: "RotationMinZ", "bool", "",0 - Property: "RotationMaxX", "bool", "",0 - Property: "RotationMaxY", "bool", "",0 - Property: "RotationMaxZ", "bool", "",0 - Property: "InheritType", "enum", "",1 - Property: "ScalingActive", "bool", "",0 - Property: "ScalingMin", "Vector3D", "",1,1,1 - Property: "ScalingMax", "Vector3D", "",1,1,1 - Property: "ScalingMinX", "bool", "",0 - Property: "ScalingMinY", "bool", "",0 - Property: "ScalingMinZ", "bool", "",0 - Property: "ScalingMaxX", "bool", "",0 - Property: "ScalingMaxY", "bool", "",0 - Property: "ScalingMaxZ", "bool", "",0 - Property: "GeometricTranslation", "Vector3D", "",0,0,0 - Property: "GeometricRotation", "Vector3D", "",90,-0,0 - Property: "GeometricScaling", "Vector3D", "",1,1,1 - Property: "MinDampRangeX", "double", "",0 - Property: "MinDampRangeY", "double", "",0 - Property: "MinDampRangeZ", "double", "",0 - Property: "MaxDampRangeX", "double", "",0 - Property: "MaxDampRangeY", "double", "",0 - Property: "MaxDampRangeZ", "double", "",0 - Property: "MinDampStrengthX", "double", "",0 - Property: "MinDampStrengthY", "double", "",0 - Property: "MinDampStrengthZ", "double", "",0 - Property: "MaxDampStrengthX", "double", "",0 - Property: "MaxDampStrengthY", "double", "",0 - Property: "MaxDampStrengthZ", "double", "",0 - Property: "PreferedAngleX", "double", "",0 - Property: "PreferedAngleY", "double", "",0 - Property: "PreferedAngleZ", "double", "",0 - Property: "LookAtProperty", "object", "" - Property: "UpVectorProperty", "object", "" - Property: "Show", "bool", "",1 - Property: "NegativePercentShapeSupport", "bool", "",1 - Property: "DefaultAttributeIndex", "int", "",0 - Property: "Lcl Translation", "Lcl Translation", "A+",0,0,0 - Property: "Lcl Rotation", "Lcl Rotation", "A+",0,0,0 - Property: "Lcl Scaling", "Lcl Scaling", "A+",1,1,1 - Property: "Visibility", "Visibility", "A+",1 - Property: "Color", "ColorRGB", "N",0.109803921568627,0.349019607843137,0.694117647058824 - Property: "BBoxMin", "Vector3D", "N",0,0,0 - Property: "BBoxMax", "Vector3D", "N",0,0,0 - } - MultiLayer: 0 - MultiTake: 1 - Shading: T - Culling: "CullingOff" - Vertices: 60,0,0,58.8471183776855,11.7054195404053,0,55.4327735900879,22.9610061645508,0,49.8881759643555,33.3342132568359,0 - ,42.4264068603516,42.4264068603516,0,33.3342132568359,49.8881797790527,0,22.9610061645508,55.4327735900879,0,11.7054214477539 - ,58.8471145629883,0,4.52987387689063e-006,60,0,-11.7054128646851,58.8471183776855,0,-22.9609966278076,55.4327735900879 - ,0,-33.3342094421387,49.8881797790527,0,-42.4264068603516,42.4264068603516,0,-49.8881797790527,33.3342094421387,0 - ,-55.4327774047852,22.9609966278076,0,-58.8471183776855,11.7054052352905,0,-60,-1.95504817384062e-005,0,-58.847110748291 - ,-11.7054433822632,0,-55.4327621459961,-22.9610328674316,0,-49.8881568908691,-33.3342437744141,0,-42.4263801574707 - ,-42.4264335632324,0,-33.3341789245605,-49.8882026672363,0,-22.9609603881836,-55.432788848877,0,-11.7053670883179 - ,-58.8471260070801,0,5.79359511903021e-005,-60,0,11.7054805755615,-58.8471031188965,0,22.9610691070557,-55.432746887207 - ,0,33.3342742919922,-49.8881378173828,0,42.4264602661133,-42.4263534545898,0,49.8882217407227,-33.3341445922852,0 - ,55.432804107666,-22.9609260559082,0,58.8471336364746,-11.7053298950195,0,60,0,5,58.8471183776855,11.7054195404053 - ,5,55.4327735900879,22.9610061645508,5,49.8881759643555,33.3342132568359,5,42.4264068603516,42.4264068603516,5,33.3342132568359 - ,49.8881797790527,5,22.9610061645508,55.4327735900879,5,11.7054214477539,58.8471145629883,5,4.52987387689063e-006 - ,60,5,-11.7054128646851,58.8471183776855,5,-22.9609966278076,55.4327735900879,5,-33.3342094421387,49.8881797790527 - ,5,-42.4264068603516,42.4264068603516,5,-49.8881797790527,33.3342094421387,5,-55.4327774047852,22.9609966278076,5 - ,-58.8471183776855,11.7054052352905,5,-60,-1.95504817384062e-005,5,-58.847110748291,-11.7054433822632,5,-55.4327621459961 - ,-22.9610328674316,5,-49.8881568908691,-33.3342437744141,5,-42.4263801574707,-42.4264335632324,5,-33.3341789245605 - ,-49.8882026672363,5,-22.9609603881836,-55.432788848877,5,-11.7053670883179,-58.8471260070801,5,5.79359511903021e-005 - ,-60,5,11.7054805755615,-58.8471031188965,5,22.9610691070557,-55.432746887207,5,33.3342742919922,-49.8881378173828 - ,5,42.4264602661133,-42.4263534545898,5,49.8882217407227,-33.3341445922852,5,55.432804107666,-22.9609260559082,5,58.8471336364746 - ,-11.7053298950195,5 - PolygonVertexIndex: 0,1,33,-33,1,2,34,-34,2,3,35,-35,3,4,36,-36,4,5,37,-37,5,6,38,-38,6,7,39,-39,7,8,40,-40,8,9,41,-41,9,10,42,-42,10 - ,11,43,-43,11,12,44,-44,12,13,45,-45,13,14,46,-46,14,15,47,-47,15,16,48,-48,16,17,49,-49,17,18,50,-50,18,19,51,-51 - ,19,20,52,-52,20,21,53,-53,21,22,54,-54,22,23,55,-55,23,24,56,-56,24,25,57,-57,25,26,58,-58,26,27,59,-59,27,28,60 - ,-60,28,29,61,-61,29,30,62,-62,30,31,63,-63,31,0,32,-64 - Edges: 0,1,2,3,4,5,6,8,9,10,12,13,14,16,17,18,20,21,22,24,25,26,28,29,30,32,33,34,36,37,38,40,41,42,44,45,46,48,49,50,52 - ,53,54,56,57,58,60,61,62,64,65,66,68,69,70,72,73,74,76,77,78,80,81,82,84,85,86,88,89,90,92,93,94,96,97,98,100,101 - ,102,104,105,106,108,109,110,112,113,114,116,117,118,120,121,122,124,126 - GeometryVersion: 124 - LayerElementNormal: 0 { - Version: 101 - Name: "" - MappingInformationType: "ByPolygonVertex" - ReferenceInformationType: "Direct" - Normals: 1,2.66903668943996e-007,0,0.980785310268402,0.195090264081955,0,0.980785310268402,0.195090264081955,0,1,2.66903668943996e-007 - ,0,0.980785310268402,0.195090264081955,0,0.923879504203796,0.382683545351028,0,0.923879504203796,0.382683545351028 - ,0,0.980785310268402,0.195090264081955,0,0.923879504203796,0.382683545351028,0,0.831469595432281,0.555570244789124 - ,0,0.831469595432281,0.555570244789124,0,0.923879504203796,0.382683545351028,0,0.831469595432281,0.555570244789124 - ,0,0.70710688829422,0.707106709480286,0,0.70710688829422,0.707106709480286,0,0.831469595432281,0.555570244789124 - ,0,0.70710688829422,0.707106709480286,0,0.555570244789124,0.831469595432281,0,0.555570244789124,0.831469595432281 - ,0,0.70710688829422,0.707106709480286,0,0.555570244789124,0.831469595432281,0,0.382683277130127,0.923879623413086 - ,0,0.382683277130127,0.923879623413086,0,0.555570244789124,0.831469595432281,0,0.382683277130127,0.923879623413086 - ,0,0.195090293884277,0.980785310268402,0,0.195090293884277,0.980785310268402,0,0.382683277130127,0.923879623413086 - ,0,0.195090293884277,0.980785310268402,0,1.66814800195425e-007,1,0,1.66814800195425e-007,1,0,0.195090293884277 - ,0.980785310268402,0,1.66814800195425e-007,1,0,-0.195090278983116,0.980785310268402,0,-0.195090278983116,0.980785310268402 - ,0,1.66814800195425e-007,1,0,-0.195090278983116,0.980785310268402,0,-0.382683306932449,0.923879623413086,0,-0.382683306932449 - ,0.923879623413086,0,-0.195090278983116,0.980785310268402,0,-0.382683306932449,0.923879623413086,0,-0.555570185184479 - ,0.831469714641571,0,-0.555570185184479,0.831469714641571,0,-0.382683306932449,0.923879623413086,0,-0.555570185184479 - ,0.831469714641571,0,-0.70710688829422,0.70710676908493,0,-0.70710688829422,0.70710676908493,0,-0.555570185184479 - ,0.831469714641571,0,-0.70710688829422,0.70710676908493,0,-0.831469655036926,0.555570244789124,0,-0.831469655036926 - ,0.555570244789124,0,-0.70710688829422,0.70710676908493,0,-0.831469655036926,0.555570244789124,0,-0.923879623413086 - ,0.382683277130127,0,-0.923879623413086,0.382683277130127,0,-0.831469655036926,0.555570244789124,0,-0.923879623413086 - ,0.382683277130127,0,-0.980785310268402,0.195090040564537,0,-0.980785310268402,0.195090040564537,0,-0.923879623413086 - ,0.382683277130127,0,-0.980785310268402,0.195090040564537,0,-1,-3.3362960039085e-007,0,-1,-3.3362960039085e-007 - ,0,-0.980785310268402,0.195090040564537,0,-1,-3.3362960039085e-007,0,-0.980785250663757,-0.19509069621563,0,-0.980785250663757 - ,-0.19509069621563,0,-1,-3.3362960039085e-007,0,-0.980785250663757,-0.19509069621563,0,-0.923879325389862,-0.382683843374252 - ,0,-0.923879325389862,-0.382683843374252,0,-0.980785250663757,-0.19509069621563,0,-0.923879325389862,-0.382683843374252 - ,0,-0.831469357013702,-0.555570781230927,0,-0.831469357013702,-0.555570781230927,0,-0.923879325389862,-0.382683843374252 - ,0,-0.831469357013702,-0.555570781230927,0,-0.707106411457062,-0.707107186317444,0,-0.707106411457062,-0.707107186317444 - ,0,-0.831469357013702,-0.555570781230927,0,-0.707106411457062,-0.707107186317444,0,-0.555569529533386,-0.831470131874084 - ,0,-0.555569529533386,-0.831470131874084,0,-0.707106411457062,-0.707107186317444,0,-0.555569529533386,-0.831470131874084 - ,0,-0.382682532072067,-0.92387992143631,0,-0.382682532072067,-0.92387992143631,0,-0.555569529533386,-0.831470131874084 - ,0,-0.382682532072067,-0.92387992143631,0,-0.195089533925056,-0.980785489082336,0,-0.195089533925056,-0.980785489082336 - ,0,-0.382682532072067,-0.92387992143631,0,-0.195089533925056,-0.980785489082336,0,9.86590293905465e-007,-1,0 - ,9.86590293905465e-007,-1,0,-0.195089533925056,-0.980785489082336,0,9.86590293905465e-007,-1,0,0.1950913220644 - ,-0.980785071849823,0,0.1950913220644,-0.980785071849823,0,9.86590293905465e-007,-1,0,0.1950913220644,-0.980785071849823 - ,0,0.382684379816055,-0.923879206180573,0,0.382684379816055,-0.923879206180573,0,0.1950913220644,-0.980785071849823 - ,0,0.382684379816055,-0.923879206180573,0,0.555571258068085,-0.831468880176544,0,0.555571258068085,-0.831468880176544 - ,0,0.382684379816055,-0.923879206180573,0,0.555571258068085,-0.831468880176544,0,0.707107782363892,-0.707105815410614 - ,0,0.707107782363892,-0.707105815410614,0,0.555571258068085,-0.831468880176544,0,0.707107782363892,-0.707105815410614 - ,0,0.831470429897308,-0.555569112300873,0,0.831470429897308,-0.555569112300873,0,0.707107782363892,-0.707105815410614 - ,0,0.831470429897308,-0.555569112300873,0,0.923880100250244,-0.382682114839554,0,0.923880100250244,-0.382682114839554 - ,0,0.831470429897308,-0.555569112300873,0,0.923880100250244,-0.382682114839554,0,0.980785548686981,-0.195089265704155 - ,0,0.980785548686981,-0.195089265704155,0,0.923880100250244,-0.382682114839554,0,0.980785548686981,-0.195089265704155 - ,0,1,2.66903668943996e-007,0,1,2.66903668943996e-007,0,0.980785548686981,-0.195089265704155,0 - } - LayerElementUV: 0 { - Version: 101 - Name: "UVChannel_1" - MappingInformationType: "ByPolygonVertex" - ReferenceInformationType: "IndexToDirect" - UV: 0.75,0,0.78125,0,0.8125,0,0.84375,0,0.875,0,0.90625,0,0.9375,0,0.96875,0,1,0,0.0312500111758709,0,0.0624999850988388 - ,0,0.09375,0,0.125000014901161,0,0.156250014901161,0,0.187500029802322,0,0.218750044703484,0,0.250000059604645 - ,0,0.281250059604645,0,0.312500089406967,0,0.34375011920929,0,0.37500011920929,0,0.40625011920929,0,0.437500149011612 - ,0,0.468750149011612,0,0.500000178813934,0,0.531250178813934,0,0.562500178813934,0,0.593750178813934,0,0.625000238418579 - ,0,0.656250238418579,0,0.687500238418579,0,0.718750238418579,0,0.75,1,0.78125,1,0.8125,1,0.84375,1,0.875,1,0.90625 - ,1,0.9375,1,0.96875,1,1,1,0.0312500111758709,1,0.0624999850988388,1,0.09375,1,0.125000014901161,1,0.156250014901161 - ,1,0.187500029802322,1,0.218750044703484,1,0.250000059604645,1,0.281250059604645,1,0.312500089406967,1,0.34375011920929 - ,1,0.37500011920929,1,0.40625011920929,1,0.437500149011612,1,0.468750149011612,1,0.500000178813934,1,0.531250178813934 - ,1,0.562500178813934,1,0.593750178813934,1,0.625000238418579,1,0.656250238418579,1,0.687500238418579,1,0.718750238418579 - ,1,1.03125,0,1.03125,1 - UVIndex: 0,1,33,32,1,2,34,33,2,3,35,34,3,4,36,35,4,5,37,36,5,6,38,37,6,7,39,38,7,8,40,39,8,64,65,40,9,10,42,41,10,11,43 - ,42,11,12,44,43,12,13,45,44,13,14,46,45,14,15,47,46,15,16,48,47,16,17,49,48,17,18,50,49,18,19,51,50,19,20,52 - ,51,20,21,53,52,21,22,54,53,22,23,55,54,23,24,56,55,24,25,57,56,25,26,58,57,26,27,59,58,27,28,60,59,28,29,61 - ,60,29,30,62,61,30,31,63,62,31,0,32,63 - } - LayerElementSmoothing: 0 { - Version: 102 - Name: "" - MappingInformationType: "ByPolygon" - ReferenceInformationType: "Direct" - Smoothing: 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 - } - Layer: 0 { - Version: 100 - LayerElement: { - Type: "LayerElementNormal" - TypedIndex: 0 - } - LayerElement: { - Type: "LayerElementUV" - TypedIndex: 0 - } - LayerElement: { - Type: "LayerElementSmoothing" - TypedIndex: 0 - } - } - NodeAttributeName: "Geometry::CFX_Circular2_ncl1_1" - } - SceneInfo: "SceneInfo::GlobalInfo", "UserData" { - Type: "UserData" - Version: 100 - MetaData: { - Version: 100 - Title: "" - Subject: "" - Author: "" - Keywords: "" - Revision: "" - Comment: "" - } - Properties60: { - Property: "DocumentUrl", "KString", "", "C:\Documents and Settings\Jean\Bureau\UNITY3D\UNITY PROJECTS\CARTOON EFFECT PACKS\CartoonEffects 2 AssetStore\Assets\Cartoon FX\Mesh\CFX_Mesh_Circular2.FBX" - - Property: "SrcDocumentUrl", "KString", "", "C:\Documents and Settings\Jean\Bureau\UNITY3D\UNITY PROJECTS\CARTOON EFFECT PACKS\CartoonEffects 2 AssetStore\Assets\Cartoon FX\Mesh\CFX_Mesh_Circular2.FBX" - - Property: "Original", "Compound", "" - Property: "Original|ApplicationVendor", "KString", "", "Autodesk" - Property: "Original|ApplicationName", "KString", "", "3ds Max" - Property: "Original|ApplicationVersion", "KString", "", "2009.3" - Property: "Original|DateTime_GMT", "DateTime", "", "08/08/2012 14:08:48.203" - Property: "Original|FileName", "KString", "", "C:\Documents and Settings\Jean\Bureau\UNITY3D\UNITY PROJECTS\CARTOON EFFECT PACKS\CartoonEffects 2 AssetStore\Assets\Cartoon FX\Mesh\CFX_Mesh_Circular2.FBX" - - Property: "LastSaved", "Compound", "" - Property: "LastSaved|ApplicationVendor", "KString", "", "Autodesk" - Property: "LastSaved|ApplicationName", "KString", "", "3ds Max" - Property: "LastSaved|ApplicationVersion", "KString", "", "2009.3" - Property: "LastSaved|DateTime_GMT", "DateTime", "", "08/08/2012 14:08:48.203" - } - } - GlobalSettings: { - Version: 1000 - Properties60: { - Property: "UpAxis", "int", "",1 - Property: "UpAxisSign", "int", "",1 - Property: "FrontAxis", "int", "",2 - Property: "FrontAxisSign", "int", "",1 - Property: "CoordAxis", "int", "",0 - Property: "CoordAxisSign", "int", "",1 - Property: "UnitScaleFactor", "double", "",0.1 - } - } -} - -; Object connections -;------------------------------------------------------------------ - -Connections: { - Connect: "OO", "Model::CFX_Circular2", "Model::Scene" -} -;Takes and animation section -;---------------------------------------------------- - -Takes: { - Current: "Take 001" -} -;Version 5 settings -;------------------------------------------------------------------ - -Version5: { - AmbientRenderSettings: { - Version: 101 - AmbientLightColor: 0,0,0,1 - } - FogOptions: { - FlogEnable: 0 - FogMode: 0 - FogDensity: 0.002 - FogStart: 0.3 - FogEnd: 1000 - FogColor: 1,1,1,1 - } - Settings: { - FrameRate: "30" - TimeFormat: 1 - SnapOnFrames: 0 - ReferenceTimeIndex: -1 - TimeLineStartTime: 0 - TimeLineStopTime: 153953860000 - } - RendererSetting: { - DefaultCamera: "Producer Perspective" - DefaultViewingMode: 0 - } -} +; FBX 6.1.0 project file +; Copyright (C) 1997-2008 Autodesk Inc. and/or its licensors. +; All rights reserved. +; ---------------------------------------------------- + +FBXHeaderExtension: { + FBXHeaderVersion: 1003 + FBXVersion: 6100 + CreationTimeStamp: { + Version: 1000 + Year: 2012 + Month: 8 + Day: 8 + Hour: 16 + Minute: 8 + Second: 48 + Millisecond: 219 + } + Creator: "FBX SDK/FBX Plugins version 2009.3" + OtherFlags: { + FlagPLE: 0 + } +} +CreationTime: "2012-08-08 16:08:48:219" +Creator: "FBX SDK/FBX Plugins build 20080926" + +; Document Description +;------------------------------------------------------------------ + +Document: { + Name: "" +} + +; Document References +;------------------------------------------------------------------ + +References: { +} + +; Object definitions +;------------------------------------------------------------------ + +Definitions: { + Version: 100 + Count: 3 + ObjectType: "Model" { + Count: 1 + } + ObjectType: "SceneInfo" { + Count: 1 + } + ObjectType: "GlobalSettings" { + Count: 1 + } +} + +; Object properties +;------------------------------------------------------------------ + +Objects: { + Model: "Model::CFX_Circular2", "Mesh" { + Version: 232 + Properties60: { + Property: "QuaternionInterpolate", "bool", "",0 + Property: "RotationOffset", "Vector3D", "",0,0,0 + Property: "RotationPivot", "Vector3D", "",0,0,0 + Property: "ScalingOffset", "Vector3D", "",0,0,0 + Property: "ScalingPivot", "Vector3D", "",0,0,0 + Property: "TranslationActive", "bool", "",0 + Property: "TranslationMin", "Vector3D", "",0,0,0 + Property: "TranslationMax", "Vector3D", "",0,0,0 + Property: "TranslationMinX", "bool", "",0 + Property: "TranslationMinY", "bool", "",0 + Property: "TranslationMinZ", "bool", "",0 + Property: "TranslationMaxX", "bool", "",0 + Property: "TranslationMaxY", "bool", "",0 + Property: "TranslationMaxZ", "bool", "",0 + Property: "RotationOrder", "enum", "",0 + Property: "RotationSpaceForLimitOnly", "bool", "",0 + Property: "RotationStiffnessX", "double", "",0 + Property: "RotationStiffnessY", "double", "",0 + Property: "RotationStiffnessZ", "double", "",0 + Property: "AxisLen", "double", "",10 + Property: "PreRotation", "Vector3D", "",-90,0,0 + Property: "PostRotation", "Vector3D", "",0,0,0 + Property: "RotationActive", "bool", "",1 + Property: "RotationMin", "Vector3D", "",0,0,0 + Property: "RotationMax", "Vector3D", "",0,0,0 + Property: "RotationMinX", "bool", "",0 + Property: "RotationMinY", "bool", "",0 + Property: "RotationMinZ", "bool", "",0 + Property: "RotationMaxX", "bool", "",0 + Property: "RotationMaxY", "bool", "",0 + Property: "RotationMaxZ", "bool", "",0 + Property: "InheritType", "enum", "",1 + Property: "ScalingActive", "bool", "",0 + Property: "ScalingMin", "Vector3D", "",1,1,1 + Property: "ScalingMax", "Vector3D", "",1,1,1 + Property: "ScalingMinX", "bool", "",0 + Property: "ScalingMinY", "bool", "",0 + Property: "ScalingMinZ", "bool", "",0 + Property: "ScalingMaxX", "bool", "",0 + Property: "ScalingMaxY", "bool", "",0 + Property: "ScalingMaxZ", "bool", "",0 + Property: "GeometricTranslation", "Vector3D", "",0,0,0 + Property: "GeometricRotation", "Vector3D", "",90,-0,0 + Property: "GeometricScaling", "Vector3D", "",1,1,1 + Property: "MinDampRangeX", "double", "",0 + Property: "MinDampRangeY", "double", "",0 + Property: "MinDampRangeZ", "double", "",0 + Property: "MaxDampRangeX", "double", "",0 + Property: "MaxDampRangeY", "double", "",0 + Property: "MaxDampRangeZ", "double", "",0 + Property: "MinDampStrengthX", "double", "",0 + Property: "MinDampStrengthY", "double", "",0 + Property: "MinDampStrengthZ", "double", "",0 + Property: "MaxDampStrengthX", "double", "",0 + Property: "MaxDampStrengthY", "double", "",0 + Property: "MaxDampStrengthZ", "double", "",0 + Property: "PreferedAngleX", "double", "",0 + Property: "PreferedAngleY", "double", "",0 + Property: "PreferedAngleZ", "double", "",0 + Property: "LookAtProperty", "object", "" + Property: "UpVectorProperty", "object", "" + Property: "Show", "bool", "",1 + Property: "NegativePercentShapeSupport", "bool", "",1 + Property: "DefaultAttributeIndex", "int", "",0 + Property: "Lcl Translation", "Lcl Translation", "A+",0,0,0 + Property: "Lcl Rotation", "Lcl Rotation", "A+",0,0,0 + Property: "Lcl Scaling", "Lcl Scaling", "A+",1,1,1 + Property: "Visibility", "Visibility", "A+",1 + Property: "Color", "ColorRGB", "N",0.109803921568627,0.349019607843137,0.694117647058824 + Property: "BBoxMin", "Vector3D", "N",0,0,0 + Property: "BBoxMax", "Vector3D", "N",0,0,0 + } + MultiLayer: 0 + MultiTake: 1 + Shading: T + Culling: "CullingOff" + Vertices: 60,0,0,58.8471183776855,11.7054195404053,0,55.4327735900879,22.9610061645508,0,49.8881759643555,33.3342132568359,0 + ,42.4264068603516,42.4264068603516,0,33.3342132568359,49.8881797790527,0,22.9610061645508,55.4327735900879,0,11.7054214477539 + ,58.8471145629883,0,4.52987387689063e-006,60,0,-11.7054128646851,58.8471183776855,0,-22.9609966278076,55.4327735900879 + ,0,-33.3342094421387,49.8881797790527,0,-42.4264068603516,42.4264068603516,0,-49.8881797790527,33.3342094421387,0 + ,-55.4327774047852,22.9609966278076,0,-58.8471183776855,11.7054052352905,0,-60,-1.95504817384062e-005,0,-58.847110748291 + ,-11.7054433822632,0,-55.4327621459961,-22.9610328674316,0,-49.8881568908691,-33.3342437744141,0,-42.4263801574707 + ,-42.4264335632324,0,-33.3341789245605,-49.8882026672363,0,-22.9609603881836,-55.432788848877,0,-11.7053670883179 + ,-58.8471260070801,0,5.79359511903021e-005,-60,0,11.7054805755615,-58.8471031188965,0,22.9610691070557,-55.432746887207 + ,0,33.3342742919922,-49.8881378173828,0,42.4264602661133,-42.4263534545898,0,49.8882217407227,-33.3341445922852,0 + ,55.432804107666,-22.9609260559082,0,58.8471336364746,-11.7053298950195,0,60,0,5,58.8471183776855,11.7054195404053 + ,5,55.4327735900879,22.9610061645508,5,49.8881759643555,33.3342132568359,5,42.4264068603516,42.4264068603516,5,33.3342132568359 + ,49.8881797790527,5,22.9610061645508,55.4327735900879,5,11.7054214477539,58.8471145629883,5,4.52987387689063e-006 + ,60,5,-11.7054128646851,58.8471183776855,5,-22.9609966278076,55.4327735900879,5,-33.3342094421387,49.8881797790527 + ,5,-42.4264068603516,42.4264068603516,5,-49.8881797790527,33.3342094421387,5,-55.4327774047852,22.9609966278076,5 + ,-58.8471183776855,11.7054052352905,5,-60,-1.95504817384062e-005,5,-58.847110748291,-11.7054433822632,5,-55.4327621459961 + ,-22.9610328674316,5,-49.8881568908691,-33.3342437744141,5,-42.4263801574707,-42.4264335632324,5,-33.3341789245605 + ,-49.8882026672363,5,-22.9609603881836,-55.432788848877,5,-11.7053670883179,-58.8471260070801,5,5.79359511903021e-005 + ,-60,5,11.7054805755615,-58.8471031188965,5,22.9610691070557,-55.432746887207,5,33.3342742919922,-49.8881378173828 + ,5,42.4264602661133,-42.4263534545898,5,49.8882217407227,-33.3341445922852,5,55.432804107666,-22.9609260559082,5,58.8471336364746 + ,-11.7053298950195,5 + PolygonVertexIndex: 0,1,33,-33,1,2,34,-34,2,3,35,-35,3,4,36,-36,4,5,37,-37,5,6,38,-38,6,7,39,-39,7,8,40,-40,8,9,41,-41,9,10,42,-42,10 + ,11,43,-43,11,12,44,-44,12,13,45,-45,13,14,46,-46,14,15,47,-47,15,16,48,-48,16,17,49,-49,17,18,50,-50,18,19,51,-51 + ,19,20,52,-52,20,21,53,-53,21,22,54,-54,22,23,55,-55,23,24,56,-56,24,25,57,-57,25,26,58,-58,26,27,59,-59,27,28,60 + ,-60,28,29,61,-61,29,30,62,-62,30,31,63,-63,31,0,32,-64 + Edges: 0,1,2,3,4,5,6,8,9,10,12,13,14,16,17,18,20,21,22,24,25,26,28,29,30,32,33,34,36,37,38,40,41,42,44,45,46,48,49,50,52 + ,53,54,56,57,58,60,61,62,64,65,66,68,69,70,72,73,74,76,77,78,80,81,82,84,85,86,88,89,90,92,93,94,96,97,98,100,101 + ,102,104,105,106,108,109,110,112,113,114,116,117,118,120,121,122,124,126 + GeometryVersion: 124 + LayerElementNormal: 0 { + Version: 101 + Name: "" + MappingInformationType: "ByPolygonVertex" + ReferenceInformationType: "Direct" + Normals: 1,2.66903668943996e-007,0,0.980785310268402,0.195090264081955,0,0.980785310268402,0.195090264081955,0,1,2.66903668943996e-007 + ,0,0.980785310268402,0.195090264081955,0,0.923879504203796,0.382683545351028,0,0.923879504203796,0.382683545351028 + ,0,0.980785310268402,0.195090264081955,0,0.923879504203796,0.382683545351028,0,0.831469595432281,0.555570244789124 + ,0,0.831469595432281,0.555570244789124,0,0.923879504203796,0.382683545351028,0,0.831469595432281,0.555570244789124 + ,0,0.70710688829422,0.707106709480286,0,0.70710688829422,0.707106709480286,0,0.831469595432281,0.555570244789124 + ,0,0.70710688829422,0.707106709480286,0,0.555570244789124,0.831469595432281,0,0.555570244789124,0.831469595432281 + ,0,0.70710688829422,0.707106709480286,0,0.555570244789124,0.831469595432281,0,0.382683277130127,0.923879623413086 + ,0,0.382683277130127,0.923879623413086,0,0.555570244789124,0.831469595432281,0,0.382683277130127,0.923879623413086 + ,0,0.195090293884277,0.980785310268402,0,0.195090293884277,0.980785310268402,0,0.382683277130127,0.923879623413086 + ,0,0.195090293884277,0.980785310268402,0,1.66814800195425e-007,1,0,1.66814800195425e-007,1,0,0.195090293884277 + ,0.980785310268402,0,1.66814800195425e-007,1,0,-0.195090278983116,0.980785310268402,0,-0.195090278983116,0.980785310268402 + ,0,1.66814800195425e-007,1,0,-0.195090278983116,0.980785310268402,0,-0.382683306932449,0.923879623413086,0,-0.382683306932449 + ,0.923879623413086,0,-0.195090278983116,0.980785310268402,0,-0.382683306932449,0.923879623413086,0,-0.555570185184479 + ,0.831469714641571,0,-0.555570185184479,0.831469714641571,0,-0.382683306932449,0.923879623413086,0,-0.555570185184479 + ,0.831469714641571,0,-0.70710688829422,0.70710676908493,0,-0.70710688829422,0.70710676908493,0,-0.555570185184479 + ,0.831469714641571,0,-0.70710688829422,0.70710676908493,0,-0.831469655036926,0.555570244789124,0,-0.831469655036926 + ,0.555570244789124,0,-0.70710688829422,0.70710676908493,0,-0.831469655036926,0.555570244789124,0,-0.923879623413086 + ,0.382683277130127,0,-0.923879623413086,0.382683277130127,0,-0.831469655036926,0.555570244789124,0,-0.923879623413086 + ,0.382683277130127,0,-0.980785310268402,0.195090040564537,0,-0.980785310268402,0.195090040564537,0,-0.923879623413086 + ,0.382683277130127,0,-0.980785310268402,0.195090040564537,0,-1,-3.3362960039085e-007,0,-1,-3.3362960039085e-007 + ,0,-0.980785310268402,0.195090040564537,0,-1,-3.3362960039085e-007,0,-0.980785250663757,-0.19509069621563,0,-0.980785250663757 + ,-0.19509069621563,0,-1,-3.3362960039085e-007,0,-0.980785250663757,-0.19509069621563,0,-0.923879325389862,-0.382683843374252 + ,0,-0.923879325389862,-0.382683843374252,0,-0.980785250663757,-0.19509069621563,0,-0.923879325389862,-0.382683843374252 + ,0,-0.831469357013702,-0.555570781230927,0,-0.831469357013702,-0.555570781230927,0,-0.923879325389862,-0.382683843374252 + ,0,-0.831469357013702,-0.555570781230927,0,-0.707106411457062,-0.707107186317444,0,-0.707106411457062,-0.707107186317444 + ,0,-0.831469357013702,-0.555570781230927,0,-0.707106411457062,-0.707107186317444,0,-0.555569529533386,-0.831470131874084 + ,0,-0.555569529533386,-0.831470131874084,0,-0.707106411457062,-0.707107186317444,0,-0.555569529533386,-0.831470131874084 + ,0,-0.382682532072067,-0.92387992143631,0,-0.382682532072067,-0.92387992143631,0,-0.555569529533386,-0.831470131874084 + ,0,-0.382682532072067,-0.92387992143631,0,-0.195089533925056,-0.980785489082336,0,-0.195089533925056,-0.980785489082336 + ,0,-0.382682532072067,-0.92387992143631,0,-0.195089533925056,-0.980785489082336,0,9.86590293905465e-007,-1,0 + ,9.86590293905465e-007,-1,0,-0.195089533925056,-0.980785489082336,0,9.86590293905465e-007,-1,0,0.1950913220644 + ,-0.980785071849823,0,0.1950913220644,-0.980785071849823,0,9.86590293905465e-007,-1,0,0.1950913220644,-0.980785071849823 + ,0,0.382684379816055,-0.923879206180573,0,0.382684379816055,-0.923879206180573,0,0.1950913220644,-0.980785071849823 + ,0,0.382684379816055,-0.923879206180573,0,0.555571258068085,-0.831468880176544,0,0.555571258068085,-0.831468880176544 + ,0,0.382684379816055,-0.923879206180573,0,0.555571258068085,-0.831468880176544,0,0.707107782363892,-0.707105815410614 + ,0,0.707107782363892,-0.707105815410614,0,0.555571258068085,-0.831468880176544,0,0.707107782363892,-0.707105815410614 + ,0,0.831470429897308,-0.555569112300873,0,0.831470429897308,-0.555569112300873,0,0.707107782363892,-0.707105815410614 + ,0,0.831470429897308,-0.555569112300873,0,0.923880100250244,-0.382682114839554,0,0.923880100250244,-0.382682114839554 + ,0,0.831470429897308,-0.555569112300873,0,0.923880100250244,-0.382682114839554,0,0.980785548686981,-0.195089265704155 + ,0,0.980785548686981,-0.195089265704155,0,0.923880100250244,-0.382682114839554,0,0.980785548686981,-0.195089265704155 + ,0,1,2.66903668943996e-007,0,1,2.66903668943996e-007,0,0.980785548686981,-0.195089265704155,0 + } + LayerElementUV: 0 { + Version: 101 + Name: "UVChannel_1" + MappingInformationType: "ByPolygonVertex" + ReferenceInformationType: "IndexToDirect" + UV: 0.75,0,0.78125,0,0.8125,0,0.84375,0,0.875,0,0.90625,0,0.9375,0,0.96875,0,1,0,0.0312500111758709,0,0.0624999850988388 + ,0,0.09375,0,0.125000014901161,0,0.156250014901161,0,0.187500029802322,0,0.218750044703484,0,0.250000059604645 + ,0,0.281250059604645,0,0.312500089406967,0,0.34375011920929,0,0.37500011920929,0,0.40625011920929,0,0.437500149011612 + ,0,0.468750149011612,0,0.500000178813934,0,0.531250178813934,0,0.562500178813934,0,0.593750178813934,0,0.625000238418579 + ,0,0.656250238418579,0,0.687500238418579,0,0.718750238418579,0,0.75,1,0.78125,1,0.8125,1,0.84375,1,0.875,1,0.90625 + ,1,0.9375,1,0.96875,1,1,1,0.0312500111758709,1,0.0624999850988388,1,0.09375,1,0.125000014901161,1,0.156250014901161 + ,1,0.187500029802322,1,0.218750044703484,1,0.250000059604645,1,0.281250059604645,1,0.312500089406967,1,0.34375011920929 + ,1,0.37500011920929,1,0.40625011920929,1,0.437500149011612,1,0.468750149011612,1,0.500000178813934,1,0.531250178813934 + ,1,0.562500178813934,1,0.593750178813934,1,0.625000238418579,1,0.656250238418579,1,0.687500238418579,1,0.718750238418579 + ,1,1.03125,0,1.03125,1 + UVIndex: 0,1,33,32,1,2,34,33,2,3,35,34,3,4,36,35,4,5,37,36,5,6,38,37,6,7,39,38,7,8,40,39,8,64,65,40,9,10,42,41,10,11,43 + ,42,11,12,44,43,12,13,45,44,13,14,46,45,14,15,47,46,15,16,48,47,16,17,49,48,17,18,50,49,18,19,51,50,19,20,52 + ,51,20,21,53,52,21,22,54,53,22,23,55,54,23,24,56,55,24,25,57,56,25,26,58,57,26,27,59,58,27,28,60,59,28,29,61 + ,60,29,30,62,61,30,31,63,62,31,0,32,63 + } + LayerElementSmoothing: 0 { + Version: 102 + Name: "" + MappingInformationType: "ByPolygon" + ReferenceInformationType: "Direct" + Smoothing: 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 + } + Layer: 0 { + Version: 100 + LayerElement: { + Type: "LayerElementNormal" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementUV" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementSmoothing" + TypedIndex: 0 + } + } + NodeAttributeName: "Geometry::CFX_Circular2_ncl1_1" + } + SceneInfo: "SceneInfo::GlobalInfo", "UserData" { + Type: "UserData" + Version: 100 + MetaData: { + Version: 100 + Title: "" + Subject: "" + Author: "" + Keywords: "" + Revision: "" + Comment: "" + } + Properties60: { + Property: "DocumentUrl", "KString", "", "C:\Documents and Settings\Jean\Bureau\UNITY3D\UNITY PROJECTS\CARTOON EFFECT PACKS\CartoonEffects 2 AssetStore\Assets\Cartoon FX\Mesh\CFX_Mesh_Circular2.FBX" + + Property: "SrcDocumentUrl", "KString", "", "C:\Documents and Settings\Jean\Bureau\UNITY3D\UNITY PROJECTS\CARTOON EFFECT PACKS\CartoonEffects 2 AssetStore\Assets\Cartoon FX\Mesh\CFX_Mesh_Circular2.FBX" + + Property: "Original", "Compound", "" + Property: "Original|ApplicationVendor", "KString", "", "Autodesk" + Property: "Original|ApplicationName", "KString", "", "3ds Max" + Property: "Original|ApplicationVersion", "KString", "", "2009.3" + Property: "Original|DateTime_GMT", "DateTime", "", "08/08/2012 14:08:48.203" + Property: "Original|FileName", "KString", "", "C:\Documents and Settings\Jean\Bureau\UNITY3D\UNITY PROJECTS\CARTOON EFFECT PACKS\CartoonEffects 2 AssetStore\Assets\Cartoon FX\Mesh\CFX_Mesh_Circular2.FBX" + + Property: "LastSaved", "Compound", "" + Property: "LastSaved|ApplicationVendor", "KString", "", "Autodesk" + Property: "LastSaved|ApplicationName", "KString", "", "3ds Max" + Property: "LastSaved|ApplicationVersion", "KString", "", "2009.3" + Property: "LastSaved|DateTime_GMT", "DateTime", "", "08/08/2012 14:08:48.203" + } + } + GlobalSettings: { + Version: 1000 + Properties60: { + Property: "UpAxis", "int", "",1 + Property: "UpAxisSign", "int", "",1 + Property: "FrontAxis", "int", "",2 + Property: "FrontAxisSign", "int", "",1 + Property: "CoordAxis", "int", "",0 + Property: "CoordAxisSign", "int", "",1 + Property: "UnitScaleFactor", "double", "",0.1 + } + } +} + +; Object connections +;------------------------------------------------------------------ + +Connections: { + Connect: "OO", "Model::CFX_Circular2", "Model::Scene" +} +;Takes and animation section +;---------------------------------------------------- + +Takes: { + Current: "Take 001" +} +;Version 5 settings +;------------------------------------------------------------------ + +Version5: { + AmbientRenderSettings: { + Version: 101 + AmbientLightColor: 0,0,0,1 + } + FogOptions: { + FlogEnable: 0 + FogMode: 0 + FogDensity: 0.002 + FogStart: 0.3 + FogEnd: 1000 + FogColor: 1,1,1,1 + } + Settings: { + FrameRate: "30" + TimeFormat: 1 + SnapOnFrames: 0 + ReferenceTimeIndex: -1 + TimeLineStartTime: 0 + TimeLineStopTime: 153953860000 + } + RendererSetting: { + DefaultCamera: "Producer Perspective" + DefaultViewingMode: 0 + } +} diff --git a/Assets/JMO Assets/Cartoon FX (legacy)/Mesh/CFX_Mesh_CircularAngle.FBX b/Assets/JMO Assets/Cartoon FX (legacy)/Mesh/CFX_Mesh_CircularAngle.FBX index 246bb28..cacf19c 100644 --- a/Assets/JMO Assets/Cartoon FX (legacy)/Mesh/CFX_Mesh_CircularAngle.FBX +++ b/Assets/JMO Assets/Cartoon FX (legacy)/Mesh/CFX_Mesh_CircularAngle.FBX @@ -1,396 +1,396 @@ -; FBX 6.1.0 project file -; Copyright (C) 1997-2008 Autodesk Inc. and/or its licensors. -; All rights reserved. -; ---------------------------------------------------- - -FBXHeaderExtension: { - FBXHeaderVersion: 1003 - FBXVersion: 6100 - CreationTimeStamp: { - Version: 1000 - Year: 2012 - Month: 8 - Day: 3 - Hour: 11 - Minute: 6 - Second: 39 - Millisecond: 796 - } - Creator: "FBX SDK/FBX Plugins version 2009.3" - OtherFlags: { - FlagPLE: 0 - } -} -CreationTime: "2012-08-03 11:06:39:796" -Creator: "FBX SDK/FBX Plugins build 20080926" - -; Document Description -;------------------------------------------------------------------ - -Document: { - Name: "" -} - -; Document References -;------------------------------------------------------------------ - -References: { -} - -; Object definitions -;------------------------------------------------------------------ - -Definitions: { - Version: 100 - Count: 3 - ObjectType: "Model" { - Count: 1 - } - ObjectType: "SceneInfo" { - Count: 1 - } - ObjectType: "GlobalSettings" { - Count: 1 - } -} - -; Object properties -;------------------------------------------------------------------ - -Objects: { - Model: "Model::CFX_CircularAngle", "Mesh" { - Version: 232 - Properties60: { - Property: "QuaternionInterpolate", "bool", "",0 - Property: "RotationOffset", "Vector3D", "",0,0,0 - Property: "RotationPivot", "Vector3D", "",0,0,0 - Property: "ScalingOffset", "Vector3D", "",0,0,0 - Property: "ScalingPivot", "Vector3D", "",0,0,0 - Property: "TranslationActive", "bool", "",0 - Property: "TranslationMin", "Vector3D", "",0,0,0 - Property: "TranslationMax", "Vector3D", "",0,0,0 - Property: "TranslationMinX", "bool", "",0 - Property: "TranslationMinY", "bool", "",0 - Property: "TranslationMinZ", "bool", "",0 - Property: "TranslationMaxX", "bool", "",0 - Property: "TranslationMaxY", "bool", "",0 - Property: "TranslationMaxZ", "bool", "",0 - Property: "RotationOrder", "enum", "",0 - Property: "RotationSpaceForLimitOnly", "bool", "",0 - Property: "RotationStiffnessX", "double", "",0 - Property: "RotationStiffnessY", "double", "",0 - Property: "RotationStiffnessZ", "double", "",0 - Property: "AxisLen", "double", "",10 - Property: "PreRotation", "Vector3D", "",-90,0,0 - Property: "PostRotation", "Vector3D", "",0,0,0 - Property: "RotationActive", "bool", "",1 - Property: "RotationMin", "Vector3D", "",0,0,0 - Property: "RotationMax", "Vector3D", "",0,0,0 - Property: "RotationMinX", "bool", "",0 - Property: "RotationMinY", "bool", "",0 - Property: "RotationMinZ", "bool", "",0 - Property: "RotationMaxX", "bool", "",0 - Property: "RotationMaxY", "bool", "",0 - Property: "RotationMaxZ", "bool", "",0 - Property: "InheritType", "enum", "",1 - Property: "ScalingActive", "bool", "",0 - Property: "ScalingMin", "Vector3D", "",1,1,1 - Property: "ScalingMax", "Vector3D", "",1,1,1 - Property: "ScalingMinX", "bool", "",0 - Property: "ScalingMinY", "bool", "",0 - Property: "ScalingMinZ", "bool", "",0 - Property: "ScalingMaxX", "bool", "",0 - Property: "ScalingMaxY", "bool", "",0 - Property: "ScalingMaxZ", "bool", "",0 - Property: "GeometricTranslation", "Vector3D", "",0,-10.1933441162109,4.45565234485912e-007 - Property: "GeometricRotation", "Vector3D", "",-90,0,0 - Property: "GeometricScaling", "Vector3D", "",2.06424999237061,2.06424999237061,2.06424999237061 - Property: "MinDampRangeX", "double", "",0 - Property: "MinDampRangeY", "double", "",0 - Property: "MinDampRangeZ", "double", "",0 - Property: "MaxDampRangeX", "double", "",0 - Property: "MaxDampRangeY", "double", "",0 - Property: "MaxDampRangeZ", "double", "",0 - Property: "MinDampStrengthX", "double", "",0 - Property: "MinDampStrengthY", "double", "",0 - Property: "MinDampStrengthZ", "double", "",0 - Property: "MaxDampStrengthX", "double", "",0 - Property: "MaxDampStrengthY", "double", "",0 - Property: "MaxDampStrengthZ", "double", "",0 - Property: "PreferedAngleX", "double", "",0 - Property: "PreferedAngleY", "double", "",0 - Property: "PreferedAngleZ", "double", "",0 - Property: "LookAtProperty", "object", "" - Property: "UpVectorProperty", "object", "" - Property: "Show", "bool", "",1 - Property: "NegativePercentShapeSupport", "bool", "",1 - Property: "DefaultAttributeIndex", "int", "",0 - Property: "Lcl Translation", "Lcl Translation", "A+",0,0,0 - Property: "Lcl Rotation", "Lcl Rotation", "A+",0,0,0 - Property: "Lcl Scaling", "Lcl Scaling", "A+",1,1,1 - Property: "Visibility", "Visibility", "A+",1 - Property: "Color", "ColorRGB", "N",0.423529411764706,0.0313725490196078,0.533333333333333 - Property: "BBoxMin", "Vector3D", "N",0,0,0 - Property: "BBoxMax", "Vector3D", "N",0,0,0 - } - MultiLayer: 0 - MultiTake: 1 - Shading: T - Culling: "CullingOff" - Vertices: 30.5999412536621,0,4.93803739547729,30.0119724273682,5.9697527885437,4.93803739547729,28.270658493042,11.710090637207 - ,4.93803739547729,25.4429206848145,17.000415802002,4.93803739547729,21.6374263763428,21.6374263763428,4.93803739547729 - ,17.000415802002,25.4429225921631,4.93803739547729,11.710090637207,28.2706604003906,4.93803739547729,5.96975326538086 - ,30.0119724273682,4.93803739547729,2.31023136620934e-006,30.5999412536621,4.93803739547729,-5.96974897384644,30.0119724273682 - ,4.93803739547729,-11.7100858688354,28.2706604003906,4.93803739547729,-17.0004138946533,25.4429225921631,4.93803739547729 - ,-21.6374263763428,21.6374263763428,4.93803739547729,-25.4429225921631,17.0004138946533,4.93803739547729,-28.2706623077393 - ,11.7100858688354,4.93803739547729,-30.0119743347168,5.96974515914917,4.93803739547729,-30.5999412536621,-9.97072675090749e-006 - ,4.93803739547729,-30.0119686126709,-5.96976470947266,4.93803739547729,-28.2706546783447,-11.7101039886475,4.93803739547729 - ,-25.4429111480713,-17.000431060791,4.93803739547729,-21.6374111175537,-21.6374397277832,4.93803739547729,-17.0003986358643 - ,-25.4429340362549,4.93803739547729,-11.7100677490234,-28.2706680297852,4.93803739547729,-5.96972560882568,-30.0119781494141 - ,4.93803739547729,2.95472782454453e-005,-30.5999412536621,4.93803739547729,5.96978378295898,-30.0119647979736,4.93803739547729 - ,11.7101221084595,-28.2706470489502,4.93803739547729,17.0004463195801,-25.4429016113281,4.93803739547729,21.6374530792236 - ,-21.6373977661133,4.93803739547729,25.442943572998,-17.0003814697266,4.93803739547729,28.2706756591797,-11.7100496292114 - ,4.93803739547729,30.0119819641113,-5.96970653533936,4.93803739547729,26.9941177368164,-1.09717211671523e-006,9.76329135894775 - ,26.475435256958,5.26629066467285,9.76329135894775,24.9393138885498,10.3302021026611,9.76329135894775,22.4447898864746 - ,14.9971284866333,9.76329135894775,19.0877246856689,19.0877265930176,9.76329135894775,14.9971256256104,22.4447917938232 - ,9.76329135894775,10.3301992416382,24.9393177032471,9.76329135894775,5.26629018783569,26.475435256958,9.76329135894775 - ,-3.46167325915303e-007,26.994119644165,9.76329135894775,-5.26629066467285,26.475435256958,9.76329135894775,-10.3302021026611 - ,24.9393177032471,9.76329135894775,-14.9971303939819,22.4447917938232,9.76329135894775,-19.0877265930176,19.0877265930176 - ,9.76329135894775,-22.4447937011719,14.9971265792847,9.76329135894775,-24.9393215179443,10.3301982879639,9.76329135894775 - ,-26.4754390716553,5.26628446578979,9.76329135894775,-26.9941215515137,-9.89297404885292e-006,9.76329135894775,-26.4754333496094 - ,-5.26630306243896,9.76329135894775,-24.9393138885498,-10.3302154541016,9.76329135894775,-22.4447822570801,-14.997142791748 - ,9.76329135894775,-19.0877151489258,-19.0877361297607,9.76329135894775,-14.9971170425415,-22.4448013305664,9.76329135894775 - ,-10.3301858901978,-24.939323425293,9.76329135894775,-5.26627016067505,-26.4754409790039,9.76329135894775,2.36813357332721e-005 - ,-26.994119644165,9.76329135894775,5.26631736755371,-26.4754276275635,9.76329135894775,10.3302268981934,-24.939302444458 - ,9.76329135894775,14.9971523284912,-22.4447746276855,9.76329135894775,19.0877475738525,-19.0876998901367,9.76329135894775 - ,22.4448070526123,-14.9970998764038,9.76329135894775,24.9393291473389,-10.3301668167114,9.76329135894775,26.4754409790039 - ,-5.26625204086304,9.76329135894775 - PolygonVertexIndex: 0,32,33,-2,1,33,34,-3,2,34,35,-4,3,35,36,-5,4,36,37,-6,5,37,38,-7,6,38,39,-8,7,39,40,-9,8,40,41,-10,9,41,42,-11,10 - ,42,43,-12,11,43,44,-13,12,44,45,-14,13,45,46,-15,14,46,47,-16,15,47,48,-17,16,48,49,-18,17,49,50,-19,18,50,51,-20 - ,19,51,52,-21,20,52,53,-22,21,53,54,-23,22,54,55,-24,23,55,56,-25,24,56,57,-26,25,57,58,-27,26,58,59,-28,27,59,60 - ,-29,28,60,61,-30,29,61,62,-31,30,62,63,-32,31,63,32,-1 - Edges: 3,7,11,15,19,23,27,31,35,39,43,47,51,55,59,63,67,71,75,79,83,87,91,95,99,103,107,111,115,119,123,127,2,1,0,6,5,10 - ,9,14,13,18,17,22,21,26,25,30,29,34,33,38,37,42,41,46,45,50,49,54,53,58,57,62,61,66,65,70,69,74,73,78,77,82,81,86 - ,85,90,89,94,93,98,97,102,101,106,105,110,109,114,113,118,117,122,121,125 - GeometryVersion: 124 - LayerElementNormal: 0 { - Version: 101 - Name: "" - MappingInformationType: "ByPolygonVertex" - ReferenceInformationType: "Direct" - Normals: -0.801044046878815,-2.39718644934328e-007,-0.598605394363403,-0.801044046878815,-2.38498500948481e-007,-0.598605394363403 - ,-0.785652339458466,-0.156275928020477,-0.598605334758759,-0.785652279853821,-0.156275942921638,-0.598605275154114 - ,-0.785652279853821,-0.156275942921638,-0.598605275154114,-0.785652339458466,-0.156275928020477,-0.598605334758759 - ,-0.740068316459656,-0.306546449661255,-0.598605275154114,-0.740068316459656,-0.306546449661255,-0.598605275154114 - ,-0.740068316459656,-0.306546449661255,-0.598605275154114,-0.740068316459656,-0.306546449661255,-0.598605275154114 - ,-0.666043937206268,-0.445036262273788,-0.598605275154114,-0.666043937206268,-0.445036232471466,-0.598605215549469 - ,-0.666043937206268,-0.445036232471466,-0.598605215549469,-0.666043937206268,-0.445036262273788,-0.598605275154114 - ,-0.566423773765564,-0.566423773765564,-0.598605275154114,-0.566423773765564,-0.566423714160919,-0.598605334758759 - ,-0.566423773765564,-0.566423714160919,-0.598605334758759,-0.566423773765564,-0.566423773765564,-0.598605275154114 - ,-0.445036292076111,-0.666043877601624,-0.598605334758759,-0.445036351680756,-0.666043817996979,-0.598605394363403 - ,-0.445036351680756,-0.666043817996979,-0.598605394363403,-0.445036292076111,-0.666043877601624,-0.598605334758759 - ,-0.306546300649643,-0.740068316459656,-0.598605334758759,-0.306546330451965,-0.740068316459656,-0.598605334758759 - ,-0.306546330451965,-0.740068316459656,-0.598605334758759,-0.306546300649643,-0.740068316459656,-0.598605334758759 - ,-0.156275853514671,-0.785652339458466,-0.598605275154114,-0.156275883316994,-0.785652279853821,-0.598605275154114 - ,-0.156275883316994,-0.785652279853821,-0.598605275154114,-0.156275853514671,-0.785652339458466,-0.598605275154114 - ,2.29325447520523e-008,-0.801044106483459,-0.598605275154114,-1.97706153670651e-008,-0.801044106483459,-0.598605275154114 - ,-1.97706153670651e-008,-0.801044106483459,-0.598605275154114,2.29325447520523e-008,-0.801044106483459,-0.598605275154114 - ,0.156275868415833,-0.78565239906311,-0.598605096340179,0.156275853514671,-0.785652458667755,-0.598605155944824 - ,0.156275853514671,-0.785652458667755,-0.598605155944824,0.156275868415833,-0.78565239906311,-0.598605096340179 - ,0.306546300649643,-0.74006849527359,-0.598605036735535,0.306546270847321,-0.740068554878235,-0.598605036735535 - ,0.306546270847321,-0.740068554878235,-0.598605036735535,0.306546300649643,-0.74006849527359,-0.598605036735535 - ,0.445036381483078,-0.666044116020203,-0.598605036735535,0.445036321878433,-0.666044116020203,-0.59860497713089 - ,0.445036321878433,-0.666044116020203,-0.59860497713089,0.445036381483078,-0.666044116020203,-0.598605036735535 - ,0.566423892974854,-0.566423892974854,-0.598605036735535,0.566423892974854,-0.566423892974854,-0.598605096340179 - ,0.566423892974854,-0.566423892974854,-0.598605096340179,0.566423892974854,-0.566423892974854,-0.598605036735535 - ,0.666043996810913,-0.445036470890045,-0.598605036735535,0.666044056415558,-0.445036381483078,-0.598605036735535 - ,0.666044056415558,-0.445036381483078,-0.598605036735535,0.666043996810913,-0.445036470890045,-0.598605036735535 - ,0.74006861448288,-0.306546330451965,-0.59860497713089,0.74006861448288,-0.306546330451965,-0.598604917526245 - ,0.74006861448288,-0.306546330451965,-0.598604917526245,0.74006861448288,-0.306546330451965,-0.59860497713089 - ,0.785652637481689,-0.156275644898415,-0.59860497713089,0.785652637481689,-0.156275674700737,-0.598605036735535 - ,0.785652637481689,-0.156275674700737,-0.598605036735535,0.785652637481689,-0.156275644898415,-0.59860497713089 - ,0.801044285297394,4.26545284426538e-007,-0.598605036735535,0.801044344902039,4.02826316303617e-007,-0.598605096340179 - ,0.801044344902039,4.02826316303617e-007,-0.598605096340179,0.801044285297394,4.26545284426538e-007,-0.598605036735535 - ,0.785652458667755,0.156276196241379,-0.598605036735535,0.785652458667755,0.15627621114254,-0.59860497713089 - ,0.785652458667755,0.15627621114254,-0.59860497713089,0.785652458667755,0.156276196241379,-0.598605036735535 - ,0.740068376064301,0.306546717882156,-0.598605036735535,0.740068376064301,0.306546717882156,-0.598605036735535 - ,0.740068376064301,0.306546717882156,-0.598605036735535,0.740068376064301,0.306546717882156,-0.598605036735535 - ,0.666043639183044,0.445036917924881,-0.598605036735535,0.666043639183044,0.445036917924881,-0.598605036735535 - ,0.666043639183044,0.445036917924881,-0.598605036735535,0.666043639183044,0.445036917924881,-0.598605036735535 - ,0.56642359495163,0.566424071788788,-0.598605036735535,0.56642359495163,0.566424190998077,-0.598605096340179 - ,0.56642359495163,0.566424190998077,-0.598605096340179,0.56642359495163,0.566424071788788,-0.598605036735535 - ,0.445035964250565,0.666044235229492,-0.598605096340179,0.445035964250565,0.666044294834137,-0.598605155944824 - ,0.445035964250565,0.666044294834137,-0.598605155944824,0.445035964250565,0.666044235229492,-0.598605096340179 - ,0.306545823812485,0.740068674087524,-0.598605096340179,0.306545794010162,0.740068674087524,-0.598605096340179 - ,0.306545794010162,0.740068674087524,-0.598605096340179,0.306545823812485,0.740068674087524,-0.598605096340179 - ,0.156275317072868,0.7856525182724,-0.598605155944824,0.156275272369385,0.785652577877045,-0.598605155944824 - ,0.156275272369385,0.785652577877045,-0.598605155944824,0.156275317072868,0.7856525182724,-0.598605155944824 - ,-9.26474740481353e-007,0.801044106483459,-0.598605275154114,-9.56403596319433e-007,0.801044225692749,-0.598605275154114 - ,-9.56403596319433e-007,0.801044225692749,-0.598605275154114,-9.26474740481353e-007,0.801044106483459,-0.598605275154114 - ,-0.156276792287827,0.785652101039886,-0.598605453968048,-0.156276792287827,0.785652041435242,-0.598605394363403 - ,-0.156276792287827,0.785652041435242,-0.598605394363403,-0.156276792287827,0.785652101039886,-0.598605453968048 - ,-0.306546926498413,0.740067958831787,-0.598605394363403,-0.30654701590538,0.740067899227142,-0.598605453968048 - ,-0.30654701590538,0.740067899227142,-0.598605453968048,-0.306546926498413,0.740067958831787,-0.598605394363403 - ,-0.445036947727203,0.666043281555176,-0.598605334758759,-0.445037066936493,0.666043281555176,-0.598605394363403 - ,-0.445037066936493,0.666043281555176,-0.598605394363403,-0.445036947727203,0.666043281555176,-0.598605334758759 - ,-0.566424429416656,0.566422998905182,-0.598605394363403,-0.566424489021301,0.566422939300537,-0.598605334758759 - ,-0.566424489021301,0.566422939300537,-0.598605334758759,-0.566424429416656,0.566422998905182,-0.598605394363403 - ,-0.666044473648071,0.445035517215729,-0.598605334758759,-0.666044414043427,0.445035398006439,-0.598605334758759 - ,-0.666044414043427,0.445035398006439,-0.598605334758759,-0.666044473648071,0.445035517215729,-0.598605334758759 - ,-0.740068674087524,0.306545346975327,-0.598605334758759,-0.74006861448288,0.306545317173004,-0.598605334758759 - ,-0.74006861448288,0.306545317173004,-0.598605334758759,-0.740068674087524,0.306545346975327,-0.598605334758759 - ,-0.78565239906311,0.156275063753128,-0.598605513572693,-0.78565239906311,0.156275004148483,-0.598605453968048 - ,-0.78565239906311,0.156275004148483,-0.598605453968048,-0.78565239906311,0.156275063753128,-0.598605513572693 - ,-0.801044046878815,-2.38498500948481e-007,-0.598605394363403,-0.801044046878815,-2.39718644934328e-007,-0.598605394363403 - - } - LayerElementUV: 0 { - Version: 101 - Name: "UVChannel_1" - MappingInformationType: "ByPolygonVertex" - ReferenceInformationType: "IndexToDirect" - UV: 0.5,0.75,0.451227396726608,0.745196342468262,0.404329121112823,0.730969846248627,0.361107438802719,0.707867383956909 - ,0.323223292827606,0.676776647567749,0.292132616043091,0.638892531394959,0.269030123949051,0.595670819282532 - ,0.254803687334061,0.548772573471069,0.25,0.5,0.254803687334061,0.451227426528931,0.269030123949051,0.404329180717468 - ,0.292132616043091,0.361107468605042,0.323223322629929,0.323223292827606,0.361107468605042,0.292132616043091 - ,0.404329180717468,0.269030094146729,0.451227486133575,0.254803657531738,0.50000011920929,0.25,0.548772692680359 - ,0.254803717136383,0.595670938491821,0.269030153751373,0.638892650604248,0.292132675647736,0.676776826381683 - ,0.323223441839218,0.707867503166199,0.361107587814331,0.730969965457916,0.40432932972908,0.745196342468262,0.45122766494751 - ,0.75,0.500000238418579,0.745196223258972,0.548772871494293,0.730969786643982,0.595671117305756,0.70786726474762 - ,0.638892829418182,0.67677640914917,0.676776945590973,0.638892233371735,0.707867562770844,0.595670521259308,0.730970025062561 - ,0.548772215843201,0.745196402072906,0.499999970197678,1,0.402454823255539,0.990392625331879,0.402454823255539 - ,0.990392625331879,0.308658272027969,0.961939692497253,0.308658272027969,0.961939692497253,0.222214877605438 - ,0.915734767913818,0.222214877605438,0.915734767913818,0.146446585655212,0.853553354740143,0.146446585655212 - ,0.853553354740143,0.0842652022838593,0.777785062789917,0.0842652022838593,0.777785062789917,0.0380602478981018 - ,0.691341698169708,0.0380602478981018,0.691341698169708,0.00960737466812134,0.597545146942139,0.00960737466812134 - ,0.597545146942139,2.98023223876953e-008,0.5,2.98023223876953e-008,0.5,0.00960737466812134,0.402454882860184 - ,0.00960737466812134,0.402454882860184,0.0380602478981018,0.308658361434937,0.0380602478981018,0.308658361434937 - ,0.0842652022838593,0.222214907407761,0.0842652022838593,0.222214907407761,0.146446645259857,0.146446585655212 - ,0.146446645259857,0.146446585655212,0.222214967012405,0.0842652022838593,0.222214967012405,0.0842652022838593 - ,0.308658361434937,0.0380602180957794,0.308658361434937,0.0380602180957794,0.402454972267151,0.00960734486579895 - ,0.402454972267151,0.00960734486579895,0.500000178813934,2.98023223876953e-008,0.500000178813934,2.98023223876953e-008 - ,0.597545385360718,0.00960743427276611,0.597545385360718,0.00960743427276611,0.691341936588287,0.038060337305069 - ,0.691341936588287,0.038060337305069,0.777785360813141,0.0842653810977936,0.777785360813141,0.0842653810977936 - ,0.853553652763367,0.146446883678436,0.853553652763367,0.146446883678436,0.915735006332397,0.222215205430985 - ,0.915735006332397,0.222215205430985,0.961939930915833,0.30865865945816,0.961939930915833,0.30865865945816,0.990392684936523 - ,0.402455300092697,0.990392684936523,0.402455300092697,1,0.500000476837158,1,0.500000476837158,0.990392506122589 - ,0.597545683383942,0.990392506122589,0.597545683383942,0.961939573287964,0.691342234611511,0.961939573287964 - ,0.691342234611511,0.915734469890594,0.777785658836365,0.915734469890594,0.777785658836365,0.853552877902985 - ,0.853553891181946,0.853552877902985,0.853553891181946,0.777784466743469,0.915735125541687,0.777784466743469 - ,0.915735125541687,0.691341042518616,0.961940050125122,0.691341042518616,0.961940050125122,0.597544372081757 - ,0.990392804145813,0.597544372081757,0.990392804145813,0.499999970197678,1 - UVIndex: 32,0,1,33,34,1,2,35,36,2,3,37,38,3,4,39,40,4,5,41,42,5,6,43,44,6,7,45,46,7,8,47,48,8,9,49,50,9,10,51,52,10,11 - ,53,54,11,12,55,56,12,13,57,58,13,14,59,60,14,15,61,62,15,16,63,64,16,17,65,66,17,18,67,68,18,19,69,70,19,20 - ,71,72,20,21,73,74,21,22,75,76,22,23,77,78,23,24,79,80,24,25,81,82,25,26,83,84,26,27,85,86,27,28,87,88,28,29 - ,89,90,29,30,91,92,30,31,93,94,31,0,95 - } - LayerElementSmoothing: 0 { - Version: 102 - Name: "" - MappingInformationType: "ByPolygon" - ReferenceInformationType: "Direct" - Smoothing: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 - } - Layer: 0 { - Version: 100 - LayerElement: { - Type: "LayerElementNormal" - TypedIndex: 0 - } - LayerElement: { - Type: "LayerElementUV" - TypedIndex: 0 - } - LayerElement: { - Type: "LayerElementSmoothing" - TypedIndex: 0 - } - } - NodeAttributeName: "Geometry::CFX_CircularAngle_ncl1_1" - } - SceneInfo: "SceneInfo::GlobalInfo", "UserData" { - Type: "UserData" - Version: 100 - MetaData: { - Version: 100 - Title: "" - Subject: "" - Author: "" - Keywords: "" - Revision: "" - Comment: "" - } - Properties60: { - Property: "DocumentUrl", "KString", "", "C:\Documents and Settings\Jean\Bureau\UNITY3D\UNITY PROJECTS\CARTOON EFFECT PACKS\CartoonEffects 2 AssetStore\Assets\Cartoon FX\Mesh\CFX_Mesh_CircularAngle.FBX" - - Property: "SrcDocumentUrl", "KString", "", "C:\Documents and Settings\Jean\Bureau\UNITY3D\UNITY PROJECTS\CARTOON EFFECT PACKS\CartoonEffects 2 AssetStore\Assets\Cartoon FX\Mesh\CFX_Mesh_CircularAngle.FBX" - - Property: "Original", "Compound", "" - Property: "Original|ApplicationVendor", "KString", "", "Autodesk" - Property: "Original|ApplicationName", "KString", "", "3ds Max" - Property: "Original|ApplicationVersion", "KString", "", "2009.3" - Property: "Original|DateTime_GMT", "DateTime", "", "03/08/2012 09:06:39.796" - Property: "Original|FileName", "KString", "", "C:\Documents and Settings\Jean\Bureau\UNITY3D\UNITY PROJECTS\CARTOON EFFECT PACKS\CartoonEffects 2 AssetStore\Assets\Cartoon FX\Mesh\CFX_Mesh_CircularAngle.FBX" - - Property: "LastSaved", "Compound", "" - Property: "LastSaved|ApplicationVendor", "KString", "", "Autodesk" - Property: "LastSaved|ApplicationName", "KString", "", "3ds Max" - Property: "LastSaved|ApplicationVersion", "KString", "", "2009.3" - Property: "LastSaved|DateTime_GMT", "DateTime", "", "03/08/2012 09:06:39.796" - } - } - GlobalSettings: { - Version: 1000 - Properties60: { - Property: "UpAxis", "int", "",1 - Property: "UpAxisSign", "int", "",1 - Property: "FrontAxis", "int", "",2 - Property: "FrontAxisSign", "int", "",1 - Property: "CoordAxis", "int", "",0 - Property: "CoordAxisSign", "int", "",1 - Property: "UnitScaleFactor", "double", "",0.1 - } - } -} - -; Object connections -;------------------------------------------------------------------ - -Connections: { - Connect: "OO", "Model::CFX_CircularAngle", "Model::Scene" -} -;Takes and animation section -;---------------------------------------------------- - -Takes: { - Current: "Take 001" -} -;Version 5 settings -;------------------------------------------------------------------ - -Version5: { - AmbientRenderSettings: { - Version: 101 - AmbientLightColor: 0,0,0,1 - } - FogOptions: { - FlogEnable: 0 - FogMode: 0 - FogDensity: 0.002 - FogStart: 0.3 - FogEnd: 1000 - FogColor: 1,1,1,1 - } - Settings: { - FrameRate: "30" - TimeFormat: 1 - SnapOnFrames: 0 - ReferenceTimeIndex: -1 - TimeLineStartTime: 0 - TimeLineStopTime: 153953860000 - } - RendererSetting: { - DefaultCamera: "Producer Perspective" - DefaultViewingMode: 0 - } -} +; FBX 6.1.0 project file +; Copyright (C) 1997-2008 Autodesk Inc. and/or its licensors. +; All rights reserved. +; ---------------------------------------------------- + +FBXHeaderExtension: { + FBXHeaderVersion: 1003 + FBXVersion: 6100 + CreationTimeStamp: { + Version: 1000 + Year: 2012 + Month: 8 + Day: 3 + Hour: 11 + Minute: 6 + Second: 39 + Millisecond: 796 + } + Creator: "FBX SDK/FBX Plugins version 2009.3" + OtherFlags: { + FlagPLE: 0 + } +} +CreationTime: "2012-08-03 11:06:39:796" +Creator: "FBX SDK/FBX Plugins build 20080926" + +; Document Description +;------------------------------------------------------------------ + +Document: { + Name: "" +} + +; Document References +;------------------------------------------------------------------ + +References: { +} + +; Object definitions +;------------------------------------------------------------------ + +Definitions: { + Version: 100 + Count: 3 + ObjectType: "Model" { + Count: 1 + } + ObjectType: "SceneInfo" { + Count: 1 + } + ObjectType: "GlobalSettings" { + Count: 1 + } +} + +; Object properties +;------------------------------------------------------------------ + +Objects: { + Model: "Model::CFX_CircularAngle", "Mesh" { + Version: 232 + Properties60: { + Property: "QuaternionInterpolate", "bool", "",0 + Property: "RotationOffset", "Vector3D", "",0,0,0 + Property: "RotationPivot", "Vector3D", "",0,0,0 + Property: "ScalingOffset", "Vector3D", "",0,0,0 + Property: "ScalingPivot", "Vector3D", "",0,0,0 + Property: "TranslationActive", "bool", "",0 + Property: "TranslationMin", "Vector3D", "",0,0,0 + Property: "TranslationMax", "Vector3D", "",0,0,0 + Property: "TranslationMinX", "bool", "",0 + Property: "TranslationMinY", "bool", "",0 + Property: "TranslationMinZ", "bool", "",0 + Property: "TranslationMaxX", "bool", "",0 + Property: "TranslationMaxY", "bool", "",0 + Property: "TranslationMaxZ", "bool", "",0 + Property: "RotationOrder", "enum", "",0 + Property: "RotationSpaceForLimitOnly", "bool", "",0 + Property: "RotationStiffnessX", "double", "",0 + Property: "RotationStiffnessY", "double", "",0 + Property: "RotationStiffnessZ", "double", "",0 + Property: "AxisLen", "double", "",10 + Property: "PreRotation", "Vector3D", "",-90,0,0 + Property: "PostRotation", "Vector3D", "",0,0,0 + Property: "RotationActive", "bool", "",1 + Property: "RotationMin", "Vector3D", "",0,0,0 + Property: "RotationMax", "Vector3D", "",0,0,0 + Property: "RotationMinX", "bool", "",0 + Property: "RotationMinY", "bool", "",0 + Property: "RotationMinZ", "bool", "",0 + Property: "RotationMaxX", "bool", "",0 + Property: "RotationMaxY", "bool", "",0 + Property: "RotationMaxZ", "bool", "",0 + Property: "InheritType", "enum", "",1 + Property: "ScalingActive", "bool", "",0 + Property: "ScalingMin", "Vector3D", "",1,1,1 + Property: "ScalingMax", "Vector3D", "",1,1,1 + Property: "ScalingMinX", "bool", "",0 + Property: "ScalingMinY", "bool", "",0 + Property: "ScalingMinZ", "bool", "",0 + Property: "ScalingMaxX", "bool", "",0 + Property: "ScalingMaxY", "bool", "",0 + Property: "ScalingMaxZ", "bool", "",0 + Property: "GeometricTranslation", "Vector3D", "",0,-10.1933441162109,4.45565234485912e-007 + Property: "GeometricRotation", "Vector3D", "",-90,0,0 + Property: "GeometricScaling", "Vector3D", "",2.06424999237061,2.06424999237061,2.06424999237061 + Property: "MinDampRangeX", "double", "",0 + Property: "MinDampRangeY", "double", "",0 + Property: "MinDampRangeZ", "double", "",0 + Property: "MaxDampRangeX", "double", "",0 + Property: "MaxDampRangeY", "double", "",0 + Property: "MaxDampRangeZ", "double", "",0 + Property: "MinDampStrengthX", "double", "",0 + Property: "MinDampStrengthY", "double", "",0 + Property: "MinDampStrengthZ", "double", "",0 + Property: "MaxDampStrengthX", "double", "",0 + Property: "MaxDampStrengthY", "double", "",0 + Property: "MaxDampStrengthZ", "double", "",0 + Property: "PreferedAngleX", "double", "",0 + Property: "PreferedAngleY", "double", "",0 + Property: "PreferedAngleZ", "double", "",0 + Property: "LookAtProperty", "object", "" + Property: "UpVectorProperty", "object", "" + Property: "Show", "bool", "",1 + Property: "NegativePercentShapeSupport", "bool", "",1 + Property: "DefaultAttributeIndex", "int", "",0 + Property: "Lcl Translation", "Lcl Translation", "A+",0,0,0 + Property: "Lcl Rotation", "Lcl Rotation", "A+",0,0,0 + Property: "Lcl Scaling", "Lcl Scaling", "A+",1,1,1 + Property: "Visibility", "Visibility", "A+",1 + Property: "Color", "ColorRGB", "N",0.423529411764706,0.0313725490196078,0.533333333333333 + Property: "BBoxMin", "Vector3D", "N",0,0,0 + Property: "BBoxMax", "Vector3D", "N",0,0,0 + } + MultiLayer: 0 + MultiTake: 1 + Shading: T + Culling: "CullingOff" + Vertices: 30.5999412536621,0,4.93803739547729,30.0119724273682,5.9697527885437,4.93803739547729,28.270658493042,11.710090637207 + ,4.93803739547729,25.4429206848145,17.000415802002,4.93803739547729,21.6374263763428,21.6374263763428,4.93803739547729 + ,17.000415802002,25.4429225921631,4.93803739547729,11.710090637207,28.2706604003906,4.93803739547729,5.96975326538086 + ,30.0119724273682,4.93803739547729,2.31023136620934e-006,30.5999412536621,4.93803739547729,-5.96974897384644,30.0119724273682 + ,4.93803739547729,-11.7100858688354,28.2706604003906,4.93803739547729,-17.0004138946533,25.4429225921631,4.93803739547729 + ,-21.6374263763428,21.6374263763428,4.93803739547729,-25.4429225921631,17.0004138946533,4.93803739547729,-28.2706623077393 + ,11.7100858688354,4.93803739547729,-30.0119743347168,5.96974515914917,4.93803739547729,-30.5999412536621,-9.97072675090749e-006 + ,4.93803739547729,-30.0119686126709,-5.96976470947266,4.93803739547729,-28.2706546783447,-11.7101039886475,4.93803739547729 + ,-25.4429111480713,-17.000431060791,4.93803739547729,-21.6374111175537,-21.6374397277832,4.93803739547729,-17.0003986358643 + ,-25.4429340362549,4.93803739547729,-11.7100677490234,-28.2706680297852,4.93803739547729,-5.96972560882568,-30.0119781494141 + ,4.93803739547729,2.95472782454453e-005,-30.5999412536621,4.93803739547729,5.96978378295898,-30.0119647979736,4.93803739547729 + ,11.7101221084595,-28.2706470489502,4.93803739547729,17.0004463195801,-25.4429016113281,4.93803739547729,21.6374530792236 + ,-21.6373977661133,4.93803739547729,25.442943572998,-17.0003814697266,4.93803739547729,28.2706756591797,-11.7100496292114 + ,4.93803739547729,30.0119819641113,-5.96970653533936,4.93803739547729,26.9941177368164,-1.09717211671523e-006,9.76329135894775 + ,26.475435256958,5.26629066467285,9.76329135894775,24.9393138885498,10.3302021026611,9.76329135894775,22.4447898864746 + ,14.9971284866333,9.76329135894775,19.0877246856689,19.0877265930176,9.76329135894775,14.9971256256104,22.4447917938232 + ,9.76329135894775,10.3301992416382,24.9393177032471,9.76329135894775,5.26629018783569,26.475435256958,9.76329135894775 + ,-3.46167325915303e-007,26.994119644165,9.76329135894775,-5.26629066467285,26.475435256958,9.76329135894775,-10.3302021026611 + ,24.9393177032471,9.76329135894775,-14.9971303939819,22.4447917938232,9.76329135894775,-19.0877265930176,19.0877265930176 + ,9.76329135894775,-22.4447937011719,14.9971265792847,9.76329135894775,-24.9393215179443,10.3301982879639,9.76329135894775 + ,-26.4754390716553,5.26628446578979,9.76329135894775,-26.9941215515137,-9.89297404885292e-006,9.76329135894775,-26.4754333496094 + ,-5.26630306243896,9.76329135894775,-24.9393138885498,-10.3302154541016,9.76329135894775,-22.4447822570801,-14.997142791748 + ,9.76329135894775,-19.0877151489258,-19.0877361297607,9.76329135894775,-14.9971170425415,-22.4448013305664,9.76329135894775 + ,-10.3301858901978,-24.939323425293,9.76329135894775,-5.26627016067505,-26.4754409790039,9.76329135894775,2.36813357332721e-005 + ,-26.994119644165,9.76329135894775,5.26631736755371,-26.4754276275635,9.76329135894775,10.3302268981934,-24.939302444458 + ,9.76329135894775,14.9971523284912,-22.4447746276855,9.76329135894775,19.0877475738525,-19.0876998901367,9.76329135894775 + ,22.4448070526123,-14.9970998764038,9.76329135894775,24.9393291473389,-10.3301668167114,9.76329135894775,26.4754409790039 + ,-5.26625204086304,9.76329135894775 + PolygonVertexIndex: 0,32,33,-2,1,33,34,-3,2,34,35,-4,3,35,36,-5,4,36,37,-6,5,37,38,-7,6,38,39,-8,7,39,40,-9,8,40,41,-10,9,41,42,-11,10 + ,42,43,-12,11,43,44,-13,12,44,45,-14,13,45,46,-15,14,46,47,-16,15,47,48,-17,16,48,49,-18,17,49,50,-19,18,50,51,-20 + ,19,51,52,-21,20,52,53,-22,21,53,54,-23,22,54,55,-24,23,55,56,-25,24,56,57,-26,25,57,58,-27,26,58,59,-28,27,59,60 + ,-29,28,60,61,-30,29,61,62,-31,30,62,63,-32,31,63,32,-1 + Edges: 3,7,11,15,19,23,27,31,35,39,43,47,51,55,59,63,67,71,75,79,83,87,91,95,99,103,107,111,115,119,123,127,2,1,0,6,5,10 + ,9,14,13,18,17,22,21,26,25,30,29,34,33,38,37,42,41,46,45,50,49,54,53,58,57,62,61,66,65,70,69,74,73,78,77,82,81,86 + ,85,90,89,94,93,98,97,102,101,106,105,110,109,114,113,118,117,122,121,125 + GeometryVersion: 124 + LayerElementNormal: 0 { + Version: 101 + Name: "" + MappingInformationType: "ByPolygonVertex" + ReferenceInformationType: "Direct" + Normals: -0.801044046878815,-2.39718644934328e-007,-0.598605394363403,-0.801044046878815,-2.38498500948481e-007,-0.598605394363403 + ,-0.785652339458466,-0.156275928020477,-0.598605334758759,-0.785652279853821,-0.156275942921638,-0.598605275154114 + ,-0.785652279853821,-0.156275942921638,-0.598605275154114,-0.785652339458466,-0.156275928020477,-0.598605334758759 + ,-0.740068316459656,-0.306546449661255,-0.598605275154114,-0.740068316459656,-0.306546449661255,-0.598605275154114 + ,-0.740068316459656,-0.306546449661255,-0.598605275154114,-0.740068316459656,-0.306546449661255,-0.598605275154114 + ,-0.666043937206268,-0.445036262273788,-0.598605275154114,-0.666043937206268,-0.445036232471466,-0.598605215549469 + ,-0.666043937206268,-0.445036232471466,-0.598605215549469,-0.666043937206268,-0.445036262273788,-0.598605275154114 + ,-0.566423773765564,-0.566423773765564,-0.598605275154114,-0.566423773765564,-0.566423714160919,-0.598605334758759 + ,-0.566423773765564,-0.566423714160919,-0.598605334758759,-0.566423773765564,-0.566423773765564,-0.598605275154114 + ,-0.445036292076111,-0.666043877601624,-0.598605334758759,-0.445036351680756,-0.666043817996979,-0.598605394363403 + ,-0.445036351680756,-0.666043817996979,-0.598605394363403,-0.445036292076111,-0.666043877601624,-0.598605334758759 + ,-0.306546300649643,-0.740068316459656,-0.598605334758759,-0.306546330451965,-0.740068316459656,-0.598605334758759 + ,-0.306546330451965,-0.740068316459656,-0.598605334758759,-0.306546300649643,-0.740068316459656,-0.598605334758759 + ,-0.156275853514671,-0.785652339458466,-0.598605275154114,-0.156275883316994,-0.785652279853821,-0.598605275154114 + ,-0.156275883316994,-0.785652279853821,-0.598605275154114,-0.156275853514671,-0.785652339458466,-0.598605275154114 + ,2.29325447520523e-008,-0.801044106483459,-0.598605275154114,-1.97706153670651e-008,-0.801044106483459,-0.598605275154114 + ,-1.97706153670651e-008,-0.801044106483459,-0.598605275154114,2.29325447520523e-008,-0.801044106483459,-0.598605275154114 + ,0.156275868415833,-0.78565239906311,-0.598605096340179,0.156275853514671,-0.785652458667755,-0.598605155944824 + ,0.156275853514671,-0.785652458667755,-0.598605155944824,0.156275868415833,-0.78565239906311,-0.598605096340179 + ,0.306546300649643,-0.74006849527359,-0.598605036735535,0.306546270847321,-0.740068554878235,-0.598605036735535 + ,0.306546270847321,-0.740068554878235,-0.598605036735535,0.306546300649643,-0.74006849527359,-0.598605036735535 + ,0.445036381483078,-0.666044116020203,-0.598605036735535,0.445036321878433,-0.666044116020203,-0.59860497713089 + ,0.445036321878433,-0.666044116020203,-0.59860497713089,0.445036381483078,-0.666044116020203,-0.598605036735535 + ,0.566423892974854,-0.566423892974854,-0.598605036735535,0.566423892974854,-0.566423892974854,-0.598605096340179 + ,0.566423892974854,-0.566423892974854,-0.598605096340179,0.566423892974854,-0.566423892974854,-0.598605036735535 + ,0.666043996810913,-0.445036470890045,-0.598605036735535,0.666044056415558,-0.445036381483078,-0.598605036735535 + ,0.666044056415558,-0.445036381483078,-0.598605036735535,0.666043996810913,-0.445036470890045,-0.598605036735535 + ,0.74006861448288,-0.306546330451965,-0.59860497713089,0.74006861448288,-0.306546330451965,-0.598604917526245 + ,0.74006861448288,-0.306546330451965,-0.598604917526245,0.74006861448288,-0.306546330451965,-0.59860497713089 + ,0.785652637481689,-0.156275644898415,-0.59860497713089,0.785652637481689,-0.156275674700737,-0.598605036735535 + ,0.785652637481689,-0.156275674700737,-0.598605036735535,0.785652637481689,-0.156275644898415,-0.59860497713089 + ,0.801044285297394,4.26545284426538e-007,-0.598605036735535,0.801044344902039,4.02826316303617e-007,-0.598605096340179 + ,0.801044344902039,4.02826316303617e-007,-0.598605096340179,0.801044285297394,4.26545284426538e-007,-0.598605036735535 + ,0.785652458667755,0.156276196241379,-0.598605036735535,0.785652458667755,0.15627621114254,-0.59860497713089 + ,0.785652458667755,0.15627621114254,-0.59860497713089,0.785652458667755,0.156276196241379,-0.598605036735535 + ,0.740068376064301,0.306546717882156,-0.598605036735535,0.740068376064301,0.306546717882156,-0.598605036735535 + ,0.740068376064301,0.306546717882156,-0.598605036735535,0.740068376064301,0.306546717882156,-0.598605036735535 + ,0.666043639183044,0.445036917924881,-0.598605036735535,0.666043639183044,0.445036917924881,-0.598605036735535 + ,0.666043639183044,0.445036917924881,-0.598605036735535,0.666043639183044,0.445036917924881,-0.598605036735535 + ,0.56642359495163,0.566424071788788,-0.598605036735535,0.56642359495163,0.566424190998077,-0.598605096340179 + ,0.56642359495163,0.566424190998077,-0.598605096340179,0.56642359495163,0.566424071788788,-0.598605036735535 + ,0.445035964250565,0.666044235229492,-0.598605096340179,0.445035964250565,0.666044294834137,-0.598605155944824 + ,0.445035964250565,0.666044294834137,-0.598605155944824,0.445035964250565,0.666044235229492,-0.598605096340179 + ,0.306545823812485,0.740068674087524,-0.598605096340179,0.306545794010162,0.740068674087524,-0.598605096340179 + ,0.306545794010162,0.740068674087524,-0.598605096340179,0.306545823812485,0.740068674087524,-0.598605096340179 + ,0.156275317072868,0.7856525182724,-0.598605155944824,0.156275272369385,0.785652577877045,-0.598605155944824 + ,0.156275272369385,0.785652577877045,-0.598605155944824,0.156275317072868,0.7856525182724,-0.598605155944824 + ,-9.26474740481353e-007,0.801044106483459,-0.598605275154114,-9.56403596319433e-007,0.801044225692749,-0.598605275154114 + ,-9.56403596319433e-007,0.801044225692749,-0.598605275154114,-9.26474740481353e-007,0.801044106483459,-0.598605275154114 + ,-0.156276792287827,0.785652101039886,-0.598605453968048,-0.156276792287827,0.785652041435242,-0.598605394363403 + ,-0.156276792287827,0.785652041435242,-0.598605394363403,-0.156276792287827,0.785652101039886,-0.598605453968048 + ,-0.306546926498413,0.740067958831787,-0.598605394363403,-0.30654701590538,0.740067899227142,-0.598605453968048 + ,-0.30654701590538,0.740067899227142,-0.598605453968048,-0.306546926498413,0.740067958831787,-0.598605394363403 + ,-0.445036947727203,0.666043281555176,-0.598605334758759,-0.445037066936493,0.666043281555176,-0.598605394363403 + ,-0.445037066936493,0.666043281555176,-0.598605394363403,-0.445036947727203,0.666043281555176,-0.598605334758759 + ,-0.566424429416656,0.566422998905182,-0.598605394363403,-0.566424489021301,0.566422939300537,-0.598605334758759 + ,-0.566424489021301,0.566422939300537,-0.598605334758759,-0.566424429416656,0.566422998905182,-0.598605394363403 + ,-0.666044473648071,0.445035517215729,-0.598605334758759,-0.666044414043427,0.445035398006439,-0.598605334758759 + ,-0.666044414043427,0.445035398006439,-0.598605334758759,-0.666044473648071,0.445035517215729,-0.598605334758759 + ,-0.740068674087524,0.306545346975327,-0.598605334758759,-0.74006861448288,0.306545317173004,-0.598605334758759 + ,-0.74006861448288,0.306545317173004,-0.598605334758759,-0.740068674087524,0.306545346975327,-0.598605334758759 + ,-0.78565239906311,0.156275063753128,-0.598605513572693,-0.78565239906311,0.156275004148483,-0.598605453968048 + ,-0.78565239906311,0.156275004148483,-0.598605453968048,-0.78565239906311,0.156275063753128,-0.598605513572693 + ,-0.801044046878815,-2.38498500948481e-007,-0.598605394363403,-0.801044046878815,-2.39718644934328e-007,-0.598605394363403 + + } + LayerElementUV: 0 { + Version: 101 + Name: "UVChannel_1" + MappingInformationType: "ByPolygonVertex" + ReferenceInformationType: "IndexToDirect" + UV: 0.5,0.75,0.451227396726608,0.745196342468262,0.404329121112823,0.730969846248627,0.361107438802719,0.707867383956909 + ,0.323223292827606,0.676776647567749,0.292132616043091,0.638892531394959,0.269030123949051,0.595670819282532 + ,0.254803687334061,0.548772573471069,0.25,0.5,0.254803687334061,0.451227426528931,0.269030123949051,0.404329180717468 + ,0.292132616043091,0.361107468605042,0.323223322629929,0.323223292827606,0.361107468605042,0.292132616043091 + ,0.404329180717468,0.269030094146729,0.451227486133575,0.254803657531738,0.50000011920929,0.25,0.548772692680359 + ,0.254803717136383,0.595670938491821,0.269030153751373,0.638892650604248,0.292132675647736,0.676776826381683 + ,0.323223441839218,0.707867503166199,0.361107587814331,0.730969965457916,0.40432932972908,0.745196342468262,0.45122766494751 + ,0.75,0.500000238418579,0.745196223258972,0.548772871494293,0.730969786643982,0.595671117305756,0.70786726474762 + ,0.638892829418182,0.67677640914917,0.676776945590973,0.638892233371735,0.707867562770844,0.595670521259308,0.730970025062561 + ,0.548772215843201,0.745196402072906,0.499999970197678,1,0.402454823255539,0.990392625331879,0.402454823255539 + ,0.990392625331879,0.308658272027969,0.961939692497253,0.308658272027969,0.961939692497253,0.222214877605438 + ,0.915734767913818,0.222214877605438,0.915734767913818,0.146446585655212,0.853553354740143,0.146446585655212 + ,0.853553354740143,0.0842652022838593,0.777785062789917,0.0842652022838593,0.777785062789917,0.0380602478981018 + ,0.691341698169708,0.0380602478981018,0.691341698169708,0.00960737466812134,0.597545146942139,0.00960737466812134 + ,0.597545146942139,2.98023223876953e-008,0.5,2.98023223876953e-008,0.5,0.00960737466812134,0.402454882860184 + ,0.00960737466812134,0.402454882860184,0.0380602478981018,0.308658361434937,0.0380602478981018,0.308658361434937 + ,0.0842652022838593,0.222214907407761,0.0842652022838593,0.222214907407761,0.146446645259857,0.146446585655212 + ,0.146446645259857,0.146446585655212,0.222214967012405,0.0842652022838593,0.222214967012405,0.0842652022838593 + ,0.308658361434937,0.0380602180957794,0.308658361434937,0.0380602180957794,0.402454972267151,0.00960734486579895 + ,0.402454972267151,0.00960734486579895,0.500000178813934,2.98023223876953e-008,0.500000178813934,2.98023223876953e-008 + ,0.597545385360718,0.00960743427276611,0.597545385360718,0.00960743427276611,0.691341936588287,0.038060337305069 + ,0.691341936588287,0.038060337305069,0.777785360813141,0.0842653810977936,0.777785360813141,0.0842653810977936 + ,0.853553652763367,0.146446883678436,0.853553652763367,0.146446883678436,0.915735006332397,0.222215205430985 + ,0.915735006332397,0.222215205430985,0.961939930915833,0.30865865945816,0.961939930915833,0.30865865945816,0.990392684936523 + ,0.402455300092697,0.990392684936523,0.402455300092697,1,0.500000476837158,1,0.500000476837158,0.990392506122589 + ,0.597545683383942,0.990392506122589,0.597545683383942,0.961939573287964,0.691342234611511,0.961939573287964 + ,0.691342234611511,0.915734469890594,0.777785658836365,0.915734469890594,0.777785658836365,0.853552877902985 + ,0.853553891181946,0.853552877902985,0.853553891181946,0.777784466743469,0.915735125541687,0.777784466743469 + ,0.915735125541687,0.691341042518616,0.961940050125122,0.691341042518616,0.961940050125122,0.597544372081757 + ,0.990392804145813,0.597544372081757,0.990392804145813,0.499999970197678,1 + UVIndex: 32,0,1,33,34,1,2,35,36,2,3,37,38,3,4,39,40,4,5,41,42,5,6,43,44,6,7,45,46,7,8,47,48,8,9,49,50,9,10,51,52,10,11 + ,53,54,11,12,55,56,12,13,57,58,13,14,59,60,14,15,61,62,15,16,63,64,16,17,65,66,17,18,67,68,18,19,69,70,19,20 + ,71,72,20,21,73,74,21,22,75,76,22,23,77,78,23,24,79,80,24,25,81,82,25,26,83,84,26,27,85,86,27,28,87,88,28,29 + ,89,90,29,30,91,92,30,31,93,94,31,0,95 + } + LayerElementSmoothing: 0 { + Version: 102 + Name: "" + MappingInformationType: "ByPolygon" + ReferenceInformationType: "Direct" + Smoothing: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + } + Layer: 0 { + Version: 100 + LayerElement: { + Type: "LayerElementNormal" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementUV" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementSmoothing" + TypedIndex: 0 + } + } + NodeAttributeName: "Geometry::CFX_CircularAngle_ncl1_1" + } + SceneInfo: "SceneInfo::GlobalInfo", "UserData" { + Type: "UserData" + Version: 100 + MetaData: { + Version: 100 + Title: "" + Subject: "" + Author: "" + Keywords: "" + Revision: "" + Comment: "" + } + Properties60: { + Property: "DocumentUrl", "KString", "", "C:\Documents and Settings\Jean\Bureau\UNITY3D\UNITY PROJECTS\CARTOON EFFECT PACKS\CartoonEffects 2 AssetStore\Assets\Cartoon FX\Mesh\CFX_Mesh_CircularAngle.FBX" + + Property: "SrcDocumentUrl", "KString", "", "C:\Documents and Settings\Jean\Bureau\UNITY3D\UNITY PROJECTS\CARTOON EFFECT PACKS\CartoonEffects 2 AssetStore\Assets\Cartoon FX\Mesh\CFX_Mesh_CircularAngle.FBX" + + Property: "Original", "Compound", "" + Property: "Original|ApplicationVendor", "KString", "", "Autodesk" + Property: "Original|ApplicationName", "KString", "", "3ds Max" + Property: "Original|ApplicationVersion", "KString", "", "2009.3" + Property: "Original|DateTime_GMT", "DateTime", "", "03/08/2012 09:06:39.796" + Property: "Original|FileName", "KString", "", "C:\Documents and Settings\Jean\Bureau\UNITY3D\UNITY PROJECTS\CARTOON EFFECT PACKS\CartoonEffects 2 AssetStore\Assets\Cartoon FX\Mesh\CFX_Mesh_CircularAngle.FBX" + + Property: "LastSaved", "Compound", "" + Property: "LastSaved|ApplicationVendor", "KString", "", "Autodesk" + Property: "LastSaved|ApplicationName", "KString", "", "3ds Max" + Property: "LastSaved|ApplicationVersion", "KString", "", "2009.3" + Property: "LastSaved|DateTime_GMT", "DateTime", "", "03/08/2012 09:06:39.796" + } + } + GlobalSettings: { + Version: 1000 + Properties60: { + Property: "UpAxis", "int", "",1 + Property: "UpAxisSign", "int", "",1 + Property: "FrontAxis", "int", "",2 + Property: "FrontAxisSign", "int", "",1 + Property: "CoordAxis", "int", "",0 + Property: "CoordAxisSign", "int", "",1 + Property: "UnitScaleFactor", "double", "",0.1 + } + } +} + +; Object connections +;------------------------------------------------------------------ + +Connections: { + Connect: "OO", "Model::CFX_CircularAngle", "Model::Scene" +} +;Takes and animation section +;---------------------------------------------------- + +Takes: { + Current: "Take 001" +} +;Version 5 settings +;------------------------------------------------------------------ + +Version5: { + AmbientRenderSettings: { + Version: 101 + AmbientLightColor: 0,0,0,1 + } + FogOptions: { + FlogEnable: 0 + FogMode: 0 + FogDensity: 0.002 + FogStart: 0.3 + FogEnd: 1000 + FogColor: 1,1,1,1 + } + Settings: { + FrameRate: "30" + TimeFormat: 1 + SnapOnFrames: 0 + ReferenceTimeIndex: -1 + TimeLineStartTime: 0 + TimeLineStopTime: 153953860000 + } + RendererSetting: { + DefaultCamera: "Producer Perspective" + DefaultViewingMode: 0 + } +} diff --git a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_ExpressionParser.cs b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_ExpressionParser.cs index accf275..cb58f75 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_ExpressionParser.cs +++ b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_ExpressionParser.cs @@ -1,275 +1,275 @@ -//-------------------------------------------------------------------------------------------------------------------------------- -// Cartoon FX -// (c) 2012-2020 Jean Moreno -//-------------------------------------------------------------------------------------------------------------------------------- - -using System.Collections.Generic; -using System.IO; - -// Parse conditional expressions from CFXR_MaterialInspector to show/hide some parts of the UI easily - -namespace CartoonFX -{ - public static class ExpressionParser - { - public delegate bool EvaluateFunction(string content); - - //-------------------------------------------------------------------------------------------------------------------------------- - // Main Function to use - - static public bool EvaluateExpression(string expression, EvaluateFunction evalFunction) - { - //Remove white spaces and double && || - string cleanExpr = ""; - for(int i = 0; i < expression.Length; i++) - { - switch(expression[i]) - { - case ' ': break; - case '&': cleanExpr += expression[i]; i++; break; - case '|': cleanExpr += expression[i]; i++; break; - default: cleanExpr += expression[i]; break; - } - } - - List tokens = new List(); - StringReader reader = new StringReader(cleanExpr); - Token t = null; - do - { - t = new Token(reader); - tokens.Add(t); - } while(t.type != Token.TokenType.EXPR_END); - - List polishNotation = Token.TransformToPolishNotation(tokens); - - var enumerator = polishNotation.GetEnumerator(); - enumerator.MoveNext(); - Expression root = MakeExpression(ref enumerator, evalFunction); - - return root.Evaluate(); - } - - //-------------------------------------------------------------------------------------------------------------------------------- - // Expression Token - - public class Token - { - static Dictionary> typesDict = new Dictionary>() - { - {'(', new KeyValuePair(TokenType.OPEN_PAREN, "(")}, - {')', new KeyValuePair(TokenType.CLOSE_PAREN, ")")}, - {'!', new KeyValuePair(TokenType.UNARY_OP, "NOT")}, - {'&', new KeyValuePair(TokenType.BINARY_OP, "AND")}, - {'|', new KeyValuePair(TokenType.BINARY_OP, "OR")} - }; - - public enum TokenType - { - OPEN_PAREN, - CLOSE_PAREN, - UNARY_OP, - BINARY_OP, - LITERAL, - EXPR_END - } - - public TokenType type; - public string value; - - public Token(StringReader s) - { - int c = s.Read(); - if(c == -1) - { - type = TokenType.EXPR_END; - value = ""; - return; - } - - char ch = (char)c; - - //Special case: solve bug where !COND_FALSE_1 && COND_FALSE_2 would return True - bool embeddedNot = (ch == '!' && s.Peek() != '('); - - if(typesDict.ContainsKey(ch) && !embeddedNot) - { - type = typesDict[ch].Key; - value = typesDict[ch].Value; - } - else - { - string str = ""; - str += ch; - while(s.Peek() != -1 && !typesDict.ContainsKey((char)s.Peek())) - { - str += (char)s.Read(); - } - type = TokenType.LITERAL; - value = str; - } - } - - static public List TransformToPolishNotation(List infixTokenList) - { - Queue outputQueue = new Queue(); - Stack stack = new Stack(); - - int index = 0; - while(infixTokenList.Count > index) - { - Token t = infixTokenList[index]; - - switch(t.type) - { - case Token.TokenType.LITERAL: - outputQueue.Enqueue(t); - break; - case Token.TokenType.BINARY_OP: - case Token.TokenType.UNARY_OP: - case Token.TokenType.OPEN_PAREN: - stack.Push(t); - break; - case Token.TokenType.CLOSE_PAREN: - while(stack.Peek().type != Token.TokenType.OPEN_PAREN) - { - outputQueue.Enqueue(stack.Pop()); - } - stack.Pop(); - if(stack.Count > 0 && stack.Peek().type == Token.TokenType.UNARY_OP) - { - outputQueue.Enqueue(stack.Pop()); - } - break; - default: - break; - } - - index++; - } - while(stack.Count > 0) - { - outputQueue.Enqueue(stack.Pop()); - } - - var list = new List(outputQueue); - list.Reverse(); - return list; - } - } - - //-------------------------------------------------------------------------------------------------------------------------------- - // Boolean Expression Classes - - public abstract class Expression - { - public abstract bool Evaluate(); - } - - public class ExpressionLeaf : Expression - { - private string content; - private EvaluateFunction evalFunction; - - public ExpressionLeaf(EvaluateFunction _evalFunction, string _content) - { - this.evalFunction = _evalFunction; - this.content = _content; - } - - override public bool Evaluate() - { - //embedded not, see special case in Token declaration - if(content.StartsWith("!")) - { - return !this.evalFunction(content.Substring(1)); - } - - return this.evalFunction(content); - } - } - - public class ExpressionAnd : Expression - { - private Expression left; - private Expression right; - - public ExpressionAnd(Expression _left, Expression _right) - { - this.left = _left; - this.right = _right; - } - - override public bool Evaluate() - { - return left.Evaluate() && right.Evaluate(); - } - } - - public class ExpressionOr : Expression - { - private Expression left; - private Expression right; - - public ExpressionOr(Expression _left, Expression _right) - { - this.left = _left; - this.right = _right; - } - - override public bool Evaluate() - { - return left.Evaluate() || right.Evaluate(); - } - } - - public class ExpressionNot : Expression - { - private Expression expr; - - public ExpressionNot(Expression _expr) - { - this.expr = _expr; - } - - override public bool Evaluate() - { - return !expr.Evaluate(); - } - } - - static public Expression MakeExpression(ref List.Enumerator polishNotationTokensEnumerator, EvaluateFunction _evalFunction) - { - if(polishNotationTokensEnumerator.Current.type == Token.TokenType.LITERAL) - { - Expression lit = new ExpressionLeaf(_evalFunction, polishNotationTokensEnumerator.Current.value); - polishNotationTokensEnumerator.MoveNext(); - return lit; - } - else - { - if(polishNotationTokensEnumerator.Current.value == "NOT") - { - polishNotationTokensEnumerator.MoveNext(); - Expression operand = MakeExpression(ref polishNotationTokensEnumerator, _evalFunction); - return new ExpressionNot(operand); - } - else if(polishNotationTokensEnumerator.Current.value == "AND") - { - polishNotationTokensEnumerator.MoveNext(); - Expression left = MakeExpression(ref polishNotationTokensEnumerator, _evalFunction); - Expression right = MakeExpression(ref polishNotationTokensEnumerator, _evalFunction); - return new ExpressionAnd(left, right); - } - else if(polishNotationTokensEnumerator.Current.value == "OR") - { - polishNotationTokensEnumerator.MoveNext(); - Expression left = MakeExpression(ref polishNotationTokensEnumerator, _evalFunction); - Expression right = MakeExpression(ref polishNotationTokensEnumerator, _evalFunction); - return new ExpressionOr(left, right); - } - } - return null; - } - } +//-------------------------------------------------------------------------------------------------------------------------------- +// Cartoon FX +// (c) 2012-2020 Jean Moreno +//-------------------------------------------------------------------------------------------------------------------------------- + +using System.Collections.Generic; +using System.IO; + +// Parse conditional expressions from CFXR_MaterialInspector to show/hide some parts of the UI easily + +namespace CartoonFX +{ + public static class ExpressionParser + { + public delegate bool EvaluateFunction(string content); + + //-------------------------------------------------------------------------------------------------------------------------------- + // Main Function to use + + static public bool EvaluateExpression(string expression, EvaluateFunction evalFunction) + { + //Remove white spaces and double && || + string cleanExpr = ""; + for(int i = 0; i < expression.Length; i++) + { + switch(expression[i]) + { + case ' ': break; + case '&': cleanExpr += expression[i]; i++; break; + case '|': cleanExpr += expression[i]; i++; break; + default: cleanExpr += expression[i]; break; + } + } + + List tokens = new List(); + StringReader reader = new StringReader(cleanExpr); + Token t = null; + do + { + t = new Token(reader); + tokens.Add(t); + } while(t.type != Token.TokenType.EXPR_END); + + List polishNotation = Token.TransformToPolishNotation(tokens); + + var enumerator = polishNotation.GetEnumerator(); + enumerator.MoveNext(); + Expression root = MakeExpression(ref enumerator, evalFunction); + + return root.Evaluate(); + } + + //-------------------------------------------------------------------------------------------------------------------------------- + // Expression Token + + public class Token + { + static Dictionary> typesDict = new Dictionary>() + { + {'(', new KeyValuePair(TokenType.OPEN_PAREN, "(")}, + {')', new KeyValuePair(TokenType.CLOSE_PAREN, ")")}, + {'!', new KeyValuePair(TokenType.UNARY_OP, "NOT")}, + {'&', new KeyValuePair(TokenType.BINARY_OP, "AND")}, + {'|', new KeyValuePair(TokenType.BINARY_OP, "OR")} + }; + + public enum TokenType + { + OPEN_PAREN, + CLOSE_PAREN, + UNARY_OP, + BINARY_OP, + LITERAL, + EXPR_END + } + + public TokenType type; + public string value; + + public Token(StringReader s) + { + int c = s.Read(); + if(c == -1) + { + type = TokenType.EXPR_END; + value = ""; + return; + } + + char ch = (char)c; + + //Special case: solve bug where !COND_FALSE_1 && COND_FALSE_2 would return True + bool embeddedNot = (ch == '!' && s.Peek() != '('); + + if(typesDict.ContainsKey(ch) && !embeddedNot) + { + type = typesDict[ch].Key; + value = typesDict[ch].Value; + } + else + { + string str = ""; + str += ch; + while(s.Peek() != -1 && !typesDict.ContainsKey((char)s.Peek())) + { + str += (char)s.Read(); + } + type = TokenType.LITERAL; + value = str; + } + } + + static public List TransformToPolishNotation(List infixTokenList) + { + Queue outputQueue = new Queue(); + Stack stack = new Stack(); + + int index = 0; + while(infixTokenList.Count > index) + { + Token t = infixTokenList[index]; + + switch(t.type) + { + case Token.TokenType.LITERAL: + outputQueue.Enqueue(t); + break; + case Token.TokenType.BINARY_OP: + case Token.TokenType.UNARY_OP: + case Token.TokenType.OPEN_PAREN: + stack.Push(t); + break; + case Token.TokenType.CLOSE_PAREN: + while(stack.Peek().type != Token.TokenType.OPEN_PAREN) + { + outputQueue.Enqueue(stack.Pop()); + } + stack.Pop(); + if(stack.Count > 0 && stack.Peek().type == Token.TokenType.UNARY_OP) + { + outputQueue.Enqueue(stack.Pop()); + } + break; + default: + break; + } + + index++; + } + while(stack.Count > 0) + { + outputQueue.Enqueue(stack.Pop()); + } + + var list = new List(outputQueue); + list.Reverse(); + return list; + } + } + + //-------------------------------------------------------------------------------------------------------------------------------- + // Boolean Expression Classes + + public abstract class Expression + { + public abstract bool Evaluate(); + } + + public class ExpressionLeaf : Expression + { + private string content; + private EvaluateFunction evalFunction; + + public ExpressionLeaf(EvaluateFunction _evalFunction, string _content) + { + this.evalFunction = _evalFunction; + this.content = _content; + } + + override public bool Evaluate() + { + //embedded not, see special case in Token declaration + if(content.StartsWith("!")) + { + return !this.evalFunction(content.Substring(1)); + } + + return this.evalFunction(content); + } + } + + public class ExpressionAnd : Expression + { + private Expression left; + private Expression right; + + public ExpressionAnd(Expression _left, Expression _right) + { + this.left = _left; + this.right = _right; + } + + override public bool Evaluate() + { + return left.Evaluate() && right.Evaluate(); + } + } + + public class ExpressionOr : Expression + { + private Expression left; + private Expression right; + + public ExpressionOr(Expression _left, Expression _right) + { + this.left = _left; + this.right = _right; + } + + override public bool Evaluate() + { + return left.Evaluate() || right.Evaluate(); + } + } + + public class ExpressionNot : Expression + { + private Expression expr; + + public ExpressionNot(Expression _expr) + { + this.expr = _expr; + } + + override public bool Evaluate() + { + return !expr.Evaluate(); + } + } + + static public Expression MakeExpression(ref List.Enumerator polishNotationTokensEnumerator, EvaluateFunction _evalFunction) + { + if(polishNotationTokensEnumerator.Current.type == Token.TokenType.LITERAL) + { + Expression lit = new ExpressionLeaf(_evalFunction, polishNotationTokensEnumerator.Current.value); + polishNotationTokensEnumerator.MoveNext(); + return lit; + } + else + { + if(polishNotationTokensEnumerator.Current.value == "NOT") + { + polishNotationTokensEnumerator.MoveNext(); + Expression operand = MakeExpression(ref polishNotationTokensEnumerator, _evalFunction); + return new ExpressionNot(operand); + } + else if(polishNotationTokensEnumerator.Current.value == "AND") + { + polishNotationTokensEnumerator.MoveNext(); + Expression left = MakeExpression(ref polishNotationTokensEnumerator, _evalFunction); + Expression right = MakeExpression(ref polishNotationTokensEnumerator, _evalFunction); + return new ExpressionAnd(left, right); + } + else if(polishNotationTokensEnumerator.Current.value == "OR") + { + polishNotationTokensEnumerator.MoveNext(); + Expression left = MakeExpression(ref polishNotationTokensEnumerator, _evalFunction); + Expression right = MakeExpression(ref polishNotationTokensEnumerator, _evalFunction); + return new ExpressionOr(left, right); + } + } + return null; + } + } } \ No newline at end of file diff --git a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_MaterialInspector.cs b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_MaterialInspector.cs index cae4d8d..f2f9d7a 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_MaterialInspector.cs +++ b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_MaterialInspector.cs @@ -1,592 +1,592 @@ -//-------------------------------------------------------------------------------------------------------------------------------- -// Cartoon FX -// (c) 2012-2020 Jean Moreno -//-------------------------------------------------------------------------------------------------------------------------------- - -using UnityEngine; -using UnityEditor; -using System.Collections.Generic; -using System.IO; -using System.Text.RegularExpressions; - -// Custom material inspector for Stylized FX shaders -// - organize UI using comments in the shader code -// - more flexibility than the material property drawers -// version 2 (dec 2017) - -namespace CartoonFX -{ - public class MaterialInspector : ShaderGUI - { - //Set by PropertyDrawers to defined if the next properties should be visible - static private Stack ShowStack = new Stack(); - - static public bool ShowNextProperty { get; private set; } - static public void PushShowProperty(bool value) - { - ShowStack.Push(ShowNextProperty); - ShowNextProperty &= value; - } - static public void PopShowProperty() - { - ShowNextProperty = ShowStack.Pop(); - } - - //-------------------------------------------------------------------------------------------------- - - const string kGuiCommandPrefix = "//#"; - const string kGC_IfKeyword = "IF_KEYWORD"; - const string kGC_IfProperty = "IF_PROPERTY"; - const string kGC_EndIf = "END_IF"; - const string kGC_HelpBox = "HELP_BOX"; - const string kGC_Label = "LABEL"; - - Dictionary> guiCommands = new Dictionary>(); - - bool initialized = false; - AssetImporter shaderImporter; - ulong lastTimestamp; - void Initialize(MaterialEditor editor, bool force) - { - if((!initialized || force) && editor != null) - { - initialized = true; - - guiCommands.Clear(); - - //Find the shader and parse the source to find special comments that will organize the GUI - //It's hackish, but at least it allows any character to be used (unlike material property drawers/decorators) and can be used along with property drawers - - var materials = new List(); - foreach(var o in editor.targets) - { - var m = o as Material; - if(m != null) - materials.Add(m); - } - if(materials.Count > 0 && materials[0].shader != null) - { - var path = AssetDatabase.GetAssetPath(materials[0].shader); - //get asset importer - shaderImporter = AssetImporter.GetAtPath(path); - if(shaderImporter != null) - { - lastTimestamp = shaderImporter.assetTimeStamp; - } - //remove 'Assets' and replace with OS path - path = Application.dataPath + path.Substring(6); - //convert to cross-platform path - path = path.Replace('/', Path.DirectorySeparatorChar); - //open file for reading - var lines = File.ReadAllLines(path); - - bool insideProperties = false; - //regex pattern to find properties, as they need to be counted so that - //special commands can be inserted at the right position when enumerating them - var regex = new Regex(@"[a-zA-Z0-9_]+\s*\([^\)]*\)"); - int propertyCount = 0; - bool insideCommentBlock = false; - foreach(var l in lines) - { - var line = l.TrimStart(); - - if(insideProperties) - { - bool isComment = line.StartsWith("//"); - - if(line.Contains("/*")) - insideCommentBlock = true; - if(line.Contains("*/")) - insideCommentBlock = false; - - //finished properties block? - if(line.StartsWith("}")) - break; - - //comment - if(line.StartsWith(kGuiCommandPrefix)) - { - string command = line.Substring(kGuiCommandPrefix.Length).TrimStart(); - //space - if(string.IsNullOrEmpty(command)) - AddGUICommand(propertyCount, new GC_Space()); - //separator - else if(command.StartsWith("---")) - AddGUICommand(propertyCount, new GC_Separator()); - //separator - else if(command.StartsWith("===")) - AddGUICommand(propertyCount, new GC_SeparatorDouble()); - //if keyword - else if(command.StartsWith(kGC_IfKeyword)) - { - var expr = command.Substring(command.LastIndexOf(kGC_IfKeyword) + kGC_IfKeyword.Length + 1); - AddGUICommand(propertyCount, new GC_IfKeyword() { expression = expr, materials = materials.ToArray() }); - } - //if property - else if(command.StartsWith(kGC_IfProperty)) - { - var expr = command.Substring(command.LastIndexOf(kGC_IfProperty) + kGC_IfProperty.Length + 1); - AddGUICommand(propertyCount, new GC_IfProperty() { expression = expr, materials = materials.ToArray() }); - } - //end if - else if(command.StartsWith(kGC_EndIf)) - { - AddGUICommand(propertyCount, new GC_EndIf()); - } - //help box - else if(command.StartsWith(kGC_HelpBox)) - { - var messageType = MessageType.Error; - var message = "Invalid format for HELP_BOX:\n" + command; - var cmd = command.Substring(command.LastIndexOf(kGC_HelpBox) + kGC_HelpBox.Length + 1).Split(new string[] { "::" }, System.StringSplitOptions.RemoveEmptyEntries); - if(cmd.Length == 1) - { - message = cmd[0]; - messageType = MessageType.None; - } - else if(cmd.Length == 2) - { - try - { - var msgType = (MessageType)System.Enum.Parse(typeof(MessageType), cmd[0], true); - message = cmd[1].Replace(" ", "\n"); - messageType = msgType; - } - catch { } - } - - AddGUICommand(propertyCount, new GC_HelpBox() - { - message = message, - messageType = messageType - }); - } - //label - else if(command.StartsWith(kGC_Label)) - { - var label = command.Substring(command.LastIndexOf(kGC_Label) + kGC_Label.Length + 1); - AddGUICommand(propertyCount, new GC_Label() { label = label }); - } - //header: plain text after command - else - { - AddGUICommand(propertyCount, new GC_Header() { label = command }); - } - } - else - //property - { - if(regex.IsMatch(line) && !insideCommentBlock && !isComment) - propertyCount++; - } - } - - //start properties block? - if(line.StartsWith("Properties")) - { - insideProperties = true; - } - } - } - } - } - - void AddGUICommand(int propertyIndex, GUICommand command) - { - if(!guiCommands.ContainsKey(propertyIndex)) - guiCommands.Add(propertyIndex, new List()); - - guiCommands[propertyIndex].Add(command); - } - - public override void AssignNewShaderToMaterial(Material material, Shader oldShader, Shader newShader) - { - initialized = false; - base.AssignNewShaderToMaterial(material, oldShader, newShader); - } - - public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties) - { - //init: - //- read metadata in properties comment to generate ui layout - //- force update if timestamp doesn't match last (= file externally updated) - bool force = (shaderImporter != null && shaderImporter.assetTimeStamp != lastTimestamp); - Initialize(materialEditor, force); - - var shader = (materialEditor.target as Material).shader; - materialEditor.SetDefaultGUIWidths(); - - //show all properties by default - ShowNextProperty = true; - ShowStack.Clear(); - - for(int i = 0; i < properties.Length; i++) - { - if(guiCommands.ContainsKey(i)) - { - for(int j = 0; j < guiCommands[i].Count; j++) - { - guiCommands[i][j].OnGUI(); - } - } - - //Use custom properties to enable/disable groups based on keywords - if(ShowNextProperty) - { - if((properties[i].flags & (MaterialProperty.PropFlags.HideInInspector | MaterialProperty.PropFlags.PerRendererData)) == MaterialProperty.PropFlags.None) - { - DisplayProperty(properties[i], materialEditor); - } - } - } - - //make sure to show gui commands that are after properties - int index = properties.Length; - if(guiCommands.ContainsKey(index)) - { - for(int j = 0; j < guiCommands[index].Count; j++) - { - guiCommands[index][j].OnGUI(); - } - } - - //Special fields - Styles.MaterialDrawSeparatorDouble(); - materialEditor.RenderQueueField(); - materialEditor.EnableInstancingField(); - } - - virtual protected void DisplayProperty(MaterialProperty property, MaterialEditor materialEditor) - { - float propertyHeight = materialEditor.GetPropertyHeight(property, property.displayName); - Rect controlRect = EditorGUILayout.GetControlRect(true, propertyHeight, EditorStyles.layerMaskField, new GUILayoutOption[0]); - materialEditor.ShaderProperty(controlRect, property, property.displayName); - } - } - - // Same as Toggle drawer, but doesn't set any keyword - // This will avoid adding unnecessary shader keyword to the project - internal class MaterialToggleNoKeywordDrawer : MaterialPropertyDrawer - { - private static bool IsPropertyTypeSuitable(MaterialProperty prop) - { - return prop.type == MaterialProperty.PropType.Float || prop.type == MaterialProperty.PropType.Range; - } - - public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) - { - float height; - if (!MaterialToggleNoKeywordDrawer.IsPropertyTypeSuitable(prop)) - { - height = 40f; - } - else - { - height = base.GetPropertyHeight(prop, label, editor); - } - return height; - } - - public override void OnGUI(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor) - { - if (!MaterialToggleNoKeywordDrawer.IsPropertyTypeSuitable(prop)) - { - EditorGUI.HelpBox(position, "Toggle used on a non-float property: " + prop.name, MessageType.Warning); - } - else - { - EditorGUI.BeginChangeCheck(); - bool flag = Mathf.Abs(prop.floatValue) > 0.001f; - EditorGUI.showMixedValue = prop.hasMixedValue; - flag = EditorGUI.Toggle(position, label, flag); - EditorGUI.showMixedValue = false; - if (EditorGUI.EndChangeCheck()) - { - prop.floatValue = ((!flag) ? 0f : 1f); - } - } - } - } - - // Same as KeywordEnum drawer, but uses the keyword supplied as is rather than adding a prefix to them - internal class MaterialKeywordEnumNoPrefixDrawer : MaterialPropertyDrawer - { - private readonly GUIContent[] labels; - private readonly string[] keywords; - - public MaterialKeywordEnumNoPrefixDrawer(string lbl1, string kw1) : this(new[] { lbl1 }, new[] { kw1 }) { } - public MaterialKeywordEnumNoPrefixDrawer(string lbl1, string kw1, string lbl2, string kw2) : this(new[] { lbl1, lbl2 }, new[] { kw1, kw2 }) { } - public MaterialKeywordEnumNoPrefixDrawer(string lbl1, string kw1, string lbl2, string kw2, string lbl3, string kw3) : this(new[] { lbl1, lbl2, lbl3 }, new[] { kw1, kw2, kw3 }) { } - public MaterialKeywordEnumNoPrefixDrawer(string lbl1, string kw1, string lbl2, string kw2, string lbl3, string kw3, string lbl4, string kw4) : this(new[] { lbl1, lbl2, lbl3, lbl4 }, new[] { kw1, kw2, kw3, kw4 }) { } - public MaterialKeywordEnumNoPrefixDrawer(string lbl1, string kw1, string lbl2, string kw2, string lbl3, string kw3, string lbl4, string kw4, string lbl5, string kw5) : this(new[] { lbl1, lbl2, lbl3, lbl4, lbl5 }, new[] { kw1, kw2, kw3, kw4, kw5 }) { } - public MaterialKeywordEnumNoPrefixDrawer(string lbl1, string kw1, string lbl2, string kw2, string lbl3, string kw3, string lbl4, string kw4, string lbl5, string kw5, string lbl6, string kw6) : this(new[] { lbl1, lbl2, lbl3, lbl4, lbl5, lbl6 }, new[] { kw1, kw2, kw3, kw4, kw5, kw6 }) { } - - public MaterialKeywordEnumNoPrefixDrawer(string[] labels, string[] keywords) - { - this.labels= new GUIContent[keywords.Length]; - this.keywords = new string[keywords.Length]; - for (int i = 0; i < keywords.Length; ++i) - { - this.labels[i] = new GUIContent(labels[i]); - this.keywords[i] = keywords[i]; - } - } - - static bool IsPropertyTypeSuitable(MaterialProperty prop) - { - return prop.type == MaterialProperty.PropType.Float || prop.type == MaterialProperty.PropType.Range; - } - - void SetKeyword(MaterialProperty prop, int index) - { - for (int i = 0; i < keywords.Length; ++i) - { - string keyword = GetKeywordName(prop.name, keywords[i]); - foreach (Material material in prop.targets) - { - if (index == i) - material.EnableKeyword(keyword); - else - material.DisableKeyword(keyword); - } - } - } - - public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) - { - if (!IsPropertyTypeSuitable(prop)) - { - return EditorGUIUtility.singleLineHeight * 2.5f; - } - return base.GetPropertyHeight(prop, label, editor); - } - - public override void OnGUI(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor) - { - if (!IsPropertyTypeSuitable(prop)) - { - EditorGUI.HelpBox(position, "Toggle used on a non-float property: " + prop.name, MessageType.Warning); - return; - } - - EditorGUI.BeginChangeCheck(); - - EditorGUI.showMixedValue = prop.hasMixedValue; - var value = (int)prop.floatValue; - value = EditorGUI.Popup(position, label, value, labels); - EditorGUI.showMixedValue = false; - if (EditorGUI.EndChangeCheck()) - { - prop.floatValue = value; - SetKeyword(prop, value); - } - } - - public override void Apply(MaterialProperty prop) - { - base.Apply(prop); - if (!IsPropertyTypeSuitable(prop)) - return; - - if (prop.hasMixedValue) - return; - - SetKeyword(prop, (int)prop.floatValue); - } - - // Final keyword name: property name + "_" + display name. Uppercased, - // and spaces replaced with underscores. - private static string GetKeywordName(string propName, string name) - { - // Just return the supplied name - return name; - - // Original code: - /* - string n = propName + "_" + name; - return n.Replace(' ', '_').ToUpperInvariant(); - */ - } - } - - - //================================================================================================================================================================================================ - // GUI Commands System - // - // Workaround to Material Property Drawers limitations: - // - uses shader comments to organize the GUI, and show/hide properties based on conditions - // - can use any character (unlike property drawers) - // - parsed once at material editor initialization - - internal class GUICommand - { - public virtual bool Visible() { return true; } - public virtual void OnGUI() { } - } - - internal class GC_Separator : GUICommand { public override void OnGUI() { if(MaterialInspector.ShowNextProperty) Styles.MaterialDrawSeparator(); } } - internal class GC_SeparatorDouble : GUICommand { public override void OnGUI() { if(MaterialInspector.ShowNextProperty) Styles.MaterialDrawSeparatorDouble(); } } - internal class GC_Space : GUICommand { public override void OnGUI() { if(MaterialInspector.ShowNextProperty) GUILayout.Space(8); } } - internal class GC_HelpBox : GUICommand - { - public string message { get; set; } - public MessageType messageType { get; set; } - - public override void OnGUI() - { - if(MaterialInspector.ShowNextProperty) - Styles.HelpBoxRichText(message, messageType); - } - } - internal class GC_Header : GUICommand - { - public string label { get; set; } - GUIContent guiContent; - - public override void OnGUI() - { - if(guiContent == null) - guiContent = new GUIContent(label); - - if(MaterialInspector.ShowNextProperty) - Styles.MaterialDrawHeader(guiContent); - } - } - internal class GC_Label : GUICommand - { - public string label { get; set; } - GUIContent guiContent; - - public override void OnGUI() - { - if(guiContent == null) - guiContent = new GUIContent(label); - - if(MaterialInspector.ShowNextProperty) - GUILayout.Label(guiContent); - } - } - internal class GC_IfKeyword : GUICommand - { - public string expression { get; set; } - public Material[] materials { get; set; } - public override void OnGUI() - { - bool show = ExpressionParser.EvaluateExpression(expression, (string s) => - { - foreach(var m in materials) - { - if(m.IsKeywordEnabled(s)) - return true; - } - return false; - }); - MaterialInspector.PushShowProperty(show); - } - } - internal class GC_EndIf : GUICommand { public override void OnGUI() { MaterialInspector.PopShowProperty(); } } - - internal class GC_IfProperty : GUICommand - { - string _expression; - public string expression - { - get { return _expression; } - set { _expression = value.Replace("!=", "<>"); } - } - public Material[] materials { get; set; } - - public override void OnGUI() - { - bool show = ExpressionParser.EvaluateExpression(expression, EvaluatePropertyExpression); - MaterialInspector.PushShowProperty(show); - } - - bool EvaluatePropertyExpression(string expr) - { - //expression is expected to be in the form of: property operator value - var reader = new StringReader(expr); - string property = ""; - string op = ""; - float value = 0f; - - int overflow = 0; - while(true) - { - char c = (char)reader.Read(); - - //operator - if(c == '=' || c == '>' || c == '<' || c == '!') - { - op += c; - //second operator character, if any - char c2 = (char)reader.Peek(); - if(c2 == '=' || c2 == '>') - { - reader.Read(); - op += c2; - } - - //end of string is the value - var end = reader.ReadToEnd(); - if(!float.TryParse(end, out value)) - { - Debug.LogError("Couldn't parse float from property expression:\n" + end); - return false; - } - - break; - } - - //property name - property += c; - - overflow++; - if(overflow >= 9999) - { - Debug.LogError("Expression parsing overflow!\n"); - return false; - } - } - - //evaluate property - bool conditionMet = false; - foreach(var m in materials) - { - float propValue = 0f; - if(property.Contains(".x") || property.Contains(".y") || property.Contains(".z") || property.Contains(".w")) - { - string[] split = property.Split('.'); - string component = split[1]; - switch(component) - { - case "x": propValue = m.GetVector(split[0]).x; break; - case "y": propValue = m.GetVector(split[0]).y; break; - case "z": propValue = m.GetVector(split[0]).z; break; - case "w": propValue = m.GetVector(split[0]).w; break; - default: Debug.LogError("Invalid component for vector property: '" + property + "'"); break; - } - } - else - propValue = m.GetFloat(property); - - switch(op) - { - case ">=": conditionMet = propValue >= value; break; - case "<=": conditionMet = propValue <= value; break; - case ">": conditionMet = propValue > value; break; - case "<": conditionMet = propValue < value; break; - case "<>": conditionMet = propValue != value; break; //not equal, "!=" is replaced by "<>" to prevent bug with leading ! ("not" operator) - case "==": conditionMet = propValue == value; break; - default: - Debug.LogError("Invalid property expression:\n" + expr); - break; - } - if(conditionMet) - return true; - } - - return false; - } - } +//-------------------------------------------------------------------------------------------------------------------------------- +// Cartoon FX +// (c) 2012-2020 Jean Moreno +//-------------------------------------------------------------------------------------------------------------------------------- + +using UnityEngine; +using UnityEditor; +using System.Collections.Generic; +using System.IO; +using System.Text.RegularExpressions; + +// Custom material inspector for Stylized FX shaders +// - organize UI using comments in the shader code +// - more flexibility than the material property drawers +// version 2 (dec 2017) + +namespace CartoonFX +{ + public class MaterialInspector : ShaderGUI + { + //Set by PropertyDrawers to defined if the next properties should be visible + static private Stack ShowStack = new Stack(); + + static public bool ShowNextProperty { get; private set; } + static public void PushShowProperty(bool value) + { + ShowStack.Push(ShowNextProperty); + ShowNextProperty &= value; + } + static public void PopShowProperty() + { + ShowNextProperty = ShowStack.Pop(); + } + + //-------------------------------------------------------------------------------------------------- + + const string kGuiCommandPrefix = "//#"; + const string kGC_IfKeyword = "IF_KEYWORD"; + const string kGC_IfProperty = "IF_PROPERTY"; + const string kGC_EndIf = "END_IF"; + const string kGC_HelpBox = "HELP_BOX"; + const string kGC_Label = "LABEL"; + + Dictionary> guiCommands = new Dictionary>(); + + bool initialized = false; + AssetImporter shaderImporter; + ulong lastTimestamp; + void Initialize(MaterialEditor editor, bool force) + { + if((!initialized || force) && editor != null) + { + initialized = true; + + guiCommands.Clear(); + + //Find the shader and parse the source to find special comments that will organize the GUI + //It's hackish, but at least it allows any character to be used (unlike material property drawers/decorators) and can be used along with property drawers + + var materials = new List(); + foreach(var o in editor.targets) + { + var m = o as Material; + if(m != null) + materials.Add(m); + } + if(materials.Count > 0 && materials[0].shader != null) + { + var path = AssetDatabase.GetAssetPath(materials[0].shader); + //get asset importer + shaderImporter = AssetImporter.GetAtPath(path); + if(shaderImporter != null) + { + lastTimestamp = shaderImporter.assetTimeStamp; + } + //remove 'Assets' and replace with OS path + path = Application.dataPath + path.Substring(6); + //convert to cross-platform path + path = path.Replace('/', Path.DirectorySeparatorChar); + //open file for reading + var lines = File.ReadAllLines(path); + + bool insideProperties = false; + //regex pattern to find properties, as they need to be counted so that + //special commands can be inserted at the right position when enumerating them + var regex = new Regex(@"[a-zA-Z0-9_]+\s*\([^\)]*\)"); + int propertyCount = 0; + bool insideCommentBlock = false; + foreach(var l in lines) + { + var line = l.TrimStart(); + + if(insideProperties) + { + bool isComment = line.StartsWith("//"); + + if(line.Contains("/*")) + insideCommentBlock = true; + if(line.Contains("*/")) + insideCommentBlock = false; + + //finished properties block? + if(line.StartsWith("}")) + break; + + //comment + if(line.StartsWith(kGuiCommandPrefix)) + { + string command = line.Substring(kGuiCommandPrefix.Length).TrimStart(); + //space + if(string.IsNullOrEmpty(command)) + AddGUICommand(propertyCount, new GC_Space()); + //separator + else if(command.StartsWith("---")) + AddGUICommand(propertyCount, new GC_Separator()); + //separator + else if(command.StartsWith("===")) + AddGUICommand(propertyCount, new GC_SeparatorDouble()); + //if keyword + else if(command.StartsWith(kGC_IfKeyword)) + { + var expr = command.Substring(command.LastIndexOf(kGC_IfKeyword) + kGC_IfKeyword.Length + 1); + AddGUICommand(propertyCount, new GC_IfKeyword() { expression = expr, materials = materials.ToArray() }); + } + //if property + else if(command.StartsWith(kGC_IfProperty)) + { + var expr = command.Substring(command.LastIndexOf(kGC_IfProperty) + kGC_IfProperty.Length + 1); + AddGUICommand(propertyCount, new GC_IfProperty() { expression = expr, materials = materials.ToArray() }); + } + //end if + else if(command.StartsWith(kGC_EndIf)) + { + AddGUICommand(propertyCount, new GC_EndIf()); + } + //help box + else if(command.StartsWith(kGC_HelpBox)) + { + var messageType = MessageType.Error; + var message = "Invalid format for HELP_BOX:\n" + command; + var cmd = command.Substring(command.LastIndexOf(kGC_HelpBox) + kGC_HelpBox.Length + 1).Split(new string[] { "::" }, System.StringSplitOptions.RemoveEmptyEntries); + if(cmd.Length == 1) + { + message = cmd[0]; + messageType = MessageType.None; + } + else if(cmd.Length == 2) + { + try + { + var msgType = (MessageType)System.Enum.Parse(typeof(MessageType), cmd[0], true); + message = cmd[1].Replace(" ", "\n"); + messageType = msgType; + } + catch { } + } + + AddGUICommand(propertyCount, new GC_HelpBox() + { + message = message, + messageType = messageType + }); + } + //label + else if(command.StartsWith(kGC_Label)) + { + var label = command.Substring(command.LastIndexOf(kGC_Label) + kGC_Label.Length + 1); + AddGUICommand(propertyCount, new GC_Label() { label = label }); + } + //header: plain text after command + else + { + AddGUICommand(propertyCount, new GC_Header() { label = command }); + } + } + else + //property + { + if(regex.IsMatch(line) && !insideCommentBlock && !isComment) + propertyCount++; + } + } + + //start properties block? + if(line.StartsWith("Properties")) + { + insideProperties = true; + } + } + } + } + } + + void AddGUICommand(int propertyIndex, GUICommand command) + { + if(!guiCommands.ContainsKey(propertyIndex)) + guiCommands.Add(propertyIndex, new List()); + + guiCommands[propertyIndex].Add(command); + } + + public override void AssignNewShaderToMaterial(Material material, Shader oldShader, Shader newShader) + { + initialized = false; + base.AssignNewShaderToMaterial(material, oldShader, newShader); + } + + public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties) + { + //init: + //- read metadata in properties comment to generate ui layout + //- force update if timestamp doesn't match last (= file externally updated) + bool force = (shaderImporter != null && shaderImporter.assetTimeStamp != lastTimestamp); + Initialize(materialEditor, force); + + var shader = (materialEditor.target as Material).shader; + materialEditor.SetDefaultGUIWidths(); + + //show all properties by default + ShowNextProperty = true; + ShowStack.Clear(); + + for(int i = 0; i < properties.Length; i++) + { + if(guiCommands.ContainsKey(i)) + { + for(int j = 0; j < guiCommands[i].Count; j++) + { + guiCommands[i][j].OnGUI(); + } + } + + //Use custom properties to enable/disable groups based on keywords + if(ShowNextProperty) + { + if((properties[i].flags & (MaterialProperty.PropFlags.HideInInspector | MaterialProperty.PropFlags.PerRendererData)) == MaterialProperty.PropFlags.None) + { + DisplayProperty(properties[i], materialEditor); + } + } + } + + //make sure to show gui commands that are after properties + int index = properties.Length; + if(guiCommands.ContainsKey(index)) + { + for(int j = 0; j < guiCommands[index].Count; j++) + { + guiCommands[index][j].OnGUI(); + } + } + + //Special fields + Styles.MaterialDrawSeparatorDouble(); + materialEditor.RenderQueueField(); + materialEditor.EnableInstancingField(); + } + + virtual protected void DisplayProperty(MaterialProperty property, MaterialEditor materialEditor) + { + float propertyHeight = materialEditor.GetPropertyHeight(property, property.displayName); + Rect controlRect = EditorGUILayout.GetControlRect(true, propertyHeight, EditorStyles.layerMaskField, new GUILayoutOption[0]); + materialEditor.ShaderProperty(controlRect, property, property.displayName); + } + } + + // Same as Toggle drawer, but doesn't set any keyword + // This will avoid adding unnecessary shader keyword to the project + internal class MaterialToggleNoKeywordDrawer : MaterialPropertyDrawer + { + private static bool IsPropertyTypeSuitable(MaterialProperty prop) + { + return prop.type == MaterialProperty.PropType.Float || prop.type == MaterialProperty.PropType.Range; + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + float height; + if (!MaterialToggleNoKeywordDrawer.IsPropertyTypeSuitable(prop)) + { + height = 40f; + } + else + { + height = base.GetPropertyHeight(prop, label, editor); + } + return height; + } + + public override void OnGUI(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor) + { + if (!MaterialToggleNoKeywordDrawer.IsPropertyTypeSuitable(prop)) + { + EditorGUI.HelpBox(position, "Toggle used on a non-float property: " + prop.name, MessageType.Warning); + } + else + { + EditorGUI.BeginChangeCheck(); + bool flag = Mathf.Abs(prop.floatValue) > 0.001f; + EditorGUI.showMixedValue = prop.hasMixedValue; + flag = EditorGUI.Toggle(position, label, flag); + EditorGUI.showMixedValue = false; + if (EditorGUI.EndChangeCheck()) + { + prop.floatValue = ((!flag) ? 0f : 1f); + } + } + } + } + + // Same as KeywordEnum drawer, but uses the keyword supplied as is rather than adding a prefix to them + internal class MaterialKeywordEnumNoPrefixDrawer : MaterialPropertyDrawer + { + private readonly GUIContent[] labels; + private readonly string[] keywords; + + public MaterialKeywordEnumNoPrefixDrawer(string lbl1, string kw1) : this(new[] { lbl1 }, new[] { kw1 }) { } + public MaterialKeywordEnumNoPrefixDrawer(string lbl1, string kw1, string lbl2, string kw2) : this(new[] { lbl1, lbl2 }, new[] { kw1, kw2 }) { } + public MaterialKeywordEnumNoPrefixDrawer(string lbl1, string kw1, string lbl2, string kw2, string lbl3, string kw3) : this(new[] { lbl1, lbl2, lbl3 }, new[] { kw1, kw2, kw3 }) { } + public MaterialKeywordEnumNoPrefixDrawer(string lbl1, string kw1, string lbl2, string kw2, string lbl3, string kw3, string lbl4, string kw4) : this(new[] { lbl1, lbl2, lbl3, lbl4 }, new[] { kw1, kw2, kw3, kw4 }) { } + public MaterialKeywordEnumNoPrefixDrawer(string lbl1, string kw1, string lbl2, string kw2, string lbl3, string kw3, string lbl4, string kw4, string lbl5, string kw5) : this(new[] { lbl1, lbl2, lbl3, lbl4, lbl5 }, new[] { kw1, kw2, kw3, kw4, kw5 }) { } + public MaterialKeywordEnumNoPrefixDrawer(string lbl1, string kw1, string lbl2, string kw2, string lbl3, string kw3, string lbl4, string kw4, string lbl5, string kw5, string lbl6, string kw6) : this(new[] { lbl1, lbl2, lbl3, lbl4, lbl5, lbl6 }, new[] { kw1, kw2, kw3, kw4, kw5, kw6 }) { } + + public MaterialKeywordEnumNoPrefixDrawer(string[] labels, string[] keywords) + { + this.labels= new GUIContent[keywords.Length]; + this.keywords = new string[keywords.Length]; + for (int i = 0; i < keywords.Length; ++i) + { + this.labels[i] = new GUIContent(labels[i]); + this.keywords[i] = keywords[i]; + } + } + + static bool IsPropertyTypeSuitable(MaterialProperty prop) + { + return prop.type == MaterialProperty.PropType.Float || prop.type == MaterialProperty.PropType.Range; + } + + void SetKeyword(MaterialProperty prop, int index) + { + for (int i = 0; i < keywords.Length; ++i) + { + string keyword = GetKeywordName(prop.name, keywords[i]); + foreach (Material material in prop.targets) + { + if (index == i) + material.EnableKeyword(keyword); + else + material.DisableKeyword(keyword); + } + } + } + + public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor) + { + if (!IsPropertyTypeSuitable(prop)) + { + return EditorGUIUtility.singleLineHeight * 2.5f; + } + return base.GetPropertyHeight(prop, label, editor); + } + + public override void OnGUI(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor) + { + if (!IsPropertyTypeSuitable(prop)) + { + EditorGUI.HelpBox(position, "Toggle used on a non-float property: " + prop.name, MessageType.Warning); + return; + } + + EditorGUI.BeginChangeCheck(); + + EditorGUI.showMixedValue = prop.hasMixedValue; + var value = (int)prop.floatValue; + value = EditorGUI.Popup(position, label, value, labels); + EditorGUI.showMixedValue = false; + if (EditorGUI.EndChangeCheck()) + { + prop.floatValue = value; + SetKeyword(prop, value); + } + } + + public override void Apply(MaterialProperty prop) + { + base.Apply(prop); + if (!IsPropertyTypeSuitable(prop)) + return; + + if (prop.hasMixedValue) + return; + + SetKeyword(prop, (int)prop.floatValue); + } + + // Final keyword name: property name + "_" + display name. Uppercased, + // and spaces replaced with underscores. + private static string GetKeywordName(string propName, string name) + { + // Just return the supplied name + return name; + + // Original code: + /* + string n = propName + "_" + name; + return n.Replace(' ', '_').ToUpperInvariant(); + */ + } + } + + + //================================================================================================================================================================================================ + // GUI Commands System + // + // Workaround to Material Property Drawers limitations: + // - uses shader comments to organize the GUI, and show/hide properties based on conditions + // - can use any character (unlike property drawers) + // - parsed once at material editor initialization + + internal class GUICommand + { + public virtual bool Visible() { return true; } + public virtual void OnGUI() { } + } + + internal class GC_Separator : GUICommand { public override void OnGUI() { if(MaterialInspector.ShowNextProperty) Styles.MaterialDrawSeparator(); } } + internal class GC_SeparatorDouble : GUICommand { public override void OnGUI() { if(MaterialInspector.ShowNextProperty) Styles.MaterialDrawSeparatorDouble(); } } + internal class GC_Space : GUICommand { public override void OnGUI() { if(MaterialInspector.ShowNextProperty) GUILayout.Space(8); } } + internal class GC_HelpBox : GUICommand + { + public string message { get; set; } + public MessageType messageType { get; set; } + + public override void OnGUI() + { + if(MaterialInspector.ShowNextProperty) + Styles.HelpBoxRichText(message, messageType); + } + } + internal class GC_Header : GUICommand + { + public string label { get; set; } + GUIContent guiContent; + + public override void OnGUI() + { + if(guiContent == null) + guiContent = new GUIContent(label); + + if(MaterialInspector.ShowNextProperty) + Styles.MaterialDrawHeader(guiContent); + } + } + internal class GC_Label : GUICommand + { + public string label { get; set; } + GUIContent guiContent; + + public override void OnGUI() + { + if(guiContent == null) + guiContent = new GUIContent(label); + + if(MaterialInspector.ShowNextProperty) + GUILayout.Label(guiContent); + } + } + internal class GC_IfKeyword : GUICommand + { + public string expression { get; set; } + public Material[] materials { get; set; } + public override void OnGUI() + { + bool show = ExpressionParser.EvaluateExpression(expression, (string s) => + { + foreach(var m in materials) + { + if(m.IsKeywordEnabled(s)) + return true; + } + return false; + }); + MaterialInspector.PushShowProperty(show); + } + } + internal class GC_EndIf : GUICommand { public override void OnGUI() { MaterialInspector.PopShowProperty(); } } + + internal class GC_IfProperty : GUICommand + { + string _expression; + public string expression + { + get { return _expression; } + set { _expression = value.Replace("!=", "<>"); } + } + public Material[] materials { get; set; } + + public override void OnGUI() + { + bool show = ExpressionParser.EvaluateExpression(expression, EvaluatePropertyExpression); + MaterialInspector.PushShowProperty(show); + } + + bool EvaluatePropertyExpression(string expr) + { + //expression is expected to be in the form of: property operator value + var reader = new StringReader(expr); + string property = ""; + string op = ""; + float value = 0f; + + int overflow = 0; + while(true) + { + char c = (char)reader.Read(); + + //operator + if(c == '=' || c == '>' || c == '<' || c == '!') + { + op += c; + //second operator character, if any + char c2 = (char)reader.Peek(); + if(c2 == '=' || c2 == '>') + { + reader.Read(); + op += c2; + } + + //end of string is the value + var end = reader.ReadToEnd(); + if(!float.TryParse(end, out value)) + { + Debug.LogError("Couldn't parse float from property expression:\n" + end); + return false; + } + + break; + } + + //property name + property += c; + + overflow++; + if(overflow >= 9999) + { + Debug.LogError("Expression parsing overflow!\n"); + return false; + } + } + + //evaluate property + bool conditionMet = false; + foreach(var m in materials) + { + float propValue = 0f; + if(property.Contains(".x") || property.Contains(".y") || property.Contains(".z") || property.Contains(".w")) + { + string[] split = property.Split('.'); + string component = split[1]; + switch(component) + { + case "x": propValue = m.GetVector(split[0]).x; break; + case "y": propValue = m.GetVector(split[0]).y; break; + case "z": propValue = m.GetVector(split[0]).z; break; + case "w": propValue = m.GetVector(split[0]).w; break; + default: Debug.LogError("Invalid component for vector property: '" + property + "'"); break; + } + } + else + propValue = m.GetFloat(property); + + switch(op) + { + case ">=": conditionMet = propValue >= value; break; + case "<=": conditionMet = propValue <= value; break; + case ">": conditionMet = propValue > value; break; + case "<": conditionMet = propValue < value; break; + case "<>": conditionMet = propValue != value; break; //not equal, "!=" is replaced by "<>" to prevent bug with leading ! ("not" operator) + case "==": conditionMet = propValue == value; break; + default: + Debug.LogError("Invalid property expression:\n" + expr); + break; + } + if(conditionMet) + return true; + } + + return false; + } + } } \ No newline at end of file diff --git a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_Styles.cs b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_Styles.cs index 80fda6e..a4428c6 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_Styles.cs +++ b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Editor/CFXR_Styles.cs @@ -1,362 +1,362 @@ -//-------------------------------------------------------------------------------------------------------------------------------- -// Cartoon FX -// (c) 2012-2020 Jean Moreno -//-------------------------------------------------------------------------------------------------------------------------------- - -using UnityEngine; -using UnityEditor; - -// GUI Styles and UI methods - -namespace CartoonFX -{ - public static class Styles - { - //================================================================================================================================ - // GUI Styles - //================================================================================================================================ - - //================================================================================================================================ - // (x) close button - static GUIStyle _closeCrossButton; - public static GUIStyle CloseCrossButton - { - get - { - if(_closeCrossButton == null) - { - //Try to load GUISkin according to its GUID - //Assumes that its .meta file should always stick with it! - string guiSkinPath = AssetDatabase.GUIDToAssetPath("02d396fa782e5d7438e231ea9f8be23c"); - var gs = AssetDatabase.LoadAssetAtPath(guiSkinPath); - if(gs != null) - { - _closeCrossButton = System.Array.Find(gs.customStyles, x => x.name == "CloseCrossButton"); - } - - //Else fall back to minibutton - if(_closeCrossButton == null) - _closeCrossButton = EditorStyles.miniButton; - } - return _closeCrossButton; - } - } - - //================================================================================================================================ - // Shuriken Toggle with label alignment fix - static GUIStyle _shurikenToggle; - public static GUIStyle ShurikenToggle - { - get - { - if(_shurikenToggle == null) - { - _shurikenToggle = new GUIStyle("ShurikenToggle"); - _shurikenToggle.fontSize = 9; - _shurikenToggle.contentOffset = new Vector2(16, -1); - if(EditorGUIUtility.isProSkin) - { - var textColor = new Color(.8f, .8f, .8f); - _shurikenToggle.normal.textColor = textColor; - _shurikenToggle.active.textColor = textColor; - _shurikenToggle.focused.textColor = textColor; - _shurikenToggle.hover.textColor = textColor; - _shurikenToggle.onNormal.textColor = textColor; - _shurikenToggle.onActive.textColor = textColor; - _shurikenToggle.onFocused.textColor = textColor; - _shurikenToggle.onHover.textColor = textColor; - } - } - return _shurikenToggle; - } - } - - //================================================================================================================================ - // Bold mini-label (the one from EditorStyles isn't actually "mini") - static GUIStyle _miniBoldLabel; - public static GUIStyle MiniBoldLabel - { - get - { - if(_miniBoldLabel == null) - { - _miniBoldLabel = new GUIStyle(EditorStyles.boldLabel); - _miniBoldLabel.fontSize = 10; - _miniBoldLabel.margin = new RectOffset(0, 0, 0, 0); - } - return _miniBoldLabel; - } - } - - //================================================================================================================================ - // Bold mini-foldout - static GUIStyle _miniBoldFoldout; - public static GUIStyle MiniBoldFoldout - { - get - { - if(_miniBoldFoldout == null) - { - _miniBoldFoldout = new GUIStyle(EditorStyles.foldout); - _miniBoldFoldout.fontSize = 10; - _miniBoldFoldout.fontStyle = FontStyle.Bold; - _miniBoldFoldout.margin = new RectOffset(0, 0, 0, 0); - } - return _miniBoldFoldout; - } - } - - //================================================================================================================================ - // Gray right-aligned label for Orderable List (Material Animator) - static GUIStyle _PropertyTypeLabel; - public static GUIStyle PropertyTypeLabel - { - get - { - if(_PropertyTypeLabel == null) - { - _PropertyTypeLabel = new GUIStyle(EditorStyles.label); - _PropertyTypeLabel.alignment = TextAnchor.MiddleRight; - _PropertyTypeLabel.normal.textColor = Color.gray; - _PropertyTypeLabel.fontSize = 9; - } - return _PropertyTypeLabel; - } - } - - // Dark Gray right-aligned label for Orderable List (Material Animator) - static GUIStyle _PropertyTypeLabelFocused; - public static GUIStyle PropertyTypeLabelFocused - { - get - { - if(_PropertyTypeLabelFocused == null) - { - _PropertyTypeLabelFocused = new GUIStyle(EditorStyles.label); - _PropertyTypeLabelFocused.alignment = TextAnchor.MiddleRight; - _PropertyTypeLabelFocused.normal.textColor = new Color(.2f, .2f, .2f); - _PropertyTypeLabelFocused.fontSize = 9; - } - return _PropertyTypeLabelFocused; - } - } - - //================================================================================================================================ - // Rounded Box - static GUIStyle _roundedBox; - public static GUIStyle RoundedBox - { - get - { - if(_roundedBox == null) - { - _roundedBox = new GUIStyle(EditorStyles.helpBox); - } - return _roundedBox; - } - } - - //================================================================================================================================ - // Center White Label ("Editing Spline" label in Scene View) - static GUIStyle _CenteredWhiteLabel; - public static GUIStyle CenteredWhiteLabel - { - get - { - if(_CenteredWhiteLabel == null) - { - _CenteredWhiteLabel = new GUIStyle(EditorStyles.centeredGreyMiniLabel); - _CenteredWhiteLabel.fontSize = 20; - _CenteredWhiteLabel.normal.textColor = Color.white; - } - return _CenteredWhiteLabel; - } - } - - //================================================================================================================================ - // Used to draw lines for separators - static public GUIStyle _LineStyle; - static public GUIStyle LineStyle - { - get - { - if(_LineStyle == null) - { - _LineStyle = new GUIStyle(); - _LineStyle.normal.background = EditorGUIUtility.whiteTexture; - _LineStyle.stretchWidth = true; - } - - return _LineStyle; - } - } - - //================================================================================================================================ - // HelpBox with rich text formatting support - static GUIStyle _HelpBoxRichTextStyle; - static public GUIStyle HelpBoxRichTextStyle - { - get - { - if(_HelpBoxRichTextStyle == null) - { - _HelpBoxRichTextStyle = new GUIStyle("HelpBox"); - _HelpBoxRichTextStyle.richText = true; - } - return _HelpBoxRichTextStyle; - } - } - - //================================================================================================================================ - // Material Blue Header - static public GUIStyle _MaterialHeaderStyle; - static public GUIStyle MaterialHeaderStyle - { - get - { - if(_MaterialHeaderStyle == null) - { - _MaterialHeaderStyle = new GUIStyle(EditorStyles.label); - _MaterialHeaderStyle.fontStyle = FontStyle.Bold; - _MaterialHeaderStyle.fontSize = 11; - _MaterialHeaderStyle.padding.top = 0; - _MaterialHeaderStyle.padding.bottom = 0; - _MaterialHeaderStyle.normal.textColor = EditorGUIUtility.isProSkin ? new Color32(75, 128, 255, 255) : new Color32(0, 50, 230, 255); - _MaterialHeaderStyle.stretchWidth = true; - } - - return _MaterialHeaderStyle; - } - } - - //================================================================================================================================ - // Material Header emboss effect - static public GUIStyle _MaterialHeaderStyleHighlight; - static public GUIStyle MaterialHeaderStyleHighlight - { - get - { - if(_MaterialHeaderStyleHighlight == null) - { - _MaterialHeaderStyleHighlight = new GUIStyle(MaterialHeaderStyle); - _MaterialHeaderStyleHighlight.contentOffset = new Vector2(1, 1); - _MaterialHeaderStyleHighlight.normal.textColor = EditorGUIUtility.isProSkin ? new Color32(255, 255, 255, 16) : new Color32(255, 255, 255, 32); - } - - return _MaterialHeaderStyleHighlight; - } - } - - //================================================================================================================================ - // Filled rectangle - - static private GUIStyle _WhiteRectangleStyle; - - static public void DrawRectangle(Rect position, Color color) - { - var col = GUI.color; - GUI.color *= color; - DrawRectangle(position); - GUI.color = col; - } - static public void DrawRectangle(Rect position) - { - if(_WhiteRectangleStyle == null) - { - _WhiteRectangleStyle = new GUIStyle(); - _WhiteRectangleStyle.normal.background = EditorGUIUtility.whiteTexture; - } - - if(Event.current != null && Event.current.type == EventType.Repaint) - { - _WhiteRectangleStyle.Draw(position, false, false, false, false); - } - } - - //================================================================================================================================ - // Methods - //================================================================================================================================ - - static public void DrawLine(float height = 2f) - { - DrawLine(Color.black, height); - } - static public void DrawLine(Color color, float height = 1f) - { - Rect position = GUILayoutUtility.GetRect(0f, float.MaxValue, height, height, LineStyle); - DrawLine(position, color); - } - static public void DrawLine(Rect position, Color color) - { - if(Event.current.type == EventType.Repaint) - { - Color orgColor = GUI.color; - GUI.color = orgColor * color; - LineStyle.Draw(position, false, false, false, false); - GUI.color = orgColor; - } - } - - static public void MaterialDrawHeader(GUIContent guiContent) - { - var rect = GUILayoutUtility.GetRect(guiContent, MaterialHeaderStyle); - GUI.Label(rect, guiContent, MaterialHeaderStyleHighlight); - GUI.Label(rect, guiContent, MaterialHeaderStyle); - } - - static public void MaterialDrawSeparator() - { - GUILayout.Space(4); - if(EditorGUIUtility.isProSkin) - DrawLine(new Color(.3f, .3f, .3f, 1f), 1); - else - DrawLine(new Color(.6f, .6f, .6f, 1f), 1); - GUILayout.Space(4); - } - - static public void MaterialDrawSeparatorDouble() - { - GUILayout.Space(6); - if(EditorGUIUtility.isProSkin) - { - DrawLine(new Color(.1f, .1f, .1f, 1f), 1); - DrawLine(new Color(.4f, .4f, .4f, 1f), 1); - } - else - { - DrawLine(new Color(.3f, .3f, .3f, 1f), 1); - DrawLine(new Color(.9f, .9f, .9f, 1f), 1); - } - GUILayout.Space(6); - } - - //built-in console icons, also used in help box - static Texture2D warnIcon; - static Texture2D infoIcon; - static Texture2D errorIcon; - - static public void HelpBoxRichText(Rect position, string message, MessageType msgType) - { - Texture2D icon = null; - switch(msgType) - { - case MessageType.Warning: icon = warnIcon ?? (warnIcon = EditorGUIUtility.Load("console.warnicon") as Texture2D); break; - case MessageType.Info: icon = infoIcon ?? (infoIcon = EditorGUIUtility.Load("console.infoicon") as Texture2D); break; - case MessageType.Error: icon = errorIcon ?? (errorIcon = EditorGUIUtility.Load("console.erroricon") as Texture2D); break; - } - EditorGUI.LabelField(position, GUIContent.none, new GUIContent(message, icon), HelpBoxRichTextStyle); - } - - static public void HelpBoxRichText(string message, MessageType msgType) - { - Texture2D icon = null; - switch(msgType) - { - case MessageType.Warning: icon = warnIcon ?? (warnIcon = EditorGUIUtility.Load("console.warnicon") as Texture2D); break; - case MessageType.Info: icon = infoIcon ?? (infoIcon = EditorGUIUtility.Load("console.infoicon") as Texture2D); break; - case MessageType.Error: icon = errorIcon ?? (errorIcon = EditorGUIUtility.Load("console.erroricon") as Texture2D); break; - } - EditorGUILayout.LabelField(GUIContent.none, new GUIContent(message, icon), HelpBoxRichTextStyle); - } - } -} +//-------------------------------------------------------------------------------------------------------------------------------- +// Cartoon FX +// (c) 2012-2020 Jean Moreno +//-------------------------------------------------------------------------------------------------------------------------------- + +using UnityEngine; +using UnityEditor; + +// GUI Styles and UI methods + +namespace CartoonFX +{ + public static class Styles + { + //================================================================================================================================ + // GUI Styles + //================================================================================================================================ + + //================================================================================================================================ + // (x) close button + static GUIStyle _closeCrossButton; + public static GUIStyle CloseCrossButton + { + get + { + if(_closeCrossButton == null) + { + //Try to load GUISkin according to its GUID + //Assumes that its .meta file should always stick with it! + string guiSkinPath = AssetDatabase.GUIDToAssetPath("02d396fa782e5d7438e231ea9f8be23c"); + var gs = AssetDatabase.LoadAssetAtPath(guiSkinPath); + if(gs != null) + { + _closeCrossButton = System.Array.Find(gs.customStyles, x => x.name == "CloseCrossButton"); + } + + //Else fall back to minibutton + if(_closeCrossButton == null) + _closeCrossButton = EditorStyles.miniButton; + } + return _closeCrossButton; + } + } + + //================================================================================================================================ + // Shuriken Toggle with label alignment fix + static GUIStyle _shurikenToggle; + public static GUIStyle ShurikenToggle + { + get + { + if(_shurikenToggle == null) + { + _shurikenToggle = new GUIStyle("ShurikenToggle"); + _shurikenToggle.fontSize = 9; + _shurikenToggle.contentOffset = new Vector2(16, -1); + if(EditorGUIUtility.isProSkin) + { + var textColor = new Color(.8f, .8f, .8f); + _shurikenToggle.normal.textColor = textColor; + _shurikenToggle.active.textColor = textColor; + _shurikenToggle.focused.textColor = textColor; + _shurikenToggle.hover.textColor = textColor; + _shurikenToggle.onNormal.textColor = textColor; + _shurikenToggle.onActive.textColor = textColor; + _shurikenToggle.onFocused.textColor = textColor; + _shurikenToggle.onHover.textColor = textColor; + } + } + return _shurikenToggle; + } + } + + //================================================================================================================================ + // Bold mini-label (the one from EditorStyles isn't actually "mini") + static GUIStyle _miniBoldLabel; + public static GUIStyle MiniBoldLabel + { + get + { + if(_miniBoldLabel == null) + { + _miniBoldLabel = new GUIStyle(EditorStyles.boldLabel); + _miniBoldLabel.fontSize = 10; + _miniBoldLabel.margin = new RectOffset(0, 0, 0, 0); + } + return _miniBoldLabel; + } + } + + //================================================================================================================================ + // Bold mini-foldout + static GUIStyle _miniBoldFoldout; + public static GUIStyle MiniBoldFoldout + { + get + { + if(_miniBoldFoldout == null) + { + _miniBoldFoldout = new GUIStyle(EditorStyles.foldout); + _miniBoldFoldout.fontSize = 10; + _miniBoldFoldout.fontStyle = FontStyle.Bold; + _miniBoldFoldout.margin = new RectOffset(0, 0, 0, 0); + } + return _miniBoldFoldout; + } + } + + //================================================================================================================================ + // Gray right-aligned label for Orderable List (Material Animator) + static GUIStyle _PropertyTypeLabel; + public static GUIStyle PropertyTypeLabel + { + get + { + if(_PropertyTypeLabel == null) + { + _PropertyTypeLabel = new GUIStyle(EditorStyles.label); + _PropertyTypeLabel.alignment = TextAnchor.MiddleRight; + _PropertyTypeLabel.normal.textColor = Color.gray; + _PropertyTypeLabel.fontSize = 9; + } + return _PropertyTypeLabel; + } + } + + // Dark Gray right-aligned label for Orderable List (Material Animator) + static GUIStyle _PropertyTypeLabelFocused; + public static GUIStyle PropertyTypeLabelFocused + { + get + { + if(_PropertyTypeLabelFocused == null) + { + _PropertyTypeLabelFocused = new GUIStyle(EditorStyles.label); + _PropertyTypeLabelFocused.alignment = TextAnchor.MiddleRight; + _PropertyTypeLabelFocused.normal.textColor = new Color(.2f, .2f, .2f); + _PropertyTypeLabelFocused.fontSize = 9; + } + return _PropertyTypeLabelFocused; + } + } + + //================================================================================================================================ + // Rounded Box + static GUIStyle _roundedBox; + public static GUIStyle RoundedBox + { + get + { + if(_roundedBox == null) + { + _roundedBox = new GUIStyle(EditorStyles.helpBox); + } + return _roundedBox; + } + } + + //================================================================================================================================ + // Center White Label ("Editing Spline" label in Scene View) + static GUIStyle _CenteredWhiteLabel; + public static GUIStyle CenteredWhiteLabel + { + get + { + if(_CenteredWhiteLabel == null) + { + _CenteredWhiteLabel = new GUIStyle(EditorStyles.centeredGreyMiniLabel); + _CenteredWhiteLabel.fontSize = 20; + _CenteredWhiteLabel.normal.textColor = Color.white; + } + return _CenteredWhiteLabel; + } + } + + //================================================================================================================================ + // Used to draw lines for separators + static public GUIStyle _LineStyle; + static public GUIStyle LineStyle + { + get + { + if(_LineStyle == null) + { + _LineStyle = new GUIStyle(); + _LineStyle.normal.background = EditorGUIUtility.whiteTexture; + _LineStyle.stretchWidth = true; + } + + return _LineStyle; + } + } + + //================================================================================================================================ + // HelpBox with rich text formatting support + static GUIStyle _HelpBoxRichTextStyle; + static public GUIStyle HelpBoxRichTextStyle + { + get + { + if(_HelpBoxRichTextStyle == null) + { + _HelpBoxRichTextStyle = new GUIStyle("HelpBox"); + _HelpBoxRichTextStyle.richText = true; + } + return _HelpBoxRichTextStyle; + } + } + + //================================================================================================================================ + // Material Blue Header + static public GUIStyle _MaterialHeaderStyle; + static public GUIStyle MaterialHeaderStyle + { + get + { + if(_MaterialHeaderStyle == null) + { + _MaterialHeaderStyle = new GUIStyle(EditorStyles.label); + _MaterialHeaderStyle.fontStyle = FontStyle.Bold; + _MaterialHeaderStyle.fontSize = 11; + _MaterialHeaderStyle.padding.top = 0; + _MaterialHeaderStyle.padding.bottom = 0; + _MaterialHeaderStyle.normal.textColor = EditorGUIUtility.isProSkin ? new Color32(75, 128, 255, 255) : new Color32(0, 50, 230, 255); + _MaterialHeaderStyle.stretchWidth = true; + } + + return _MaterialHeaderStyle; + } + } + + //================================================================================================================================ + // Material Header emboss effect + static public GUIStyle _MaterialHeaderStyleHighlight; + static public GUIStyle MaterialHeaderStyleHighlight + { + get + { + if(_MaterialHeaderStyleHighlight == null) + { + _MaterialHeaderStyleHighlight = new GUIStyle(MaterialHeaderStyle); + _MaterialHeaderStyleHighlight.contentOffset = new Vector2(1, 1); + _MaterialHeaderStyleHighlight.normal.textColor = EditorGUIUtility.isProSkin ? new Color32(255, 255, 255, 16) : new Color32(255, 255, 255, 32); + } + + return _MaterialHeaderStyleHighlight; + } + } + + //================================================================================================================================ + // Filled rectangle + + static private GUIStyle _WhiteRectangleStyle; + + static public void DrawRectangle(Rect position, Color color) + { + var col = GUI.color; + GUI.color *= color; + DrawRectangle(position); + GUI.color = col; + } + static public void DrawRectangle(Rect position) + { + if(_WhiteRectangleStyle == null) + { + _WhiteRectangleStyle = new GUIStyle(); + _WhiteRectangleStyle.normal.background = EditorGUIUtility.whiteTexture; + } + + if(Event.current != null && Event.current.type == EventType.Repaint) + { + _WhiteRectangleStyle.Draw(position, false, false, false, false); + } + } + + //================================================================================================================================ + // Methods + //================================================================================================================================ + + static public void DrawLine(float height = 2f) + { + DrawLine(Color.black, height); + } + static public void DrawLine(Color color, float height = 1f) + { + Rect position = GUILayoutUtility.GetRect(0f, float.MaxValue, height, height, LineStyle); + DrawLine(position, color); + } + static public void DrawLine(Rect position, Color color) + { + if(Event.current.type == EventType.Repaint) + { + Color orgColor = GUI.color; + GUI.color = orgColor * color; + LineStyle.Draw(position, false, false, false, false); + GUI.color = orgColor; + } + } + + static public void MaterialDrawHeader(GUIContent guiContent) + { + var rect = GUILayoutUtility.GetRect(guiContent, MaterialHeaderStyle); + GUI.Label(rect, guiContent, MaterialHeaderStyleHighlight); + GUI.Label(rect, guiContent, MaterialHeaderStyle); + } + + static public void MaterialDrawSeparator() + { + GUILayout.Space(4); + if(EditorGUIUtility.isProSkin) + DrawLine(new Color(.3f, .3f, .3f, 1f), 1); + else + DrawLine(new Color(.6f, .6f, .6f, 1f), 1); + GUILayout.Space(4); + } + + static public void MaterialDrawSeparatorDouble() + { + GUILayout.Space(6); + if(EditorGUIUtility.isProSkin) + { + DrawLine(new Color(.1f, .1f, .1f, 1f), 1); + DrawLine(new Color(.4f, .4f, .4f, 1f), 1); + } + else + { + DrawLine(new Color(.3f, .3f, .3f, 1f), 1); + DrawLine(new Color(.9f, .9f, .9f, 1f), 1); + } + GUILayout.Space(6); + } + + //built-in console icons, also used in help box + static Texture2D warnIcon; + static Texture2D infoIcon; + static Texture2D errorIcon; + + static public void HelpBoxRichText(Rect position, string message, MessageType msgType) + { + Texture2D icon = null; + switch(msgType) + { + case MessageType.Warning: icon = warnIcon ?? (warnIcon = EditorGUIUtility.Load("console.warnicon") as Texture2D); break; + case MessageType.Info: icon = infoIcon ?? (infoIcon = EditorGUIUtility.Load("console.infoicon") as Texture2D); break; + case MessageType.Error: icon = errorIcon ?? (errorIcon = EditorGUIUtility.Load("console.erroricon") as Texture2D); break; + } + EditorGUI.LabelField(position, GUIContent.none, new GUIContent(message, icon), HelpBoxRichTextStyle); + } + + static public void HelpBoxRichText(string message, MessageType msgType) + { + Texture2D icon = null; + switch(msgType) + { + case MessageType.Warning: icon = warnIcon ?? (warnIcon = EditorGUIUtility.Load("console.warnicon") as Texture2D); break; + case MessageType.Info: icon = infoIcon ?? (infoIcon = EditorGUIUtility.Load("console.infoicon") as Texture2D); break; + case MessageType.Error: icon = errorIcon ?? (errorIcon = EditorGUIUtility.Load("console.erroricon") as Texture2D); break; + } + EditorGUILayout.LabelField(GUIContent.none, new GUIContent(message, icon), HelpBoxRichTextStyle); + } + } +} diff --git a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Scripts/CFXR_Effect.CameraShake.cs b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Scripts/CFXR_Effect.CameraShake.cs index d0b6b87..3751988 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Scripts/CFXR_Effect.CameraShake.cs +++ b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Scripts/CFXR_Effect.CameraShake.cs @@ -1,287 +1,287 @@ -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.Rendering; -#if UNITY_EDITOR -using UnityEditor; -#endif - -namespace CartoonFX -{ - public partial class CFXR_Effect : MonoBehaviour - { - [System.Serializable] - public class CameraShake - { - public enum ShakeSpace - { - Screen, - World - } - - static public bool editorPreview = true; - - //-------------------------------------------------------------------------------------------------------------------------------- - - public bool enabled = false; - [Space] - public bool useMainCamera = true; - public List cameras = new List(); - [Space] - public float delay = 0.0f; - public float duration = 1.0f; - public ShakeSpace shakeSpace = ShakeSpace.Screen; - public Vector3 shakeStrength = new Vector3(0.1f, 0.1f, 0.1f); - public AnimationCurve shakeCurve = AnimationCurve.Linear(0, 1, 1, 0); - [Space] - [Range(0, 0.1f)] public float shakesDelay = 0; - - [System.NonSerialized] public bool isShaking; - Dictionary camerasPreRenderPosition = new Dictionary(); - Vector3 shakeVector; - float delaysTimer; - - //-------------------------------------------------------------------------------------------------------------------------------- - // STATIC - // Use static methods to dispatch the Camera callbacks, to ensure that ScreenShake components are called in an order in PreRender, - // and in the _reverse_ order for PostRender, so that the final Camera position is the same as it is originally (allowing concurrent - // screen shake to be active) - - static bool s_CallbackRegistered; - static List s_CameraShakes = new List(); - -#if UNITY_2019_1_OR_NEWER - static void OnPreRenderCamera_Static_URP(ScriptableRenderContext context, Camera cam) - { - OnPreRenderCamera_Static(cam); - } - static void OnPostRenderCamera_Static_URP(ScriptableRenderContext context, Camera cam) - { - OnPostRenderCamera_Static(cam); - } -#endif - - static void OnPreRenderCamera_Static(Camera cam) - { - int count = s_CameraShakes.Count; - for (int i = 0; i < count; i++) - { - var ss = s_CameraShakes[i]; - ss.onPreRenderCamera(cam); - } - } - - static void OnPostRenderCamera_Static(Camera cam) - { - int count = s_CameraShakes.Count; - for (int i = count-1; i >= 0; i--) - { - var ss = s_CameraShakes[i]; - ss.onPostRenderCamera(cam); - } - } - - static void RegisterStaticCallback(CameraShake cameraShake) - { - s_CameraShakes.Add(cameraShake); - - if (!s_CallbackRegistered) - { -#if UNITY_2019_1_OR_NEWER - #if UNITY_2019_3_OR_NEWER - if (GraphicsSettings.currentRenderPipeline == null) - #else - if (GraphicsSettings.renderPipelineAsset == null) - #endif - { - // Built-in Render Pipeline - Camera.onPreRender += OnPreRenderCamera_Static; - Camera.onPostRender += OnPostRenderCamera_Static; - } - else - { - // URP - RenderPipelineManager.beginCameraRendering += OnPreRenderCamera_Static_URP; - RenderPipelineManager.endCameraRendering += OnPostRenderCamera_Static_URP; - } -#else - Camera.onPreRender += OnPreRenderCamera_Static; - Camera.onPostRender += OnPostRenderCamera_Static; -#endif - - s_CallbackRegistered = true; - } - } - - static void UnregisterStaticCallback(CameraShake cameraShake) - { - s_CameraShakes.Remove(cameraShake); - - if (s_CallbackRegistered && s_CameraShakes.Count == 0) - { -#if UNITY_2019_1_OR_NEWER - #if UNITY_2019_3_OR_NEWER - if (GraphicsSettings.currentRenderPipeline == null) - #else - if (GraphicsSettings.renderPipelineAsset == null) - #endif - { - // Built-in Render Pipeline - Camera.onPreRender -= OnPreRenderCamera_Static; - Camera.onPostRender -= OnPostRenderCamera_Static; - } - else - { - // URP - RenderPipelineManager.beginCameraRendering -= OnPreRenderCamera_Static_URP; - RenderPipelineManager.endCameraRendering -= OnPostRenderCamera_Static_URP; - } -#else - Camera.onPreRender -= OnPreRenderCamera_Static; - Camera.onPostRender -= OnPostRenderCamera_Static; -#endif - - s_CallbackRegistered = false; - } - } - - //-------------------------------------------------------------------------------------------------------------------------------- - - void onPreRenderCamera(Camera cam) - { -#if UNITY_EDITOR - //add scene view camera if necessary - if (SceneView.currentDrawingSceneView != null && SceneView.currentDrawingSceneView.camera == cam && !camerasPreRenderPosition.ContainsKey(cam)) - { - camerasPreRenderPosition.Add(cam, cam.transform.localPosition); - } -#endif - - if (isShaking && camerasPreRenderPosition.ContainsKey(cam)) - { - camerasPreRenderPosition[cam] = cam.transform.localPosition; - - if (Time.timeScale <= 0) return; - - switch (shakeSpace) - { - case ShakeSpace.Screen: cam.transform.localPosition += cam.transform.rotation * shakeVector; break; - case ShakeSpace.World: cam.transform.localPosition += shakeVector; break; - } - } - } - - void onPostRenderCamera(Camera cam) - { - if (camerasPreRenderPosition.ContainsKey(cam)) - { - cam.transform.localPosition = camerasPreRenderPosition[cam]; - } - } - - public void fetchCameras() - { -#if UNITY_EDITOR - if (!EditorApplication.isPlayingOrWillChangePlaymode) - { - return; - } -#endif - - foreach (var cam in cameras) - { - if (cam == null) continue; - - camerasPreRenderPosition.Remove(cam); - } - - cameras.Clear(); - - if (useMainCamera && Camera.main != null) - { - cameras.Add(Camera.main); - } - - foreach (var cam in cameras) - { - if (cam == null) continue; - - if (!camerasPreRenderPosition.ContainsKey(cam)) - { - camerasPreRenderPosition.Add(cam, Vector3.zero); - } - } - } - - public void StartShake() - { - if (isShaking) - { - StopShake(); - } - - isShaking = true; - RegisterStaticCallback(this); - } - - public void StopShake() - { - isShaking = false; - shakeVector = Vector3.zero; - UnregisterStaticCallback(this); - } - - public void animate(float time) - { -#if UNITY_EDITOR - if (!editorPreview && !EditorApplication.isPlaying) - { - shakeVector = Vector3.zero; - return; - } -#endif - - float totalDuration = duration + delay; - if (time < totalDuration) - { - if (time < delay) - { - return; - } - - if (!isShaking) - { - this.StartShake(); - } - - // duration of the camera shake - float delta = Mathf.Clamp01(time/totalDuration); - - // delay between each camera move - if (shakesDelay > 0) - { - delaysTimer += Time.deltaTime; - if (delaysTimer < shakesDelay) - { - return; - } - else - { - while (delaysTimer >= shakesDelay) - { - delaysTimer -= shakesDelay; - } - } - } - - var randomVec = new Vector3(Random.value, Random.value, Random.value); - var shakeVec = Vector3.Scale(randomVec, shakeStrength) * (Random.value > 0.5f ? -1 : 1); - shakeVector = shakeVec * shakeCurve.Evaluate(delta) * GLOBAL_CAMERA_SHAKE_MULTIPLIER; - } - else if (isShaking) - { - StopShake(); - } - } - } - } -} +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Rendering; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace CartoonFX +{ + public partial class CFXR_Effect : MonoBehaviour + { + [System.Serializable] + public class CameraShake + { + public enum ShakeSpace + { + Screen, + World + } + + static public bool editorPreview = true; + + //-------------------------------------------------------------------------------------------------------------------------------- + + public bool enabled = false; + [Space] + public bool useMainCamera = true; + public List cameras = new List(); + [Space] + public float delay = 0.0f; + public float duration = 1.0f; + public ShakeSpace shakeSpace = ShakeSpace.Screen; + public Vector3 shakeStrength = new Vector3(0.1f, 0.1f, 0.1f); + public AnimationCurve shakeCurve = AnimationCurve.Linear(0, 1, 1, 0); + [Space] + [Range(0, 0.1f)] public float shakesDelay = 0; + + [System.NonSerialized] public bool isShaking; + Dictionary camerasPreRenderPosition = new Dictionary(); + Vector3 shakeVector; + float delaysTimer; + + //-------------------------------------------------------------------------------------------------------------------------------- + // STATIC + // Use static methods to dispatch the Camera callbacks, to ensure that ScreenShake components are called in an order in PreRender, + // and in the _reverse_ order for PostRender, so that the final Camera position is the same as it is originally (allowing concurrent + // screen shake to be active) + + static bool s_CallbackRegistered; + static List s_CameraShakes = new List(); + +#if UNITY_2019_1_OR_NEWER + static void OnPreRenderCamera_Static_URP(ScriptableRenderContext context, Camera cam) + { + OnPreRenderCamera_Static(cam); + } + static void OnPostRenderCamera_Static_URP(ScriptableRenderContext context, Camera cam) + { + OnPostRenderCamera_Static(cam); + } +#endif + + static void OnPreRenderCamera_Static(Camera cam) + { + int count = s_CameraShakes.Count; + for (int i = 0; i < count; i++) + { + var ss = s_CameraShakes[i]; + ss.onPreRenderCamera(cam); + } + } + + static void OnPostRenderCamera_Static(Camera cam) + { + int count = s_CameraShakes.Count; + for (int i = count-1; i >= 0; i--) + { + var ss = s_CameraShakes[i]; + ss.onPostRenderCamera(cam); + } + } + + static void RegisterStaticCallback(CameraShake cameraShake) + { + s_CameraShakes.Add(cameraShake); + + if (!s_CallbackRegistered) + { +#if UNITY_2019_1_OR_NEWER + #if UNITY_2019_3_OR_NEWER + if (GraphicsSettings.currentRenderPipeline == null) + #else + if (GraphicsSettings.renderPipelineAsset == null) + #endif + { + // Built-in Render Pipeline + Camera.onPreRender += OnPreRenderCamera_Static; + Camera.onPostRender += OnPostRenderCamera_Static; + } + else + { + // URP + RenderPipelineManager.beginCameraRendering += OnPreRenderCamera_Static_URP; + RenderPipelineManager.endCameraRendering += OnPostRenderCamera_Static_URP; + } +#else + Camera.onPreRender += OnPreRenderCamera_Static; + Camera.onPostRender += OnPostRenderCamera_Static; +#endif + + s_CallbackRegistered = true; + } + } + + static void UnregisterStaticCallback(CameraShake cameraShake) + { + s_CameraShakes.Remove(cameraShake); + + if (s_CallbackRegistered && s_CameraShakes.Count == 0) + { +#if UNITY_2019_1_OR_NEWER + #if UNITY_2019_3_OR_NEWER + if (GraphicsSettings.currentRenderPipeline == null) + #else + if (GraphicsSettings.renderPipelineAsset == null) + #endif + { + // Built-in Render Pipeline + Camera.onPreRender -= OnPreRenderCamera_Static; + Camera.onPostRender -= OnPostRenderCamera_Static; + } + else + { + // URP + RenderPipelineManager.beginCameraRendering -= OnPreRenderCamera_Static_URP; + RenderPipelineManager.endCameraRendering -= OnPostRenderCamera_Static_URP; + } +#else + Camera.onPreRender -= OnPreRenderCamera_Static; + Camera.onPostRender -= OnPostRenderCamera_Static; +#endif + + s_CallbackRegistered = false; + } + } + + //-------------------------------------------------------------------------------------------------------------------------------- + + void onPreRenderCamera(Camera cam) + { +#if UNITY_EDITOR + //add scene view camera if necessary + if (SceneView.currentDrawingSceneView != null && SceneView.currentDrawingSceneView.camera == cam && !camerasPreRenderPosition.ContainsKey(cam)) + { + camerasPreRenderPosition.Add(cam, cam.transform.localPosition); + } +#endif + + if (isShaking && camerasPreRenderPosition.ContainsKey(cam)) + { + camerasPreRenderPosition[cam] = cam.transform.localPosition; + + if (Time.timeScale <= 0) return; + + switch (shakeSpace) + { + case ShakeSpace.Screen: cam.transform.localPosition += cam.transform.rotation * shakeVector; break; + case ShakeSpace.World: cam.transform.localPosition += shakeVector; break; + } + } + } + + void onPostRenderCamera(Camera cam) + { + if (camerasPreRenderPosition.ContainsKey(cam)) + { + cam.transform.localPosition = camerasPreRenderPosition[cam]; + } + } + + public void fetchCameras() + { +#if UNITY_EDITOR + if (!EditorApplication.isPlayingOrWillChangePlaymode) + { + return; + } +#endif + + foreach (var cam in cameras) + { + if (cam == null) continue; + + camerasPreRenderPosition.Remove(cam); + } + + cameras.Clear(); + + if (useMainCamera && Camera.main != null) + { + cameras.Add(Camera.main); + } + + foreach (var cam in cameras) + { + if (cam == null) continue; + + if (!camerasPreRenderPosition.ContainsKey(cam)) + { + camerasPreRenderPosition.Add(cam, Vector3.zero); + } + } + } + + public void StartShake() + { + if (isShaking) + { + StopShake(); + } + + isShaking = true; + RegisterStaticCallback(this); + } + + public void StopShake() + { + isShaking = false; + shakeVector = Vector3.zero; + UnregisterStaticCallback(this); + } + + public void animate(float time) + { +#if UNITY_EDITOR + if (!editorPreview && !EditorApplication.isPlaying) + { + shakeVector = Vector3.zero; + return; + } +#endif + + float totalDuration = duration + delay; + if (time < totalDuration) + { + if (time < delay) + { + return; + } + + if (!isShaking) + { + this.StartShake(); + } + + // duration of the camera shake + float delta = Mathf.Clamp01(time/totalDuration); + + // delay between each camera move + if (shakesDelay > 0) + { + delaysTimer += Time.deltaTime; + if (delaysTimer < shakesDelay) + { + return; + } + else + { + while (delaysTimer >= shakesDelay) + { + delaysTimer -= shakesDelay; + } + } + } + + var randomVec = new Vector3(Random.value, Random.value, Random.value); + var shakeVec = Vector3.Scale(randomVec, shakeStrength) * (Random.value > 0.5f ? -1 : 1); + shakeVector = shakeVec * shakeCurve.Evaluate(delta) * GLOBAL_CAMERA_SHAKE_MULTIPLIER; + } + else if (isShaking) + { + StopShake(); + } + } + } + } +} diff --git a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Scripts/CFXR_Effect.cs b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Scripts/CFXR_Effect.cs index 901316d..aec9d7c 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Scripts/CFXR_Effect.cs +++ b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Scripts/CFXR_Effect.cs @@ -1,878 +1,878 @@ -//-------------------------------------------------------------------------------------------------------------------------------- -// Cartoon FX -// (c) 2012-2020 Jean Moreno -//-------------------------------------------------------------------------------------------------------------------------------- - - -//-------------------------------------------------------------------------------------------------------------------------------- - -// Use the defines below to globally disable features: - -//#define DISABLE_CAMERA_SHAKE -//#define DISABLE_LIGHTS -//#define DISABLE_CLEAR_BEHAVIOR - -//-------------------------------------------------------------------------------------------------------------------------------- - -using UnityEngine; -#if UNITY_EDITOR -using UnityEditor; -#endif - -namespace CartoonFX -{ - [RequireComponent(typeof(ParticleSystem))] - [DisallowMultipleComponent] - public partial class CFXR_Effect : MonoBehaviour - { - // Change this value to easily tune the camera shake strength for all effects - const float GLOBAL_CAMERA_SHAKE_MULTIPLIER = 1.0f; - -#if UNITY_EDITOR - [InitializeOnLoadMethod] - static void InitGlobalOptions() - { - AnimatedLight.editorPreview = EditorPrefs.GetBool("CFXR Light EditorPreview", true); - #if !DISABLE_CAMERA_SHAKE - CameraShake.editorPreview = EditorPrefs.GetBool("CFXR CameraShake EditorPreview", true); - #endif - } -#endif - - public enum ClearBehavior - { - None, - Disable, - Destroy - } - - [System.Serializable] - public class AnimatedLight - { - static public bool editorPreview = true; - - public Light light; - - public bool loop; - - public bool animateIntensity; - public float intensityStart = 8f; - public float intensityEnd = 0f; - public float intensityDuration = 0.5f; - public AnimationCurve intensityCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); - public bool perlinIntensity; - public float perlinIntensitySpeed = 1f; - public bool fadeIn; - public float fadeInDuration = 0.5f; - public bool fadeOut; - public float fadeOutDuration = 0.5f; - - public bool animateRange; - public float rangeStart = 8f; - public float rangeEnd = 0f; - public float rangeDuration = 0.5f; - public AnimationCurve rangeCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); - public bool perlinRange; - public float perlinRangeSpeed = 1f; - - public bool animateColor; - public Gradient colorGradient; - public float colorDuration = 0.5f; - public AnimationCurve colorCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); - public bool perlinColor; - public float perlinColorSpeed = 1f; - - public void animate(float time) - { -#if UNITY_EDITOR - if (!editorPreview && !EditorApplication.isPlaying) - { - return; - } -#endif - - if (light != null) - { - if (animateIntensity) - { - float delta = loop ? Mathf.Clamp01((time % intensityDuration)/intensityDuration) : Mathf.Clamp01(time/intensityDuration); - delta = perlinIntensity ? Mathf.PerlinNoise(Time.time * perlinIntensitySpeed, 0f) : intensityCurve.Evaluate(delta); - light.intensity = Mathf.LerpUnclamped(intensityEnd, intensityStart, delta); - - if (fadeIn && time < fadeInDuration) - { - light.intensity *= Mathf.Clamp01(time / fadeInDuration); - } - } - - if (animateRange) - { - float delta = loop ? Mathf.Clamp01((time % rangeDuration)/rangeDuration) : Mathf.Clamp01(time/rangeDuration); - delta = perlinRange ? Mathf.PerlinNoise(Time.time * perlinRangeSpeed, 10f) : rangeCurve.Evaluate(delta); - light.range = Mathf.LerpUnclamped(rangeEnd, rangeStart, delta); - } - - if (animateColor) - { - float delta = loop ? Mathf.Clamp01((time % colorDuration)/colorDuration) : Mathf.Clamp01(time/colorDuration); - delta = perlinColor ? Mathf.PerlinNoise(Time.time * perlinColorSpeed, 0f) : colorCurve.Evaluate(delta); - light.color = colorGradient.Evaluate(delta); - } - } - } - - public void animateFadeOut(float time) - { - if (fadeOut && light != null) - { - light.intensity *= 1.0f - Mathf.Clamp01(time / fadeOutDuration); - } - } - - public void reset() - { - if (light != null) - { - if (animateIntensity) - { - light.intensity = (fadeIn || fadeOut) ? 0 : intensityEnd; - } - - if (animateRange) - { - light.range = rangeEnd; - } - - if (animateColor) - { - light.color = colorGradient.Evaluate(1f); - } - } - } - - #region Animated Light Property Drawer -#if UNITY_EDITOR - [CustomPropertyDrawer(typeof(AnimatedLight))] - public class AnimatedLightDrawer : PropertyDrawer - { - SerializedProperty light; - - SerializedProperty loop; - - SerializedProperty animateIntensity; - SerializedProperty intensityStart; - SerializedProperty intensityEnd; - SerializedProperty intensityDuration; - SerializedProperty intensityCurve; - SerializedProperty perlinIntensity; - SerializedProperty perlinIntensitySpeed; - SerializedProperty fadeIn; - SerializedProperty fadeInDuration; - SerializedProperty fadeOut; - SerializedProperty fadeOutDuration; - - SerializedProperty animateRange; - SerializedProperty rangeStart; - SerializedProperty rangeEnd; - SerializedProperty rangeDuration; - SerializedProperty rangeCurve; - SerializedProperty perlinRange; - SerializedProperty perlinRangeSpeed; - - SerializedProperty animateColor; - SerializedProperty colorGradient; - SerializedProperty colorDuration; - SerializedProperty colorCurve; - SerializedProperty perlinColor; - SerializedProperty perlinColorSpeed; - - void fetchProperties(SerializedProperty property) - { - light = property.FindPropertyRelative("light"); - - loop = property.FindPropertyRelative("loop"); - - animateIntensity = property.FindPropertyRelative("animateIntensity"); - intensityStart = property.FindPropertyRelative("intensityStart"); - intensityEnd = property.FindPropertyRelative("intensityEnd"); - intensityDuration = property.FindPropertyRelative("intensityDuration"); - intensityCurve = property.FindPropertyRelative("intensityCurve"); - perlinIntensity = property.FindPropertyRelative("perlinIntensity"); - perlinIntensitySpeed = property.FindPropertyRelative("perlinIntensitySpeed"); - fadeIn = property.FindPropertyRelative("fadeIn"); - fadeInDuration = property.FindPropertyRelative("fadeInDuration"); - fadeOut = property.FindPropertyRelative("fadeOut"); - fadeOutDuration = property.FindPropertyRelative("fadeOutDuration"); - - animateRange = property.FindPropertyRelative("animateRange"); - rangeStart = property.FindPropertyRelative("rangeStart"); - rangeEnd = property.FindPropertyRelative("rangeEnd"); - rangeDuration = property.FindPropertyRelative("rangeDuration"); - rangeCurve = property.FindPropertyRelative("rangeCurve"); - perlinRange = property.FindPropertyRelative("perlinRange"); - perlinRangeSpeed = property.FindPropertyRelative("perlinRangeSpeed"); - - animateColor = property.FindPropertyRelative("animateColor"); - colorGradient = property.FindPropertyRelative("colorGradient"); - colorDuration = property.FindPropertyRelative("colorDuration"); - colorCurve = property.FindPropertyRelative("colorCurve"); - perlinColor = property.FindPropertyRelative("perlinColor"); - perlinColorSpeed = property.FindPropertyRelative("perlinColorSpeed"); - } - - static GUIContent[] ModePopupLabels = new GUIContent[] { new GUIContent("Curve"), new GUIContent("Perlin Noise") }; - static GUIContent IntensityModeLabel = new GUIContent("Intensity Mode"); - static GUIContent RangeModeLabel = new GUIContent("Range Mode"); - static GUIContent ColorModeLabel = new GUIContent("Color Mode"); - - const float INDENT_WIDTH = 15f; - const float PADDING = 4f; - - void startIndent(ref Rect rect) - { - EditorGUIUtility.labelWidth -= INDENT_WIDTH; - rect.xMin += INDENT_WIDTH; - } - - void endIndent(ref Rect rect) - { - EditorGUIUtility.labelWidth += INDENT_WIDTH; - rect.xMin -= INDENT_WIDTH; - } - - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - fetchProperties(property); - - Rect rect = EditorGUI.IndentedRect(position); - - //Rect lineRect = rect; - //lineRect.height = 1; - //lineRect.y -= 2; - //EditorGUI.DrawRect(lineRect, Color.gray); - - if (Event.current.type == EventType.Repaint) - { - EditorStyles.helpBox.Draw(rect, GUIContent.none, 0); - } - - EditorGUIUtility.labelWidth -= INDENT_WIDTH; - - rect.height = EditorGUIUtility.singleLineHeight; - rect.xMax -= PADDING; - rect.y += PADDING; - float propSpace = EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; - - EditorGUI.PropertyField(rect, light); rect.y += propSpace; - EditorGUI.PropertyField(rect, loop); rect.y += propSpace; - - EditorGUI.PropertyField(rect, animateIntensity); rect.y += propSpace; - if (animateIntensity.boolValue) - { - startIndent(ref rect); - { - - EditorGUI.PropertyField(rect, intensityStart); rect.y += propSpace; - EditorGUI.PropertyField(rect, intensityEnd); rect.y += propSpace; - - int val = EditorGUI.Popup(rect, IntensityModeLabel, perlinIntensity.boolValue ? 1 : 0, ModePopupLabels); rect.y += propSpace; - if (val == 1 && !perlinIntensity.boolValue) - { - perlinIntensity.boolValue = true; - } - else if (val == 0 && perlinIntensity.boolValue) - { - perlinIntensity.boolValue = false; - } - - startIndent(ref rect); - { - if (perlinIntensity.boolValue) - { - EditorGUI.PropertyField(rect, perlinIntensitySpeed); rect.y += propSpace; - } - else - { - EditorGUI.PropertyField(rect, intensityDuration); rect.y += propSpace; - EditorGUI.PropertyField(rect, intensityCurve); rect.y += propSpace; - } - } - endIndent(ref rect); - - EditorGUI.PropertyField(rect, fadeIn); rect.y += propSpace; - if (fadeIn.boolValue) - { - startIndent(ref rect); - EditorGUI.PropertyField(rect, fadeInDuration); rect.y += propSpace; - endIndent(ref rect); - } - - EditorGUI.PropertyField(rect, fadeOut); rect.y += propSpace; - if (fadeOut.boolValue) - { - startIndent(ref rect); - EditorGUI.PropertyField(rect, fadeOutDuration); rect.y += propSpace; - endIndent(ref rect); - } - - } - endIndent(ref rect); - } - - EditorGUI.PropertyField(rect, animateRange); rect.y += propSpace; - if (animateRange.boolValue) - { - startIndent(ref rect); - { - EditorGUI.PropertyField(rect, rangeStart); rect.y += propSpace; - EditorGUI.PropertyField(rect, rangeEnd); rect.y += propSpace; - - int val = EditorGUI.Popup(rect, RangeModeLabel, perlinRange.boolValue ? 1 : 0, ModePopupLabels); rect.y += propSpace; - if (val == 1 && !perlinRange.boolValue) - { - perlinRange.boolValue = true; - } - else if (val == 0 && perlinRange.boolValue) - { - perlinRange.boolValue = false; - } - - startIndent(ref rect); - { - if (perlinRange.boolValue) - { - EditorGUI.PropertyField(rect, perlinRangeSpeed); rect.y += propSpace; - } - else - { - EditorGUI.PropertyField(rect, rangeDuration); rect.y += propSpace; - EditorGUI.PropertyField(rect, rangeCurve); rect.y += propSpace; - } - } - endIndent(ref rect); - } - endIndent(ref rect); - } - - EditorGUI.PropertyField(rect, animateColor); rect.y += propSpace; - if (animateColor.boolValue) - { - startIndent(ref rect); - { - - EditorGUI.PropertyField(rect, colorGradient); rect.y += propSpace; - - int val = EditorGUI.Popup(rect, ColorModeLabel, perlinColor.boolValue ? 1 : 0, ModePopupLabels); rect.y += propSpace; - if (val == 1 && !perlinColor.boolValue) - { - perlinColor.boolValue = true; - } - else if (val == 0 && perlinColor.boolValue) - { - perlinColor.boolValue = false; - } - - startIndent(ref rect); - { - - if (perlinColor.boolValue) - { - EditorGUI.PropertyField(rect, perlinColorSpeed); rect.y += propSpace; - } - else - { - EditorGUI.PropertyField(rect, colorDuration); rect.y += propSpace; - EditorGUI.PropertyField(rect, colorCurve); rect.y += propSpace; - } - } - endIndent(ref rect); - } - endIndent(ref rect); - } - - EditorGUIUtility.labelWidth += INDENT_WIDTH; - - if (GUI.changed) - { - property.serializedObject.ApplyModifiedProperties(); - } - } - - public override float GetPropertyHeight(SerializedProperty property, GUIContent label) - { - fetchProperties(property); - - float propSpace = EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; - int count = 5; - - if (animateIntensity.boolValue) - { - count += 3; - count += perlinIntensity.boolValue ? 1 : 2; - count += 1; - count += fadeIn.boolValue ? 1 : 0; - count += 1; - count += fadeOut.boolValue ? 1 : 0; - } - - if (animateRange.boolValue) - { - count += 3; - count += perlinRange.boolValue ? 1 : 2; - } - - if (animateColor.boolValue) - { - count += 2; - count += perlinColor.boolValue ? 1 : 2; - } - - return count * propSpace + PADDING * 2; - } - } -#endif - #endregion - - } - - // ================================================================================================================================ - - // Globally disable features - public static bool GlobalDisableCameraShake; - public static bool GlobalDisableLights; - - // ================================================================================================================================ - - [Tooltip("Defines an action to execute when the Particle System has completely finished playing and emitting particles.")] - public ClearBehavior clearBehavior = ClearBehavior.Destroy; - [Space] - public CameraShake cameraShake; - [Space] - public AnimatedLight[] animatedLights; - [Tooltip("Defines which Particle System to track to trigger light fading out.\nLeave empty if not using fading out.")] - public ParticleSystem fadeOutReference; - - float time; - ParticleSystem rootParticleSystem; - [System.NonSerialized] MaterialPropertyBlock materialPropertyBlock; - [System.NonSerialized] Renderer particleRenderer; - - // ================================================================================================================================ - - public void ResetState() - { - time = 0f; - fadingOutStartTime = 0f; - isFadingOut = false; - -#if !DISABLE_LIGHTS - if (animatedLights != null) - { - foreach (var animLight in animatedLights) - { - animLight.reset(); - } - } -#endif - -#if !DISABLE_CAMERA_SHAKE - if (cameraShake != null && cameraShake.enabled) - { - cameraShake.StopShake(); - } -#endif - } - -#if !DISABLE_CAMERA_SHAKE || !DISABLE_CLEAR_BEHAVIOR - void Awake() - { - #if !DISABLE_CAMERA_SHAKE - if (cameraShake != null && cameraShake.enabled) - { - cameraShake.fetchCameras(); - } - #endif - #if !DISABLE_CLEAR_BEHAVIOR - startFrameOffset = GlobalStartFrameOffset++; -#endif - // Detect if world position needs to be passed to the shader - particleRenderer = this.GetComponent(); - if (particleRenderer.sharedMaterial != null && particleRenderer.sharedMaterial.IsKeywordEnabled("_CFXR_LIGHTING_WPOS_OFFSET")) - { - materialPropertyBlock = new MaterialPropertyBlock(); - } - } -#endif - - void OnEnable() - { - foreach (var animLight in animatedLights) - { - if (animLight.light != null) - { -#if !DISABLE_LIGHTS - animLight.light.enabled = !GlobalDisableLights; -#else - animLight.light.enabled = false; -#endif - } - } - } - - void OnDisable() - { - ResetState(); - } - -#if !DISABLE_LIGHTS || !DISABLE_CAMERA_SHAKE || !DISABLE_CLEAR_BEHAVIOR - const int CHECK_EVERY_N_FRAME = 20; - static int GlobalStartFrameOffset = 0; - int startFrameOffset; - void Update() - { -#if !DISABLE_LIGHTS || !DISABLE_CAMERA_SHAKE - time += Time.deltaTime; - - Animate(time); - - if (fadeOutReference != null && !fadeOutReference.isEmitting && (fadeOutReference.isPlaying || isFadingOut)) - { - FadeOut(time); - } -#endif -#if !DISABLE_CLEAR_BEHAVIOR - if (clearBehavior != ClearBehavior.None) - { - if (rootParticleSystem == null) - { - rootParticleSystem = this.GetComponent(); - } - - // Check isAlive every N frame, with an offset so that all active effects aren't checked at once - if ((Time.renderedFrameCount + startFrameOffset) % CHECK_EVERY_N_FRAME == 0) - { - if (!rootParticleSystem.IsAlive(true)) - { - if (clearBehavior == ClearBehavior.Destroy) - { - GameObject.Destroy(this.gameObject); - } - else - { - this.gameObject.SetActive(false); - } - } - } - } -#endif - if (materialPropertyBlock != null) - { - particleRenderer.GetPropertyBlock(materialPropertyBlock); - materialPropertyBlock.SetVector("_GameObjectWorldPosition", this.transform.position); - particleRenderer.SetPropertyBlock(materialPropertyBlock); - } - } -#endif - -#if !DISABLE_LIGHTS || !DISABLE_CAMERA_SHAKE - public void Animate(float time) - { -#if !DISABLE_LIGHTS - if (animatedLights != null && !GlobalDisableLights) - { - foreach (var animLight in animatedLights) - { - animLight.animate(time); - } - } -#endif - -#if !DISABLE_CAMERA_SHAKE - if (cameraShake != null && cameraShake.enabled && !GlobalDisableCameraShake) - { -#if UNITY_EDITOR - if (!cameraShake.isShaking) - { - cameraShake.fetchCameras(); - } -#endif - cameraShake.animate(time); - } -#endif - } -#endif - -#if !DISABLE_LIGHTS - bool isFadingOut; - float fadingOutStartTime; - public void FadeOut(float time) - { - if (animatedLights == null) - { - return; - } - - if (!isFadingOut) - { - isFadingOut = true; - fadingOutStartTime = time; - } - - foreach (var animLight in animatedLights) - { - animLight.animateFadeOut(time - fadingOutStartTime); - } - } -#endif - -#if UNITY_EDITOR - // Editor preview - // Detect when the Particle System is previewing and trigger this animation too - - [System.NonSerialized] ParticleSystem _parentParticle; - ParticleSystem parentParticle - { - get - { - if (_parentParticle == null) - { - _parentParticle = this.GetComponent(); - } - return _parentParticle; - } - } - [System.NonSerialized] public bool editorUpdateRegistered; - - [System.NonSerialized] bool particleWasStopped; - [System.NonSerialized] float particleTime; - [System.NonSerialized] float particleTimeUnwrapped; - - void OnDestroy() - { - UnregisterEditorUpdate(); - } - - public void RegisterEditorUpdate() - { - var type = PrefabUtility.GetPrefabAssetType(this.gameObject); - var status = PrefabUtility.GetPrefabInstanceStatus(this.gameObject); - - // Prefab in Project window - if ((type == PrefabAssetType.Regular || type == PrefabAssetType.Variant) && status == PrefabInstanceStatus.NotAPrefab) - { - return; - } - - if (!editorUpdateRegistered) - { - EditorApplication.update += onEditorUpdate; - editorUpdateRegistered = true; - } - } - - public void UnregisterEditorUpdate() - { - if (editorUpdateRegistered) - { - editorUpdateRegistered = false; - EditorApplication.update -= onEditorUpdate; - } - ResetState(); - } - - void onEditorUpdate() - { - if (EditorApplication.isPlayingOrWillChangePlaymode) - { - return; - } - - if (this == null) - { - return; - } - - var renderer = this.GetComponent(); - if (renderer.sharedMaterial != null && renderer.sharedMaterial.IsKeywordEnabled("_CFXR_LIGHTING_WPOS_OFFSET")) - { - if (materialPropertyBlock == null) - { - materialPropertyBlock = new MaterialPropertyBlock(); - } - - renderer.GetPropertyBlock(materialPropertyBlock); - materialPropertyBlock.SetVector("_GameObjectWorldPosition", this.transform.position); - renderer.SetPropertyBlock(materialPropertyBlock); - } - - // Need to track unwrapped time when playing back from Editor - // because the parentParticle.time will be reset at each loop - float delta = parentParticle.time - particleTime; - - if (delta < 0 && parentParticle.isPlaying) - { - delta = parentParticle.main.duration + delta; - if (delta > 0.1 || delta < 0) - { - // try to detect when "Restart" is pressed - ResetState(); - particleTimeUnwrapped = 0; - delta = 0; - } - } - particleTimeUnwrapped += delta; - - if (particleTime != parentParticle.time) - { -#if !DISABLE_CAMERA_SHAKE - if (cameraShake != null && cameraShake.enabled && parentParticle.time < particleTime && parentParticle.time < 0.05f) - { - cameraShake.StartShake(); - } -#endif -#if !DISABLE_LIGHTS || !DISABLE_CAMERA_SHAKES - Animate(particleTimeUnwrapped); - - if (!parentParticle.isEmitting) - { - FadeOut(particleTimeUnwrapped); - } -#endif - } - - if (particleWasStopped != parentParticle.isStopped) - { - if (parentParticle.isStopped) - { - ResetState(); - } - particleTimeUnwrapped = 0; - } - - particleWasStopped = parentParticle.isStopped; - particleTime = parentParticle.time; - } -#endif - } - -#if UNITY_EDITOR - [CustomEditor(typeof(CFXR_Effect))] - [CanEditMultipleObjects] - public class CFXR_Effect_Editor : Editor - { - bool? lightEditorPreview; - bool? shakeEditorPreview; - - GUIStyle _PaddedRoundedRect; - GUIStyle PaddedRoundedRect - { - get - { - if (_PaddedRoundedRect == null) - { - _PaddedRoundedRect = new GUIStyle(EditorStyles.helpBox); - _PaddedRoundedRect.padding = new RectOffset(4, 4, 4, 4); - } - return _PaddedRoundedRect; - } - } - - public override void OnInspectorGUI() - { - GlobalOptionsGUI(); - -#if DISABLE_CAMERA_SHAKE - EditorGUILayout.HelpBox("Camera Shake has been globally disabled in the code.\nThe properties remain to avoid data loss but the shaking won't be applied for any effect.", MessageType.Info); -#endif - - base.OnInspectorGUI(); - } - - void GlobalOptionsGUI() - { - EditorGUILayout.BeginVertical(PaddedRoundedRect); - { - GUILayout.Label("Editor Preview:", EditorStyles.boldLabel); - - if (lightEditorPreview == null) - { - lightEditorPreview = EditorPrefs.GetBool("CFXR Light EditorPreview", true); - } - bool lightPreview = EditorGUILayout.Toggle("Light Animations", lightEditorPreview.Value); - if (lightPreview != lightEditorPreview.Value) - { - lightEditorPreview = lightPreview; - EditorPrefs.SetBool("CFXR Light EditorPreview", lightPreview); - CFXR_Effect.AnimatedLight.editorPreview = lightPreview; - } - -#if !DISABLE_CAMERA_SHAKE - if (shakeEditorPreview == null) - { - shakeEditorPreview = EditorPrefs.GetBool("CFXR CameraShake EditorPreview", true); - } - bool shakePreview = EditorGUILayout.Toggle("Camera Shake", shakeEditorPreview.Value); - if (shakePreview != shakeEditorPreview.Value) - { - shakeEditorPreview = shakePreview; - EditorPrefs.SetBool("CFXR CameraShake EditorPreview", shakePreview); - CFXR_Effect.CameraShake.editorPreview = shakePreview; - } -#endif - } - EditorGUILayout.EndVertical(); - } - - void OnEnable() - { - if (this.targets == null) - { - return; - } - - foreach (var t in this.targets) - { - var cfxr_effect = t as CFXR_Effect; - if (cfxr_effect != null) - { - if (isPrefabSource(cfxr_effect.gameObject)) - { - return; - } - cfxr_effect.RegisterEditorUpdate(); - } - } - } - - void OnDisable() - { - if (this.targets == null) - { - return; - } - - foreach (var t in this.targets) - { - // Can be null if GameObject has been destroyed - var cfxr_effect = t as CFXR_Effect; - if (cfxr_effect != null) - { - if (isPrefabSource(cfxr_effect.gameObject)) - { - return; - } - cfxr_effect.UnregisterEditorUpdate(); - } - } - } - - static bool isPrefabSource(GameObject gameObject) - { - var assetType = PrefabUtility.GetPrefabAssetType(gameObject); - var prefabType = PrefabUtility.GetPrefabInstanceStatus(gameObject); - return ((assetType == PrefabAssetType.Regular || assetType == PrefabAssetType.Variant) && prefabType == PrefabInstanceStatus.NotAPrefab); - } - } -#endif -} +//-------------------------------------------------------------------------------------------------------------------------------- +// Cartoon FX +// (c) 2012-2020 Jean Moreno +//-------------------------------------------------------------------------------------------------------------------------------- + + +//-------------------------------------------------------------------------------------------------------------------------------- + +// Use the defines below to globally disable features: + +//#define DISABLE_CAMERA_SHAKE +//#define DISABLE_LIGHTS +//#define DISABLE_CLEAR_BEHAVIOR + +//-------------------------------------------------------------------------------------------------------------------------------- + +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace CartoonFX +{ + [RequireComponent(typeof(ParticleSystem))] + [DisallowMultipleComponent] + public partial class CFXR_Effect : MonoBehaviour + { + // Change this value to easily tune the camera shake strength for all effects + const float GLOBAL_CAMERA_SHAKE_MULTIPLIER = 1.0f; + +#if UNITY_EDITOR + [InitializeOnLoadMethod] + static void InitGlobalOptions() + { + AnimatedLight.editorPreview = EditorPrefs.GetBool("CFXR Light EditorPreview", true); + #if !DISABLE_CAMERA_SHAKE + CameraShake.editorPreview = EditorPrefs.GetBool("CFXR CameraShake EditorPreview", true); + #endif + } +#endif + + public enum ClearBehavior + { + None, + Disable, + Destroy + } + + [System.Serializable] + public class AnimatedLight + { + static public bool editorPreview = true; + + public Light light; + + public bool loop; + + public bool animateIntensity; + public float intensityStart = 8f; + public float intensityEnd = 0f; + public float intensityDuration = 0.5f; + public AnimationCurve intensityCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); + public bool perlinIntensity; + public float perlinIntensitySpeed = 1f; + public bool fadeIn; + public float fadeInDuration = 0.5f; + public bool fadeOut; + public float fadeOutDuration = 0.5f; + + public bool animateRange; + public float rangeStart = 8f; + public float rangeEnd = 0f; + public float rangeDuration = 0.5f; + public AnimationCurve rangeCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); + public bool perlinRange; + public float perlinRangeSpeed = 1f; + + public bool animateColor; + public Gradient colorGradient; + public float colorDuration = 0.5f; + public AnimationCurve colorCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); + public bool perlinColor; + public float perlinColorSpeed = 1f; + + public void animate(float time) + { +#if UNITY_EDITOR + if (!editorPreview && !EditorApplication.isPlaying) + { + return; + } +#endif + + if (light != null) + { + if (animateIntensity) + { + float delta = loop ? Mathf.Clamp01((time % intensityDuration)/intensityDuration) : Mathf.Clamp01(time/intensityDuration); + delta = perlinIntensity ? Mathf.PerlinNoise(Time.time * perlinIntensitySpeed, 0f) : intensityCurve.Evaluate(delta); + light.intensity = Mathf.LerpUnclamped(intensityEnd, intensityStart, delta); + + if (fadeIn && time < fadeInDuration) + { + light.intensity *= Mathf.Clamp01(time / fadeInDuration); + } + } + + if (animateRange) + { + float delta = loop ? Mathf.Clamp01((time % rangeDuration)/rangeDuration) : Mathf.Clamp01(time/rangeDuration); + delta = perlinRange ? Mathf.PerlinNoise(Time.time * perlinRangeSpeed, 10f) : rangeCurve.Evaluate(delta); + light.range = Mathf.LerpUnclamped(rangeEnd, rangeStart, delta); + } + + if (animateColor) + { + float delta = loop ? Mathf.Clamp01((time % colorDuration)/colorDuration) : Mathf.Clamp01(time/colorDuration); + delta = perlinColor ? Mathf.PerlinNoise(Time.time * perlinColorSpeed, 0f) : colorCurve.Evaluate(delta); + light.color = colorGradient.Evaluate(delta); + } + } + } + + public void animateFadeOut(float time) + { + if (fadeOut && light != null) + { + light.intensity *= 1.0f - Mathf.Clamp01(time / fadeOutDuration); + } + } + + public void reset() + { + if (light != null) + { + if (animateIntensity) + { + light.intensity = (fadeIn || fadeOut) ? 0 : intensityEnd; + } + + if (animateRange) + { + light.range = rangeEnd; + } + + if (animateColor) + { + light.color = colorGradient.Evaluate(1f); + } + } + } + + #region Animated Light Property Drawer +#if UNITY_EDITOR + [CustomPropertyDrawer(typeof(AnimatedLight))] + public class AnimatedLightDrawer : PropertyDrawer + { + SerializedProperty light; + + SerializedProperty loop; + + SerializedProperty animateIntensity; + SerializedProperty intensityStart; + SerializedProperty intensityEnd; + SerializedProperty intensityDuration; + SerializedProperty intensityCurve; + SerializedProperty perlinIntensity; + SerializedProperty perlinIntensitySpeed; + SerializedProperty fadeIn; + SerializedProperty fadeInDuration; + SerializedProperty fadeOut; + SerializedProperty fadeOutDuration; + + SerializedProperty animateRange; + SerializedProperty rangeStart; + SerializedProperty rangeEnd; + SerializedProperty rangeDuration; + SerializedProperty rangeCurve; + SerializedProperty perlinRange; + SerializedProperty perlinRangeSpeed; + + SerializedProperty animateColor; + SerializedProperty colorGradient; + SerializedProperty colorDuration; + SerializedProperty colorCurve; + SerializedProperty perlinColor; + SerializedProperty perlinColorSpeed; + + void fetchProperties(SerializedProperty property) + { + light = property.FindPropertyRelative("light"); + + loop = property.FindPropertyRelative("loop"); + + animateIntensity = property.FindPropertyRelative("animateIntensity"); + intensityStart = property.FindPropertyRelative("intensityStart"); + intensityEnd = property.FindPropertyRelative("intensityEnd"); + intensityDuration = property.FindPropertyRelative("intensityDuration"); + intensityCurve = property.FindPropertyRelative("intensityCurve"); + perlinIntensity = property.FindPropertyRelative("perlinIntensity"); + perlinIntensitySpeed = property.FindPropertyRelative("perlinIntensitySpeed"); + fadeIn = property.FindPropertyRelative("fadeIn"); + fadeInDuration = property.FindPropertyRelative("fadeInDuration"); + fadeOut = property.FindPropertyRelative("fadeOut"); + fadeOutDuration = property.FindPropertyRelative("fadeOutDuration"); + + animateRange = property.FindPropertyRelative("animateRange"); + rangeStart = property.FindPropertyRelative("rangeStart"); + rangeEnd = property.FindPropertyRelative("rangeEnd"); + rangeDuration = property.FindPropertyRelative("rangeDuration"); + rangeCurve = property.FindPropertyRelative("rangeCurve"); + perlinRange = property.FindPropertyRelative("perlinRange"); + perlinRangeSpeed = property.FindPropertyRelative("perlinRangeSpeed"); + + animateColor = property.FindPropertyRelative("animateColor"); + colorGradient = property.FindPropertyRelative("colorGradient"); + colorDuration = property.FindPropertyRelative("colorDuration"); + colorCurve = property.FindPropertyRelative("colorCurve"); + perlinColor = property.FindPropertyRelative("perlinColor"); + perlinColorSpeed = property.FindPropertyRelative("perlinColorSpeed"); + } + + static GUIContent[] ModePopupLabels = new GUIContent[] { new GUIContent("Curve"), new GUIContent("Perlin Noise") }; + static GUIContent IntensityModeLabel = new GUIContent("Intensity Mode"); + static GUIContent RangeModeLabel = new GUIContent("Range Mode"); + static GUIContent ColorModeLabel = new GUIContent("Color Mode"); + + const float INDENT_WIDTH = 15f; + const float PADDING = 4f; + + void startIndent(ref Rect rect) + { + EditorGUIUtility.labelWidth -= INDENT_WIDTH; + rect.xMin += INDENT_WIDTH; + } + + void endIndent(ref Rect rect) + { + EditorGUIUtility.labelWidth += INDENT_WIDTH; + rect.xMin -= INDENT_WIDTH; + } + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + fetchProperties(property); + + Rect rect = EditorGUI.IndentedRect(position); + + //Rect lineRect = rect; + //lineRect.height = 1; + //lineRect.y -= 2; + //EditorGUI.DrawRect(lineRect, Color.gray); + + if (Event.current.type == EventType.Repaint) + { + EditorStyles.helpBox.Draw(rect, GUIContent.none, 0); + } + + EditorGUIUtility.labelWidth -= INDENT_WIDTH; + + rect.height = EditorGUIUtility.singleLineHeight; + rect.xMax -= PADDING; + rect.y += PADDING; + float propSpace = EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; + + EditorGUI.PropertyField(rect, light); rect.y += propSpace; + EditorGUI.PropertyField(rect, loop); rect.y += propSpace; + + EditorGUI.PropertyField(rect, animateIntensity); rect.y += propSpace; + if (animateIntensity.boolValue) + { + startIndent(ref rect); + { + + EditorGUI.PropertyField(rect, intensityStart); rect.y += propSpace; + EditorGUI.PropertyField(rect, intensityEnd); rect.y += propSpace; + + int val = EditorGUI.Popup(rect, IntensityModeLabel, perlinIntensity.boolValue ? 1 : 0, ModePopupLabels); rect.y += propSpace; + if (val == 1 && !perlinIntensity.boolValue) + { + perlinIntensity.boolValue = true; + } + else if (val == 0 && perlinIntensity.boolValue) + { + perlinIntensity.boolValue = false; + } + + startIndent(ref rect); + { + if (perlinIntensity.boolValue) + { + EditorGUI.PropertyField(rect, perlinIntensitySpeed); rect.y += propSpace; + } + else + { + EditorGUI.PropertyField(rect, intensityDuration); rect.y += propSpace; + EditorGUI.PropertyField(rect, intensityCurve); rect.y += propSpace; + } + } + endIndent(ref rect); + + EditorGUI.PropertyField(rect, fadeIn); rect.y += propSpace; + if (fadeIn.boolValue) + { + startIndent(ref rect); + EditorGUI.PropertyField(rect, fadeInDuration); rect.y += propSpace; + endIndent(ref rect); + } + + EditorGUI.PropertyField(rect, fadeOut); rect.y += propSpace; + if (fadeOut.boolValue) + { + startIndent(ref rect); + EditorGUI.PropertyField(rect, fadeOutDuration); rect.y += propSpace; + endIndent(ref rect); + } + + } + endIndent(ref rect); + } + + EditorGUI.PropertyField(rect, animateRange); rect.y += propSpace; + if (animateRange.boolValue) + { + startIndent(ref rect); + { + EditorGUI.PropertyField(rect, rangeStart); rect.y += propSpace; + EditorGUI.PropertyField(rect, rangeEnd); rect.y += propSpace; + + int val = EditorGUI.Popup(rect, RangeModeLabel, perlinRange.boolValue ? 1 : 0, ModePopupLabels); rect.y += propSpace; + if (val == 1 && !perlinRange.boolValue) + { + perlinRange.boolValue = true; + } + else if (val == 0 && perlinRange.boolValue) + { + perlinRange.boolValue = false; + } + + startIndent(ref rect); + { + if (perlinRange.boolValue) + { + EditorGUI.PropertyField(rect, perlinRangeSpeed); rect.y += propSpace; + } + else + { + EditorGUI.PropertyField(rect, rangeDuration); rect.y += propSpace; + EditorGUI.PropertyField(rect, rangeCurve); rect.y += propSpace; + } + } + endIndent(ref rect); + } + endIndent(ref rect); + } + + EditorGUI.PropertyField(rect, animateColor); rect.y += propSpace; + if (animateColor.boolValue) + { + startIndent(ref rect); + { + + EditorGUI.PropertyField(rect, colorGradient); rect.y += propSpace; + + int val = EditorGUI.Popup(rect, ColorModeLabel, perlinColor.boolValue ? 1 : 0, ModePopupLabels); rect.y += propSpace; + if (val == 1 && !perlinColor.boolValue) + { + perlinColor.boolValue = true; + } + else if (val == 0 && perlinColor.boolValue) + { + perlinColor.boolValue = false; + } + + startIndent(ref rect); + { + + if (perlinColor.boolValue) + { + EditorGUI.PropertyField(rect, perlinColorSpeed); rect.y += propSpace; + } + else + { + EditorGUI.PropertyField(rect, colorDuration); rect.y += propSpace; + EditorGUI.PropertyField(rect, colorCurve); rect.y += propSpace; + } + } + endIndent(ref rect); + } + endIndent(ref rect); + } + + EditorGUIUtility.labelWidth += INDENT_WIDTH; + + if (GUI.changed) + { + property.serializedObject.ApplyModifiedProperties(); + } + } + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + fetchProperties(property); + + float propSpace = EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; + int count = 5; + + if (animateIntensity.boolValue) + { + count += 3; + count += perlinIntensity.boolValue ? 1 : 2; + count += 1; + count += fadeIn.boolValue ? 1 : 0; + count += 1; + count += fadeOut.boolValue ? 1 : 0; + } + + if (animateRange.boolValue) + { + count += 3; + count += perlinRange.boolValue ? 1 : 2; + } + + if (animateColor.boolValue) + { + count += 2; + count += perlinColor.boolValue ? 1 : 2; + } + + return count * propSpace + PADDING * 2; + } + } +#endif + #endregion + + } + + // ================================================================================================================================ + + // Globally disable features + public static bool GlobalDisableCameraShake; + public static bool GlobalDisableLights; + + // ================================================================================================================================ + + [Tooltip("Defines an action to execute when the Particle System has completely finished playing and emitting particles.")] + public ClearBehavior clearBehavior = ClearBehavior.Destroy; + [Space] + public CameraShake cameraShake; + [Space] + public AnimatedLight[] animatedLights; + [Tooltip("Defines which Particle System to track to trigger light fading out.\nLeave empty if not using fading out.")] + public ParticleSystem fadeOutReference; + + float time; + ParticleSystem rootParticleSystem; + [System.NonSerialized] MaterialPropertyBlock materialPropertyBlock; + [System.NonSerialized] Renderer particleRenderer; + + // ================================================================================================================================ + + public void ResetState() + { + time = 0f; + fadingOutStartTime = 0f; + isFadingOut = false; + +#if !DISABLE_LIGHTS + if (animatedLights != null) + { + foreach (var animLight in animatedLights) + { + animLight.reset(); + } + } +#endif + +#if !DISABLE_CAMERA_SHAKE + if (cameraShake != null && cameraShake.enabled) + { + cameraShake.StopShake(); + } +#endif + } + +#if !DISABLE_CAMERA_SHAKE || !DISABLE_CLEAR_BEHAVIOR + void Awake() + { + #if !DISABLE_CAMERA_SHAKE + if (cameraShake != null && cameraShake.enabled) + { + cameraShake.fetchCameras(); + } + #endif + #if !DISABLE_CLEAR_BEHAVIOR + startFrameOffset = GlobalStartFrameOffset++; +#endif + // Detect if world position needs to be passed to the shader + particleRenderer = this.GetComponent(); + if (particleRenderer.sharedMaterial != null && particleRenderer.sharedMaterial.IsKeywordEnabled("_CFXR_LIGHTING_WPOS_OFFSET")) + { + materialPropertyBlock = new MaterialPropertyBlock(); + } + } +#endif + + void OnEnable() + { + foreach (var animLight in animatedLights) + { + if (animLight.light != null) + { +#if !DISABLE_LIGHTS + animLight.light.enabled = !GlobalDisableLights; +#else + animLight.light.enabled = false; +#endif + } + } + } + + void OnDisable() + { + ResetState(); + } + +#if !DISABLE_LIGHTS || !DISABLE_CAMERA_SHAKE || !DISABLE_CLEAR_BEHAVIOR + const int CHECK_EVERY_N_FRAME = 20; + static int GlobalStartFrameOffset = 0; + int startFrameOffset; + void Update() + { +#if !DISABLE_LIGHTS || !DISABLE_CAMERA_SHAKE + time += Time.deltaTime; + + Animate(time); + + if (fadeOutReference != null && !fadeOutReference.isEmitting && (fadeOutReference.isPlaying || isFadingOut)) + { + FadeOut(time); + } +#endif +#if !DISABLE_CLEAR_BEHAVIOR + if (clearBehavior != ClearBehavior.None) + { + if (rootParticleSystem == null) + { + rootParticleSystem = this.GetComponent(); + } + + // Check isAlive every N frame, with an offset so that all active effects aren't checked at once + if ((Time.renderedFrameCount + startFrameOffset) % CHECK_EVERY_N_FRAME == 0) + { + if (!rootParticleSystem.IsAlive(true)) + { + if (clearBehavior == ClearBehavior.Destroy) + { + GameObject.Destroy(this.gameObject); + } + else + { + this.gameObject.SetActive(false); + } + } + } + } +#endif + if (materialPropertyBlock != null) + { + particleRenderer.GetPropertyBlock(materialPropertyBlock); + materialPropertyBlock.SetVector("_GameObjectWorldPosition", this.transform.position); + particleRenderer.SetPropertyBlock(materialPropertyBlock); + } + } +#endif + +#if !DISABLE_LIGHTS || !DISABLE_CAMERA_SHAKE + public void Animate(float time) + { +#if !DISABLE_LIGHTS + if (animatedLights != null && !GlobalDisableLights) + { + foreach (var animLight in animatedLights) + { + animLight.animate(time); + } + } +#endif + +#if !DISABLE_CAMERA_SHAKE + if (cameraShake != null && cameraShake.enabled && !GlobalDisableCameraShake) + { +#if UNITY_EDITOR + if (!cameraShake.isShaking) + { + cameraShake.fetchCameras(); + } +#endif + cameraShake.animate(time); + } +#endif + } +#endif + +#if !DISABLE_LIGHTS + bool isFadingOut; + float fadingOutStartTime; + public void FadeOut(float time) + { + if (animatedLights == null) + { + return; + } + + if (!isFadingOut) + { + isFadingOut = true; + fadingOutStartTime = time; + } + + foreach (var animLight in animatedLights) + { + animLight.animateFadeOut(time - fadingOutStartTime); + } + } +#endif + +#if UNITY_EDITOR + // Editor preview + // Detect when the Particle System is previewing and trigger this animation too + + [System.NonSerialized] ParticleSystem _parentParticle; + ParticleSystem parentParticle + { + get + { + if (_parentParticle == null) + { + _parentParticle = this.GetComponent(); + } + return _parentParticle; + } + } + [System.NonSerialized] public bool editorUpdateRegistered; + + [System.NonSerialized] bool particleWasStopped; + [System.NonSerialized] float particleTime; + [System.NonSerialized] float particleTimeUnwrapped; + + void OnDestroy() + { + UnregisterEditorUpdate(); + } + + public void RegisterEditorUpdate() + { + var type = PrefabUtility.GetPrefabAssetType(this.gameObject); + var status = PrefabUtility.GetPrefabInstanceStatus(this.gameObject); + + // Prefab in Project window + if ((type == PrefabAssetType.Regular || type == PrefabAssetType.Variant) && status == PrefabInstanceStatus.NotAPrefab) + { + return; + } + + if (!editorUpdateRegistered) + { + EditorApplication.update += onEditorUpdate; + editorUpdateRegistered = true; + } + } + + public void UnregisterEditorUpdate() + { + if (editorUpdateRegistered) + { + editorUpdateRegistered = false; + EditorApplication.update -= onEditorUpdate; + } + ResetState(); + } + + void onEditorUpdate() + { + if (EditorApplication.isPlayingOrWillChangePlaymode) + { + return; + } + + if (this == null) + { + return; + } + + var renderer = this.GetComponent(); + if (renderer.sharedMaterial != null && renderer.sharedMaterial.IsKeywordEnabled("_CFXR_LIGHTING_WPOS_OFFSET")) + { + if (materialPropertyBlock == null) + { + materialPropertyBlock = new MaterialPropertyBlock(); + } + + renderer.GetPropertyBlock(materialPropertyBlock); + materialPropertyBlock.SetVector("_GameObjectWorldPosition", this.transform.position); + renderer.SetPropertyBlock(materialPropertyBlock); + } + + // Need to track unwrapped time when playing back from Editor + // because the parentParticle.time will be reset at each loop + float delta = parentParticle.time - particleTime; + + if (delta < 0 && parentParticle.isPlaying) + { + delta = parentParticle.main.duration + delta; + if (delta > 0.1 || delta < 0) + { + // try to detect when "Restart" is pressed + ResetState(); + particleTimeUnwrapped = 0; + delta = 0; + } + } + particleTimeUnwrapped += delta; + + if (particleTime != parentParticle.time) + { +#if !DISABLE_CAMERA_SHAKE + if (cameraShake != null && cameraShake.enabled && parentParticle.time < particleTime && parentParticle.time < 0.05f) + { + cameraShake.StartShake(); + } +#endif +#if !DISABLE_LIGHTS || !DISABLE_CAMERA_SHAKES + Animate(particleTimeUnwrapped); + + if (!parentParticle.isEmitting) + { + FadeOut(particleTimeUnwrapped); + } +#endif + } + + if (particleWasStopped != parentParticle.isStopped) + { + if (parentParticle.isStopped) + { + ResetState(); + } + particleTimeUnwrapped = 0; + } + + particleWasStopped = parentParticle.isStopped; + particleTime = parentParticle.time; + } +#endif + } + +#if UNITY_EDITOR + [CustomEditor(typeof(CFXR_Effect))] + [CanEditMultipleObjects] + public class CFXR_Effect_Editor : Editor + { + bool? lightEditorPreview; + bool? shakeEditorPreview; + + GUIStyle _PaddedRoundedRect; + GUIStyle PaddedRoundedRect + { + get + { + if (_PaddedRoundedRect == null) + { + _PaddedRoundedRect = new GUIStyle(EditorStyles.helpBox); + _PaddedRoundedRect.padding = new RectOffset(4, 4, 4, 4); + } + return _PaddedRoundedRect; + } + } + + public override void OnInspectorGUI() + { + GlobalOptionsGUI(); + +#if DISABLE_CAMERA_SHAKE + EditorGUILayout.HelpBox("Camera Shake has been globally disabled in the code.\nThe properties remain to avoid data loss but the shaking won't be applied for any effect.", MessageType.Info); +#endif + + base.OnInspectorGUI(); + } + + void GlobalOptionsGUI() + { + EditorGUILayout.BeginVertical(PaddedRoundedRect); + { + GUILayout.Label("Editor Preview:", EditorStyles.boldLabel); + + if (lightEditorPreview == null) + { + lightEditorPreview = EditorPrefs.GetBool("CFXR Light EditorPreview", true); + } + bool lightPreview = EditorGUILayout.Toggle("Light Animations", lightEditorPreview.Value); + if (lightPreview != lightEditorPreview.Value) + { + lightEditorPreview = lightPreview; + EditorPrefs.SetBool("CFXR Light EditorPreview", lightPreview); + CFXR_Effect.AnimatedLight.editorPreview = lightPreview; + } + +#if !DISABLE_CAMERA_SHAKE + if (shakeEditorPreview == null) + { + shakeEditorPreview = EditorPrefs.GetBool("CFXR CameraShake EditorPreview", true); + } + bool shakePreview = EditorGUILayout.Toggle("Camera Shake", shakeEditorPreview.Value); + if (shakePreview != shakeEditorPreview.Value) + { + shakeEditorPreview = shakePreview; + EditorPrefs.SetBool("CFXR CameraShake EditorPreview", shakePreview); + CFXR_Effect.CameraShake.editorPreview = shakePreview; + } +#endif + } + EditorGUILayout.EndVertical(); + } + + void OnEnable() + { + if (this.targets == null) + { + return; + } + + foreach (var t in this.targets) + { + var cfxr_effect = t as CFXR_Effect; + if (cfxr_effect != null) + { + if (isPrefabSource(cfxr_effect.gameObject)) + { + return; + } + cfxr_effect.RegisterEditorUpdate(); + } + } + } + + void OnDisable() + { + if (this.targets == null) + { + return; + } + + foreach (var t in this.targets) + { + // Can be null if GameObject has been destroyed + var cfxr_effect = t as CFXR_Effect; + if (cfxr_effect != null) + { + if (isPrefabSource(cfxr_effect.gameObject)) + { + return; + } + cfxr_effect.UnregisterEditorUpdate(); + } + } + } + + static bool isPrefabSource(GameObject gameObject) + { + var assetType = PrefabUtility.GetPrefabAssetType(gameObject); + var prefabType = PrefabUtility.GetPrefabInstanceStatus(gameObject); + return ((assetType == PrefabAssetType.Regular || assetType == PrefabAssetType.Variant) && prefabType == PrefabInstanceStatus.NotAPrefab); + } + } +#endif +} ; \ No newline at end of file diff --git a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Scripts/CFXR_ParticleText.cs b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Scripts/CFXR_ParticleText.cs index 4004559..c7602e2 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Scripts/CFXR_ParticleText.cs +++ b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Scripts/CFXR_ParticleText.cs @@ -1,419 +1,419 @@ -//-------------------------------------------------------------------------------------------------------------------------------- -// Cartoon FX -// (c) 2012-2022 Jean Moreno -//-------------------------------------------------------------------------------------------------------------------------------- - -using System.Collections.Generic; -using UnityEngine; -using Object = UnityEngine.Object; -#if UNITY_EDITOR -using UnityEditor; -#endif - -namespace CartoonFX -{ - [RequireComponent(typeof(ParticleSystem))] - public class CFXR_ParticleText : MonoBehaviour - { - [Header("Dynamic")] - [Tooltip("Allow changing the text at runtime with the 'UpdateText' method. If disabled, this script will be excluded from the build.")] - public bool isDynamic; - - [Header("Text")] - [SerializeField] string text; - [SerializeField] float size = 1f; - [SerializeField] float letterSpacing = 0.44f; - - [Header("Colors")] - [SerializeField] Color backgroundColor = new Color(0, 0, 0, 1); - [SerializeField] Color color1 = new Color(1, 1, 1, 1); - [SerializeField] Color color2 = new Color(0, 0, 1, 1); - - [Header("Delay")] - [SerializeField] float delay = 0.05f; - [SerializeField] bool cumulativeDelay = false; - [Range(0f, 2f)] [SerializeField] float compensateLifetime = 0; - - [Header("Misc")] - [SerializeField] float lifetimeMultiplier = 1f; - [Range(-90f, 90f)] [SerializeField] float rotation = -5f; - [SerializeField] float sortingFudgeOffset = 0.1f; -#pragma warning disable 0649 - [SerializeField] CFXR_ParticleTextFontAsset font; -#pragma warning restore 0649 - -#if UNITY_EDITOR - [HideInInspector] [SerializeField] bool autoUpdateEditor = true; - - void OnValidate() - { - if (text == null || font == null) - { - return; - } - - // parse text to only allow valid characters - List allowed = new List(font.CharSequence.ToCharArray()); - allowed.Add(' '); - - char[] chars; - switch (font.letterCase) - { - case CFXR_ParticleTextFontAsset.LetterCase.Lower: chars = text.ToLowerInvariant().ToCharArray(); break; - case CFXR_ParticleTextFontAsset.LetterCase.Upper: chars = text.ToUpperInvariant().ToCharArray(); break; - default: - case CFXR_ParticleTextFontAsset.LetterCase.Both: chars = text.ToCharArray(); break; - } - - string newText = ""; - foreach (var c in chars) - { - if (allowed.Contains(c)) - { - newText += c; - } - } - - text = newText; - - // prevent negative or 0 size - size = Mathf.Max(0.001f, size); - - // delay so that we are allowed to destroy GameObjects - if (autoUpdateEditor && !EditorApplication.isPlayingOrWillChangePlaymode) - { - EditorApplication.delayCall += () => { UpdateText(null); }; - } - } -#endif - - void Awake() - { - if (!isDynamic) - { - Destroy(this); - return; - } - - InitializeFirstParticle(); - } - - float baseLifetime; - float baseScaleX; - float baseScaleY; - float baseScaleZ; - Vector3 basePivot; - - void InitializeFirstParticle() - { - if (isDynamic && this.transform.childCount == 0) - { - throw new System.Exception("[CFXR_ParticleText] A disabled GameObject with a ParticleSystem component is required as the first child when 'isDyanmic' is enabled, so that its settings can be used as a base for the generated characters."); - } - - var ps = isDynamic ? this.transform.GetChild(0).GetComponent() : this.GetComponent(); - var main = ps.main; - baseLifetime = main.startLifetime.constant; - baseScaleX = main.startSizeXMultiplier; - baseScaleY = main.startSizeYMultiplier; - baseScaleZ = main.startSizeZMultiplier; - basePivot = ps.GetComponent().pivot; - if (isDynamic) - { - basePivot.x = 0; // make sure to not offset the text horizontally - ps.gameObject.SetActive(false); // ensure first child is inactive - ps.gameObject.name = "MODEL"; - } - } - - public void UpdateText( - string newText = null, - float? newSize = null, - Color? newColor1 = null, Color? newColor2 = null, Color? newBackgroundColor = null, - float? newLifetimeMultiplier = null - ) - { -#if UNITY_EDITOR - // Only allow updating text for GameObjects that aren't prefabs, since we are possibly destroying/adding GameObjects - if (this == null) - { - return; - } - - var prefabInstanceStatus = PrefabUtility.GetPrefabInstanceStatus(this); - var prefabAssetType = PrefabUtility.GetPrefabAssetType(this); - if (!(prefabInstanceStatus == PrefabInstanceStatus.NotAPrefab && prefabAssetType == PrefabAssetType.NotAPrefab)) - { - return; - } - - if (!Application.isPlaying) - { - InitializeFirstParticle(); - } -#endif - - if (Application.isPlaying && !isDynamic) - { - throw new System.Exception("[CFXR_ParticleText] You cannot update the text at runtime if it's not marked as dynamic."); - } - - if (newText != null) - { - switch (font.letterCase) - { - case CFXR_ParticleTextFontAsset.LetterCase.Lower: - newText = newText.ToLowerInvariant(); - break; - case CFXR_ParticleTextFontAsset.LetterCase.Upper: - newText = newText.ToUpperInvariant(); - break; - } - - // Verify that new text doesn't contain invalid characters - foreach (char c in newText) - { - if (char.IsWhiteSpace(c)) continue; - if (font.CharSequence.IndexOf(c) < 0) - { - throw new System.Exception("[CFXR_ParticleText] Invalid character supplied for the dynamic text: '" + c + "'\nThe allowed characters from the selected font are: " + font.CharSequence); - } - } - - this.text = newText; - } - - if (newSize != null) this.size = newSize.Value; - if (newColor1 != null) this.color1 = newColor1.Value; - if (newColor2 != null) this.color2 = newColor2.Value; - if (newBackgroundColor != null) this.backgroundColor = newBackgroundColor.Value; - if (newLifetimeMultiplier != null) this.lifetimeMultiplier = newLifetimeMultiplier.Value; - - if (text == null || font == null || !font.IsValid()) - { - return; - } - - if (this.transform.childCount == 0) - { - throw new System.Exception("[CFXR_ParticleText] A disabled GameObject with a ParticleSystem component is required as the first child when 'isDyanmic' is enabled, so that its settings can be used as a base for the generated characters."); - } - - // process text and calculate total width offset - float totalWidth = 0f; - int charCount = 0; - for (int i = 0; i < text.Length; i++) - { - if (char.IsWhiteSpace(text[i])) - { - if (i > 0) - { - totalWidth += letterSpacing * size; - } - } - else - { - charCount++; - - if (i > 0) - { - int index = font.CharSequence.IndexOf(text[i]); - var sprite = font.CharSprites[index]; - float charWidth = sprite.rect.width + font.CharKerningOffsets[index].post + font.CharKerningOffsets[index].pre; - totalWidth += (charWidth * 0.01f + letterSpacing) * size; - } - } - } - -#if UNITY_EDITOR - // delete all children in editor, to make sure we refresh the particle systems based on the first one - if (!Application.isPlaying) - { - int length = this.transform.childCount; - int overflow = 0; - while (this.transform.childCount > 1) - { - Object.DestroyImmediate(this.transform.GetChild(this.transform.childCount - 1).gameObject); - overflow++; - if (overflow > 1000) - { - // just in case... - Debug.LogError("Overflow!"); - break; - } - } - } -#endif - - if (charCount > 0) - { - // calculate needed instances - int childCount = this.transform.childCount - (isDynamic ? 1 : 0); // first one is the particle source and always deactivated - if (childCount < charCount) - { - // instantiate new letter GameObjects if needed - GameObject model = isDynamic ? this.transform.GetChild(0).gameObject : null; - for (int i = childCount; i < charCount; i++) - { - var newLetter = isDynamic ? Instantiate(model, this.transform) : new GameObject(); - if (!isDynamic) - { - newLetter.transform.SetParent(this.transform); - newLetter.AddComponent(); - } - - newLetter.transform.localPosition = Vector3.zero; - newLetter.transform.localRotation = Quaternion.identity; - } - } - - // update each letter - float offset = totalWidth / 2f; - totalWidth = 0f; - int currentChild = isDynamic ? 0 : -1; - - // when not dynamic, we use CopySerialized to propagate the settings to the instances - var sourceParticle = isDynamic ? null : this.GetComponent(); - var sourceParticleRenderer = this.GetComponent(); - - for (int i = 0; i < text.Length; i++) - { - var letter = text[i]; - if (char.IsWhiteSpace(letter)) - { - totalWidth += letterSpacing * size; - } - else - { - currentChild++; - int index = font.CharSequence.IndexOf(text[i]); - var sprite = font.CharSprites[index]; - - // calculate char particle size ratio - var ratio = size * sprite.rect.width / 50f; - - // calculate char position - totalWidth += font.CharKerningOffsets[index].pre * 0.01f * size; - var position = (totalWidth - offset) / ratio; - float charWidth = sprite.rect.width + font.CharKerningOffsets[index].post; - totalWidth += (charWidth * 0.01f + letterSpacing) * size; - - // update particle system for this letter - var letterObj = this.transform.GetChild(currentChild).gameObject; - letterObj.name = letter.ToString(); - var ps = letterObj.GetComponent(); -#if UNITY_EDITOR - if (!isDynamic) - { - EditorUtility.CopySerialized(sourceParticle, ps); - ps.gameObject.SetActive(true); - } -#endif - - var mainModule = ps.main; - mainModule.startSizeXMultiplier = baseScaleX * ratio; - mainModule.startSizeYMultiplier = baseScaleY * ratio; - mainModule.startSizeZMultiplier = baseScaleZ * ratio; - - ps.textureSheetAnimation.SetSprite(0, sprite); - - mainModule.startRotation = Mathf.Deg2Rad * rotation; - mainModule.startColor = backgroundColor; - - var customData = ps.customData; - customData.enabled = true; - customData.SetColor(ParticleSystemCustomData.Custom1, color1); - customData.SetColor(ParticleSystemCustomData.Custom2, color2); - - if (cumulativeDelay) - { - mainModule.startDelay = delay * i; - mainModule.startLifetime = Mathf.LerpUnclamped(baseLifetime, baseLifetime + (delay * (text.Length - i)), compensateLifetime / lifetimeMultiplier); - } - else - { - mainModule.startDelay = delay; - } - - mainModule.startLifetime = mainModule.startLifetime.constant * lifetimeMultiplier; - - // particle system renderer parameters - var particleRenderer = ps.GetComponent(); -#if UNITY_EDITOR - if (!isDynamic) - { - EditorUtility.CopySerialized(sourceParticleRenderer, particleRenderer); - } -#endif - - particleRenderer.enabled = true; - particleRenderer.pivot = new Vector3(basePivot.x + position, basePivot.y, basePivot.z); - particleRenderer.sortingFudge += i * sortingFudgeOffset; - } - } - } - - // set active state for needed letters only - for (int i = 1, l = this.transform.childCount; i < l; i++) - { - this.transform.GetChild(i).gameObject.SetActive(i <= charCount); - } - -#if UNITY_EDITOR - // automatically play the effect in Editor - if (!Application.isPlaying) - { - this.GetComponent().Clear(true); - this.GetComponent().Play(true); - } -#endif - } - } - -#if UNITY_EDITOR - [CustomEditor(typeof(CFXR_ParticleText))] - public class ParticleTextEditor : Editor - { - CFXR_ParticleText CastTarget - { - get { return (CFXR_ParticleText) this.target; } - } - - GUIContent GUIContent_AutoUpdateToggle = new GUIContent("Auto-update", "Automatically regenerate the text when a property is changed."); - GUIContent GUIContent_UpdateTextButton = new GUIContent(" Update Text ", "Regenerate the text and create new letter GameObjects if needed."); - - public override void OnInspectorGUI() - { - var prefab = PrefabUtility.GetPrefabInstanceStatus(target); - if (prefab != PrefabInstanceStatus.NotAPrefab) - { - EditorGUILayout.HelpBox("Cartoon FX Particle Text doesn't work on Prefab Instances, as it needs to destroy/create children GameObjects.\nYou can right-click on the object, and select \"Unpack Prefab\" to make it an independent Game Object.", - MessageType.Warning); - return; - } - - base.OnInspectorGUI(); - - serializedObject.Update(); - SerializedProperty autoUpdateBool = serializedObject.FindProperty("autoUpdateEditor"); - - GUILayout.Space(8); - GUILayout.BeginHorizontal(); - { - GUILayout.FlexibleSpace(); - autoUpdateBool.boolValue = GUILayout.Toggle(autoUpdateBool.boolValue, GUIContent_AutoUpdateToggle, GUILayout.Height(30)); - if (GUILayout.Button(GUIContent_UpdateTextButton, GUILayout.Height(30))) - { - CastTarget.UpdateText(null); - } - } - GUILayout.EndHorizontal(); - - if (GUI.changed) - { - serializedObject.ApplyModifiedProperties(); - } - } - } -#endif +//-------------------------------------------------------------------------------------------------------------------------------- +// Cartoon FX +// (c) 2012-2022 Jean Moreno +//-------------------------------------------------------------------------------------------------------------------------------- + +using System.Collections.Generic; +using UnityEngine; +using Object = UnityEngine.Object; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace CartoonFX +{ + [RequireComponent(typeof(ParticleSystem))] + public class CFXR_ParticleText : MonoBehaviour + { + [Header("Dynamic")] + [Tooltip("Allow changing the text at runtime with the 'UpdateText' method. If disabled, this script will be excluded from the build.")] + public bool isDynamic; + + [Header("Text")] + [SerializeField] string text; + [SerializeField] float size = 1f; + [SerializeField] float letterSpacing = 0.44f; + + [Header("Colors")] + [SerializeField] Color backgroundColor = new Color(0, 0, 0, 1); + [SerializeField] Color color1 = new Color(1, 1, 1, 1); + [SerializeField] Color color2 = new Color(0, 0, 1, 1); + + [Header("Delay")] + [SerializeField] float delay = 0.05f; + [SerializeField] bool cumulativeDelay = false; + [Range(0f, 2f)] [SerializeField] float compensateLifetime = 0; + + [Header("Misc")] + [SerializeField] float lifetimeMultiplier = 1f; + [Range(-90f, 90f)] [SerializeField] float rotation = -5f; + [SerializeField] float sortingFudgeOffset = 0.1f; +#pragma warning disable 0649 + [SerializeField] CFXR_ParticleTextFontAsset font; +#pragma warning restore 0649 + +#if UNITY_EDITOR + [HideInInspector] [SerializeField] bool autoUpdateEditor = true; + + void OnValidate() + { + if (text == null || font == null) + { + return; + } + + // parse text to only allow valid characters + List allowed = new List(font.CharSequence.ToCharArray()); + allowed.Add(' '); + + char[] chars; + switch (font.letterCase) + { + case CFXR_ParticleTextFontAsset.LetterCase.Lower: chars = text.ToLowerInvariant().ToCharArray(); break; + case CFXR_ParticleTextFontAsset.LetterCase.Upper: chars = text.ToUpperInvariant().ToCharArray(); break; + default: + case CFXR_ParticleTextFontAsset.LetterCase.Both: chars = text.ToCharArray(); break; + } + + string newText = ""; + foreach (var c in chars) + { + if (allowed.Contains(c)) + { + newText += c; + } + } + + text = newText; + + // prevent negative or 0 size + size = Mathf.Max(0.001f, size); + + // delay so that we are allowed to destroy GameObjects + if (autoUpdateEditor && !EditorApplication.isPlayingOrWillChangePlaymode) + { + EditorApplication.delayCall += () => { UpdateText(null); }; + } + } +#endif + + void Awake() + { + if (!isDynamic) + { + Destroy(this); + return; + } + + InitializeFirstParticle(); + } + + float baseLifetime; + float baseScaleX; + float baseScaleY; + float baseScaleZ; + Vector3 basePivot; + + void InitializeFirstParticle() + { + if (isDynamic && this.transform.childCount == 0) + { + throw new System.Exception("[CFXR_ParticleText] A disabled GameObject with a ParticleSystem component is required as the first child when 'isDyanmic' is enabled, so that its settings can be used as a base for the generated characters."); + } + + var ps = isDynamic ? this.transform.GetChild(0).GetComponent() : this.GetComponent(); + var main = ps.main; + baseLifetime = main.startLifetime.constant; + baseScaleX = main.startSizeXMultiplier; + baseScaleY = main.startSizeYMultiplier; + baseScaleZ = main.startSizeZMultiplier; + basePivot = ps.GetComponent().pivot; + if (isDynamic) + { + basePivot.x = 0; // make sure to not offset the text horizontally + ps.gameObject.SetActive(false); // ensure first child is inactive + ps.gameObject.name = "MODEL"; + } + } + + public void UpdateText( + string newText = null, + float? newSize = null, + Color? newColor1 = null, Color? newColor2 = null, Color? newBackgroundColor = null, + float? newLifetimeMultiplier = null + ) + { +#if UNITY_EDITOR + // Only allow updating text for GameObjects that aren't prefabs, since we are possibly destroying/adding GameObjects + if (this == null) + { + return; + } + + var prefabInstanceStatus = PrefabUtility.GetPrefabInstanceStatus(this); + var prefabAssetType = PrefabUtility.GetPrefabAssetType(this); + if (!(prefabInstanceStatus == PrefabInstanceStatus.NotAPrefab && prefabAssetType == PrefabAssetType.NotAPrefab)) + { + return; + } + + if (!Application.isPlaying) + { + InitializeFirstParticle(); + } +#endif + + if (Application.isPlaying && !isDynamic) + { + throw new System.Exception("[CFXR_ParticleText] You cannot update the text at runtime if it's not marked as dynamic."); + } + + if (newText != null) + { + switch (font.letterCase) + { + case CFXR_ParticleTextFontAsset.LetterCase.Lower: + newText = newText.ToLowerInvariant(); + break; + case CFXR_ParticleTextFontAsset.LetterCase.Upper: + newText = newText.ToUpperInvariant(); + break; + } + + // Verify that new text doesn't contain invalid characters + foreach (char c in newText) + { + if (char.IsWhiteSpace(c)) continue; + if (font.CharSequence.IndexOf(c) < 0) + { + throw new System.Exception("[CFXR_ParticleText] Invalid character supplied for the dynamic text: '" + c + "'\nThe allowed characters from the selected font are: " + font.CharSequence); + } + } + + this.text = newText; + } + + if (newSize != null) this.size = newSize.Value; + if (newColor1 != null) this.color1 = newColor1.Value; + if (newColor2 != null) this.color2 = newColor2.Value; + if (newBackgroundColor != null) this.backgroundColor = newBackgroundColor.Value; + if (newLifetimeMultiplier != null) this.lifetimeMultiplier = newLifetimeMultiplier.Value; + + if (text == null || font == null || !font.IsValid()) + { + return; + } + + if (this.transform.childCount == 0) + { + throw new System.Exception("[CFXR_ParticleText] A disabled GameObject with a ParticleSystem component is required as the first child when 'isDyanmic' is enabled, so that its settings can be used as a base for the generated characters."); + } + + // process text and calculate total width offset + float totalWidth = 0f; + int charCount = 0; + for (int i = 0; i < text.Length; i++) + { + if (char.IsWhiteSpace(text[i])) + { + if (i > 0) + { + totalWidth += letterSpacing * size; + } + } + else + { + charCount++; + + if (i > 0) + { + int index = font.CharSequence.IndexOf(text[i]); + var sprite = font.CharSprites[index]; + float charWidth = sprite.rect.width + font.CharKerningOffsets[index].post + font.CharKerningOffsets[index].pre; + totalWidth += (charWidth * 0.01f + letterSpacing) * size; + } + } + } + +#if UNITY_EDITOR + // delete all children in editor, to make sure we refresh the particle systems based on the first one + if (!Application.isPlaying) + { + int length = this.transform.childCount; + int overflow = 0; + while (this.transform.childCount > 1) + { + Object.DestroyImmediate(this.transform.GetChild(this.transform.childCount - 1).gameObject); + overflow++; + if (overflow > 1000) + { + // just in case... + Debug.LogError("Overflow!"); + break; + } + } + } +#endif + + if (charCount > 0) + { + // calculate needed instances + int childCount = this.transform.childCount - (isDynamic ? 1 : 0); // first one is the particle source and always deactivated + if (childCount < charCount) + { + // instantiate new letter GameObjects if needed + GameObject model = isDynamic ? this.transform.GetChild(0).gameObject : null; + for (int i = childCount; i < charCount; i++) + { + var newLetter = isDynamic ? Instantiate(model, this.transform) : new GameObject(); + if (!isDynamic) + { + newLetter.transform.SetParent(this.transform); + newLetter.AddComponent(); + } + + newLetter.transform.localPosition = Vector3.zero; + newLetter.transform.localRotation = Quaternion.identity; + } + } + + // update each letter + float offset = totalWidth / 2f; + totalWidth = 0f; + int currentChild = isDynamic ? 0 : -1; + + // when not dynamic, we use CopySerialized to propagate the settings to the instances + var sourceParticle = isDynamic ? null : this.GetComponent(); + var sourceParticleRenderer = this.GetComponent(); + + for (int i = 0; i < text.Length; i++) + { + var letter = text[i]; + if (char.IsWhiteSpace(letter)) + { + totalWidth += letterSpacing * size; + } + else + { + currentChild++; + int index = font.CharSequence.IndexOf(text[i]); + var sprite = font.CharSprites[index]; + + // calculate char particle size ratio + var ratio = size * sprite.rect.width / 50f; + + // calculate char position + totalWidth += font.CharKerningOffsets[index].pre * 0.01f * size; + var position = (totalWidth - offset) / ratio; + float charWidth = sprite.rect.width + font.CharKerningOffsets[index].post; + totalWidth += (charWidth * 0.01f + letterSpacing) * size; + + // update particle system for this letter + var letterObj = this.transform.GetChild(currentChild).gameObject; + letterObj.name = letter.ToString(); + var ps = letterObj.GetComponent(); +#if UNITY_EDITOR + if (!isDynamic) + { + EditorUtility.CopySerialized(sourceParticle, ps); + ps.gameObject.SetActive(true); + } +#endif + + var mainModule = ps.main; + mainModule.startSizeXMultiplier = baseScaleX * ratio; + mainModule.startSizeYMultiplier = baseScaleY * ratio; + mainModule.startSizeZMultiplier = baseScaleZ * ratio; + + ps.textureSheetAnimation.SetSprite(0, sprite); + + mainModule.startRotation = Mathf.Deg2Rad * rotation; + mainModule.startColor = backgroundColor; + + var customData = ps.customData; + customData.enabled = true; + customData.SetColor(ParticleSystemCustomData.Custom1, color1); + customData.SetColor(ParticleSystemCustomData.Custom2, color2); + + if (cumulativeDelay) + { + mainModule.startDelay = delay * i; + mainModule.startLifetime = Mathf.LerpUnclamped(baseLifetime, baseLifetime + (delay * (text.Length - i)), compensateLifetime / lifetimeMultiplier); + } + else + { + mainModule.startDelay = delay; + } + + mainModule.startLifetime = mainModule.startLifetime.constant * lifetimeMultiplier; + + // particle system renderer parameters + var particleRenderer = ps.GetComponent(); +#if UNITY_EDITOR + if (!isDynamic) + { + EditorUtility.CopySerialized(sourceParticleRenderer, particleRenderer); + } +#endif + + particleRenderer.enabled = true; + particleRenderer.pivot = new Vector3(basePivot.x + position, basePivot.y, basePivot.z); + particleRenderer.sortingFudge += i * sortingFudgeOffset; + } + } + } + + // set active state for needed letters only + for (int i = 1, l = this.transform.childCount; i < l; i++) + { + this.transform.GetChild(i).gameObject.SetActive(i <= charCount); + } + +#if UNITY_EDITOR + // automatically play the effect in Editor + if (!Application.isPlaying) + { + this.GetComponent().Clear(true); + this.GetComponent().Play(true); + } +#endif + } + } + +#if UNITY_EDITOR + [CustomEditor(typeof(CFXR_ParticleText))] + public class ParticleTextEditor : Editor + { + CFXR_ParticleText CastTarget + { + get { return (CFXR_ParticleText) this.target; } + } + + GUIContent GUIContent_AutoUpdateToggle = new GUIContent("Auto-update", "Automatically regenerate the text when a property is changed."); + GUIContent GUIContent_UpdateTextButton = new GUIContent(" Update Text ", "Regenerate the text and create new letter GameObjects if needed."); + + public override void OnInspectorGUI() + { + var prefab = PrefabUtility.GetPrefabInstanceStatus(target); + if (prefab != PrefabInstanceStatus.NotAPrefab) + { + EditorGUILayout.HelpBox("Cartoon FX Particle Text doesn't work on Prefab Instances, as it needs to destroy/create children GameObjects.\nYou can right-click on the object, and select \"Unpack Prefab\" to make it an independent Game Object.", + MessageType.Warning); + return; + } + + base.OnInspectorGUI(); + + serializedObject.Update(); + SerializedProperty autoUpdateBool = serializedObject.FindProperty("autoUpdateEditor"); + + GUILayout.Space(8); + GUILayout.BeginHorizontal(); + { + GUILayout.FlexibleSpace(); + autoUpdateBool.boolValue = GUILayout.Toggle(autoUpdateBool.boolValue, GUIContent_AutoUpdateToggle, GUILayout.Height(30)); + if (GUILayout.Button(GUIContent_UpdateTextButton, GUILayout.Height(30))) + { + CastTarget.UpdateText(null); + } + } + GUILayout.EndHorizontal(); + + if (GUI.changed) + { + serializedObject.ApplyModifiedProperties(); + } + } + } +#endif } \ No newline at end of file diff --git a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Scripts/CFXR_ParticleTextFontAsset.cs b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Scripts/CFXR_ParticleTextFontAsset.cs index 745eddd..494e8f6 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Scripts/CFXR_ParticleTextFontAsset.cs +++ b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Scripts/CFXR_ParticleTextFontAsset.cs @@ -1,128 +1,128 @@ -//-------------------------------------------------------------------------------------------------------------------------------- -// Cartoon FX -// (c) 2012-2020 Jean Moreno -//-------------------------------------------------------------------------------------------------------------------------------- - -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -#if UNITY_EDITOR -using UnityEditor; -#endif - -namespace CartoonFX -{ - public class CFXR_ParticleTextFontAsset : ScriptableObject - { - public enum LetterCase - { - Both, - Upper, - Lower - } - - public string CharSequence = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!?-.#@$ "; - public LetterCase letterCase = LetterCase.Upper; - public Sprite[] CharSprites; - public Kerning[] CharKerningOffsets; - - [System.Serializable] - public class Kerning - { - public string name = "A"; - public float pre = 0f; - public float post = 0f; - } - - void OnValidate() - { - this.hideFlags = HideFlags.None; - - if (CharKerningOffsets == null || CharKerningOffsets.Length != CharSequence.Length) - { - CharKerningOffsets = new Kerning[CharSequence.Length]; - for (int i = 0; i < CharKerningOffsets.Length; i++) - { - CharKerningOffsets[i] = new Kerning() { name = CharSequence[i].ToString() }; - } - } - } - - public bool IsValid() - { - bool valid = !string.IsNullOrEmpty(CharSequence) && CharSprites != null && CharSprites.Length == CharSequence.Length && CharKerningOffsets != null && CharKerningOffsets.Length == CharSprites.Length; - - if (!valid) - { - Debug.LogError(string.Format("Invalid ParticleTextFontAsset: '{0}'\n", this.name), this); - } - - return valid; - } - -#if UNITY_EDITOR - // [MenuItem("Tools/Create font asset")] - static void CreateFontAsset() - { - var instance = CreateInstance(); - AssetDatabase.CreateAsset(instance, "Assets/Font.asset"); - } -#endif - } - -#if UNITY_EDITOR - [CustomEditor(typeof(CFXR_ParticleTextFontAsset))] - public class ParticleTextFontAssetEditor : Editor - { - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - - GUILayout.BeginHorizontal(); - if (GUILayout.Button("Export Kerning")) - { - var ptfa = this.target as CFXR_ParticleTextFontAsset; - var path = EditorUtility.SaveFilePanel("Export Kerning Settings", Application.dataPath, ptfa.name + " kerning", ".txt"); - if (!string.IsNullOrEmpty(path)) - { - string output = ""; - foreach (var k in ptfa.CharKerningOffsets) - { - output += k.name + "\t" + k.pre + "\t" + k.post + "\n"; - } - System.IO.File.WriteAllText(path, output); - } - } - - if (GUILayout.Button("Import Kerning")) - { - var path = EditorUtility.OpenFilePanel("Import Kerning Settings", Application.dataPath, "txt"); - if (!string.IsNullOrEmpty(path)) - { - var text = System.IO.File.ReadAllText(path); - var split = text.Split(new string[] { "\n" }, System.StringSplitOptions.RemoveEmptyEntries); - var ptfa = this.target as CFXR_ParticleTextFontAsset; - Undo.RecordObject(ptfa, "Import Kerning Settings"); - List kerningList = new List(ptfa.CharKerningOffsets); - for (int i = 0; i < split.Length; i++) - { - var data = split[i].Split('\t'); - - foreach (var cko in kerningList) - { - if (cko.name == data[0]) - { - cko.pre = float.Parse(data[1]); - cko.post = float.Parse(data[2]); - break; - } - } - } - ptfa.CharKerningOffsets = kerningList.ToArray(); - } - } - GUILayout.EndHorizontal(); - } - } -#endif +//-------------------------------------------------------------------------------------------------------------------------------- +// Cartoon FX +// (c) 2012-2020 Jean Moreno +//-------------------------------------------------------------------------------------------------------------------------------- + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; +#endif + +namespace CartoonFX +{ + public class CFXR_ParticleTextFontAsset : ScriptableObject + { + public enum LetterCase + { + Both, + Upper, + Lower + } + + public string CharSequence = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!?-.#@$ "; + public LetterCase letterCase = LetterCase.Upper; + public Sprite[] CharSprites; + public Kerning[] CharKerningOffsets; + + [System.Serializable] + public class Kerning + { + public string name = "A"; + public float pre = 0f; + public float post = 0f; + } + + void OnValidate() + { + this.hideFlags = HideFlags.None; + + if (CharKerningOffsets == null || CharKerningOffsets.Length != CharSequence.Length) + { + CharKerningOffsets = new Kerning[CharSequence.Length]; + for (int i = 0; i < CharKerningOffsets.Length; i++) + { + CharKerningOffsets[i] = new Kerning() { name = CharSequence[i].ToString() }; + } + } + } + + public bool IsValid() + { + bool valid = !string.IsNullOrEmpty(CharSequence) && CharSprites != null && CharSprites.Length == CharSequence.Length && CharKerningOffsets != null && CharKerningOffsets.Length == CharSprites.Length; + + if (!valid) + { + Debug.LogError(string.Format("Invalid ParticleTextFontAsset: '{0}'\n", this.name), this); + } + + return valid; + } + +#if UNITY_EDITOR + // [MenuItem("Tools/Create font asset")] + static void CreateFontAsset() + { + var instance = CreateInstance(); + AssetDatabase.CreateAsset(instance, "Assets/Font.asset"); + } +#endif + } + +#if UNITY_EDITOR + [CustomEditor(typeof(CFXR_ParticleTextFontAsset))] + public class ParticleTextFontAssetEditor : Editor + { + public override void OnInspectorGUI() + { + base.OnInspectorGUI(); + + GUILayout.BeginHorizontal(); + if (GUILayout.Button("Export Kerning")) + { + var ptfa = this.target as CFXR_ParticleTextFontAsset; + var path = EditorUtility.SaveFilePanel("Export Kerning Settings", Application.dataPath, ptfa.name + " kerning", ".txt"); + if (!string.IsNullOrEmpty(path)) + { + string output = ""; + foreach (var k in ptfa.CharKerningOffsets) + { + output += k.name + "\t" + k.pre + "\t" + k.post + "\n"; + } + System.IO.File.WriteAllText(path, output); + } + } + + if (GUILayout.Button("Import Kerning")) + { + var path = EditorUtility.OpenFilePanel("Import Kerning Settings", Application.dataPath, "txt"); + if (!string.IsNullOrEmpty(path)) + { + var text = System.IO.File.ReadAllText(path); + var split = text.Split(new string[] { "\n" }, System.StringSplitOptions.RemoveEmptyEntries); + var ptfa = this.target as CFXR_ParticleTextFontAsset; + Undo.RecordObject(ptfa, "Import Kerning Settings"); + List kerningList = new List(ptfa.CharKerningOffsets); + for (int i = 0; i < split.Length; i++) + { + var data = split[i].Split('\t'); + + foreach (var cko in kerningList) + { + if (cko.name == data[0]) + { + cko.pre = float.Parse(data[1]); + cko.post = float.Parse(data[2]); + break; + } + } + } + ptfa.CharKerningOffsets = kerningList.ToArray(); + } + } + GUILayout.EndHorizontal(); + } + } +#endif } \ No newline at end of file diff --git a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR Particle Distortion.shader b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR Particle Distortion.shader index 88c6fd1..5eaa013 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR Particle Distortion.shader +++ b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR Particle Distortion.shader @@ -1,176 +1,176 @@ -//-------------------------------------------------------------------------------------------------------------------------------- -// Cartoon FX -// (c) 2012-2020 Jean Moreno -//-------------------------------------------------------------------------------------------------------------------------------- - -Shader "Cartoon FX/Remaster/Particle Screen Distortion" -{ - Properties - { - [Toggle(_ALPHATEST_ON)] _UseAlphaClip ("Alpha Clipping (Cutout)", Float) = 0 - //# IF_KEYWORD _ALPHATEST_ON - _Cutoff ("Cutoff Threshold", Range(0.001,1)) = 0.1 - //# END_IF - - //# -------------------------------------------------------- - - [Toggle(_FADING_ON)] _UseSP ("Soft Particles", Float) = 0 - //# IF_KEYWORD _FADING_ON - _SoftParticlesFadeDistanceNear ("Near Fade", Float) = 0 - _SoftParticlesFadeDistanceFar ("Far Fade", Float) = 1 - //# END_IF - - //# - - [Toggle(_CFXR_EDGE_FADING)] _UseEF ("Edge Fade", Float) = 0 - //# IF_KEYWORD _CFXR_EDGE_FADING - _EdgeFadePow ("Edge Fade Power", Float) = 1 - //# END_IF - - //# ======================================================== - //# Texture - //# - [NoScaleOffset] _ScreenDistortionTex ("Distortion Texture", 2D) = "bump" {} - _ScreenDistortionScale ("Distortion Scale", Range(-0.5, 0.5)) = 0.1 - - //# ======================================================== - //# Debug - //# - - [Toggle(_DEBUG_VISUALIZE_DISTORTION)] _DebugVisualize ("Visualize Distortion Particles", Float) = 0 - } - - Category - { - Tags - { - "Queue"="Transparent" - "IgnoreProjector"="True" - "RenderType"="Transparent" - "PreviewType"="Plane" - } - - Blend SrcAlpha OneMinusSrcAlpha, One One - ZWrite Off - Cull Off - - //==================================================================================================================================== - // Universal Rendering Pipeline - - Subshader - { - Pass - { - Name "BASE_URP" - Tags { "LightMode"="UniversalForward" } - - CGPROGRAM - - #pragma vertex vertex_program - #pragma fragment fragment_program - - #pragma target 2.0 - - // #pragma multi_compile_instancing - // #pragma instancing_options procedural:ParticleInstancingSetup - - #pragma multi_compile_fog - //#pragma multi_compile_fwdbase - //#pragma multi_compile SHADOWS_SCREEN - - // Using the same keywords as Unity's Standard Particle shader to minimize project-wide keyword usage - #pragma shader_feature_local _ _FADING_ON - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _DEBUG_VISUALIZE_DISTORTION - - #define CFXR_URP - #define CFXR_SCREEN_DISTORTION_SHADER - #include "CFXR_PASSES.cginc" - - ENDCG - } - - // Same as above with 'Universal2D' instead and DISABLE_SOFT_PARTICLES keyword - Pass - { - Name "BASE_URP" - Tags { "LightMode"="Universal2D" } - - CGPROGRAM - - #pragma vertex vertex_program - #pragma fragment fragment_program - - #pragma target 2.0 - - // #pragma multi_compile_instancing - // #pragma instancing_options procedural:ParticleInstancingSetup - - #pragma multi_compile_fog - //#pragma multi_compile_fwdbase - //#pragma multi_compile SHADOWS_SCREEN - - // Using the same keywords as Unity's Standard Particle shader to minimize project-wide keyword usage - #pragma shader_feature_local _ _FADING_ON - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _DEBUG_VISUALIZE_DISTORTION - - #define CFXR_URP - #define DISABLE_SOFT_PARTICLES - #define CFXR_SCREEN_DISTORTION_SHADER - #include "CFXR_PASSES.cginc" - - ENDCG - } - } - - //==================================================================================================================================== - // Built-in Rendering Pipeline - - SubShader - { - GrabPass - { - Tags { "LightMode" = "Always" } - "_GrabTexture" - } - - Pass - { - Name "BASE" - Tags { "LightMode"="ForwardBase" } - - CGPROGRAM - - #pragma vertex vertex_program - #pragma fragment fragment_program - - //vertInstancingSetup writes to global, not allowed with DXC - // #pragma never_use_dxc - // #pragma target 2.5 - // #pragma multi_compile_instancing - // #pragma instancing_options procedural:vertInstancingSetup - - #pragma multi_compile_particles - #pragma multi_compile_fog - //#pragma multi_compile_fwdbase - //#pragma multi_compile SHADOWS_SCREEN - - // Using the same keywords as Unity's Standard Particle shader to minimize project-wide keyword usage - #pragma shader_feature_local _ _FADING_ON - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _DEBUG_VISUALIZE_DISTORTION - - #include "UnityStandardParticleInstancing.cginc" - - #define CFXR_SCREEN_DISTORTION_SHADER - #include "CFXR_PASSES.cginc" - - ENDCG - } - } - } - - CustomEditor "CartoonFX.MaterialInspector" -} - +//-------------------------------------------------------------------------------------------------------------------------------- +// Cartoon FX +// (c) 2012-2020 Jean Moreno +//-------------------------------------------------------------------------------------------------------------------------------- + +Shader "Cartoon FX/Remaster/Particle Screen Distortion" +{ + Properties + { + [Toggle(_ALPHATEST_ON)] _UseAlphaClip ("Alpha Clipping (Cutout)", Float) = 0 + //# IF_KEYWORD _ALPHATEST_ON + _Cutoff ("Cutoff Threshold", Range(0.001,1)) = 0.1 + //# END_IF + + //# -------------------------------------------------------- + + [Toggle(_FADING_ON)] _UseSP ("Soft Particles", Float) = 0 + //# IF_KEYWORD _FADING_ON + _SoftParticlesFadeDistanceNear ("Near Fade", Float) = 0 + _SoftParticlesFadeDistanceFar ("Far Fade", Float) = 1 + //# END_IF + + //# + + [Toggle(_CFXR_EDGE_FADING)] _UseEF ("Edge Fade", Float) = 0 + //# IF_KEYWORD _CFXR_EDGE_FADING + _EdgeFadePow ("Edge Fade Power", Float) = 1 + //# END_IF + + //# ======================================================== + //# Texture + //# + [NoScaleOffset] _ScreenDistortionTex ("Distortion Texture", 2D) = "bump" {} + _ScreenDistortionScale ("Distortion Scale", Range(-0.5, 0.5)) = 0.1 + + //# ======================================================== + //# Debug + //# + + [Toggle(_DEBUG_VISUALIZE_DISTORTION)] _DebugVisualize ("Visualize Distortion Particles", Float) = 0 + } + + Category + { + Tags + { + "Queue"="Transparent" + "IgnoreProjector"="True" + "RenderType"="Transparent" + "PreviewType"="Plane" + } + + Blend SrcAlpha OneMinusSrcAlpha, One One + ZWrite Off + Cull Off + + //==================================================================================================================================== + // Universal Rendering Pipeline + + Subshader + { + Pass + { + Name "BASE_URP" + Tags { "LightMode"="UniversalForward" } + + CGPROGRAM + + #pragma vertex vertex_program + #pragma fragment fragment_program + + #pragma target 2.0 + + // #pragma multi_compile_instancing + // #pragma instancing_options procedural:ParticleInstancingSetup + + #pragma multi_compile_fog + //#pragma multi_compile_fwdbase + //#pragma multi_compile SHADOWS_SCREEN + + // Using the same keywords as Unity's Standard Particle shader to minimize project-wide keyword usage + #pragma shader_feature_local _ _FADING_ON + #pragma shader_feature_local _ _ALPHATEST_ON + #pragma shader_feature_local _ _DEBUG_VISUALIZE_DISTORTION + + #define CFXR_URP + #define CFXR_SCREEN_DISTORTION_SHADER + #include "CFXR_PASSES.cginc" + + ENDCG + } + + // Same as above with 'Universal2D' instead and DISABLE_SOFT_PARTICLES keyword + Pass + { + Name "BASE_URP" + Tags { "LightMode"="Universal2D" } + + CGPROGRAM + + #pragma vertex vertex_program + #pragma fragment fragment_program + + #pragma target 2.0 + + // #pragma multi_compile_instancing + // #pragma instancing_options procedural:ParticleInstancingSetup + + #pragma multi_compile_fog + //#pragma multi_compile_fwdbase + //#pragma multi_compile SHADOWS_SCREEN + + // Using the same keywords as Unity's Standard Particle shader to minimize project-wide keyword usage + #pragma shader_feature_local _ _FADING_ON + #pragma shader_feature_local _ _ALPHATEST_ON + #pragma shader_feature_local _ _DEBUG_VISUALIZE_DISTORTION + + #define CFXR_URP + #define DISABLE_SOFT_PARTICLES + #define CFXR_SCREEN_DISTORTION_SHADER + #include "CFXR_PASSES.cginc" + + ENDCG + } + } + + //==================================================================================================================================== + // Built-in Rendering Pipeline + + SubShader + { + GrabPass + { + Tags { "LightMode" = "Always" } + "_GrabTexture" + } + + Pass + { + Name "BASE" + Tags { "LightMode"="ForwardBase" } + + CGPROGRAM + + #pragma vertex vertex_program + #pragma fragment fragment_program + + //vertInstancingSetup writes to global, not allowed with DXC + // #pragma never_use_dxc + // #pragma target 2.5 + // #pragma multi_compile_instancing + // #pragma instancing_options procedural:vertInstancingSetup + + #pragma multi_compile_particles + #pragma multi_compile_fog + //#pragma multi_compile_fwdbase + //#pragma multi_compile SHADOWS_SCREEN + + // Using the same keywords as Unity's Standard Particle shader to minimize project-wide keyword usage + #pragma shader_feature_local _ _FADING_ON + #pragma shader_feature_local _ _ALPHATEST_ON + #pragma shader_feature_local _ _DEBUG_VISUALIZE_DISTORTION + + #include "UnityStandardParticleInstancing.cginc" + + #define CFXR_SCREEN_DISTORTION_SHADER + #include "CFXR_PASSES.cginc" + + ENDCG + } + } + } + + CustomEditor "CartoonFX.MaterialInspector" +} + diff --git a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR Particle Glow.shader b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR Particle Glow.shader index 3dddd96..ed2bbc4 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR Particle Glow.shader +++ b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR Particle Glow.shader @@ -1,274 +1,274 @@ -//-------------------------------------------------------------------------------------------------------------------------------- -// Cartoon FX -// (c) 2012-2020 Jean Moreno -//-------------------------------------------------------------------------------------------------------------------------------- - -Shader "Cartoon FX/Remaster/Particle Procedural Glow" -{ - Properties - { - //# Blending - //# - - [Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend ("Blend Source", Float) = 5 - [Enum(UnityEngine.Rendering.BlendMode)] _DstBlend ("Blend Destination", Float) = 10 - - //# -------------------------------------------------------- - - [Toggle(_CFXR_DISSOLVE)] _UseDissolve ("Enable Dissolve", Float) = 0 - //# IF_KEYWORD _CFXR_DISSOLVE - [NoScaleOffset] _DissolveTex ("Dissolve Texture", 2D) = "gray" {} - _DissolveSmooth ("Dissolve Smoothing", Range(0.0001,0.5)) = 0.1 - [ToggleNoKeyword] _InvertDissolveTex ("Invert Dissolve Texture", Float) = 0 - //# END_IF - - //# -------------------------------------------------------- - - //# Procedural Circle - //# - - [KeywordEnum(P0, P2, P4, P8)] _CFXR_GLOW_POW ("Apply Power of", Float) = 0 - _GlowMin ("Circle Min", Float) = 0 - _GlowMax ("Circle Max", Float) = 1 - //# - _MaxValue ("Max Value", Float) = 10 - - //# -------------------------------------------------------- - - [Toggle(_CFXR_HDR_BOOST)] _HdrBoost ("Enable HDR Multiplier", Float) = 0 - //# IF_KEYWORD _CFXR_HDR_BOOST - _HdrMultiply ("HDR Multiplier", Float) = 2 - //# END_IF - - //# -------------------------------------------------------- - - [Toggle(_FADING_ON)] _UseSP ("Soft Particles", Float) = 0 - //# IF_KEYWORD _FADING_ON - _SoftParticlesFadeDistanceNear ("Near Fade", Float) = 0 - _SoftParticlesFadeDistanceFar ("Far Fade", Float) = 1 - //# END_IF - - //# ======================================================== - //# Shadows - //# - - [KeywordEnum(Off,On,CustomTexture)] _CFXR_DITHERED_SHADOWS ("Dithered Shadows", Float) = 0 - //# IF_KEYWORD _CFXR_DITHERED_SHADOWS_ON || _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE - _ShadowStrength ("Shadows Strength Max", Range(0,1)) = 1.0 - //# IF_KEYWORD _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE - _DitherCustom ("Dithering 3D Texture", 3D) = "black" {} - //# END_IF - //# END_IF - } - - Category - { - Tags - { - "Queue"="Transparent" - "IgnoreProjector"="True" - "RenderType"="Transparent" - "PreviewType"="Plane" - } - Blend [_SrcBlend] [_DstBlend], One One - Cull Off - ZWrite Off - - //==================================================================================================================================== - // Universal Rendering Pipeline - - SubShader - { - Pass - { - Name "BASE" - Tags { "LightMode"="UniversalForward" } - - CGPROGRAM - - #pragma vertex vertex_program - #pragma fragment fragment_program - - #pragma target 2.0 - - // #pragma multi_compile_instancing - // #pragma instancing_options procedural:ParticleInstancingSetup - #pragma multi_compile_fog - - #pragma shader_feature_local _ _CFXR_GLOW_POW_P2 _CFXR_GLOW_POW_P4 _CFXR_GLOW_POW_P8 - #pragma shader_feature_local _ _CFXR_HDR_BOOST - #pragma shader_feature_local _ _CFXR_DISSOLVE - - #pragma shader_feature_local _FADING_ON - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE - - #define CFXR_URP - #define CFXR_GLOW_SHADER - #include "CFXR_PASSES.cginc" - - ENDCG - } - - // Same as above with 'Universal2D' instead and DISABLE_SOFT_PARTICLES keyword - Pass - { - Name "BASE" - Tags { "LightMode"="Universal2D" } - - CGPROGRAM - - #pragma vertex vertex_program - #pragma fragment fragment_program - - #pragma target 2.0 - - // #pragma multi_compile_instancing - // #pragma instancing_options procedural:ParticleInstancingSetup - #pragma multi_compile_fog - - #pragma shader_feature_local _ _CFXR_GLOW_POW_P2 _CFXR_GLOW_POW_P4 _CFXR_GLOW_POW_P8 - #pragma shader_feature_local _ _CFXR_HDR_BOOST - #pragma shader_feature_local _ _CFXR_DISSOLVE - - #pragma shader_feature_local _FADING_ON - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE - - #define CFXR_URP - #define DISABLE_SOFT_PARTICLES - #define CFXR_GLOW_SHADER - #include "CFXR_PASSES.cginc" - - ENDCG - } - - //-------------------------------------------------------------------------------------------------------------------------------- - - Pass - { - Name "ShadowCaster" - Tags { "LightMode" = "ShadowCaster" } - - BlendOp Add - Blend One Zero - ZWrite On - Cull Off - - CGPROGRAM - - #pragma vertex vertex_program - #pragma fragment fragment_program - - #pragma shader_feature_local _ _CFXR_GLOW_POW_P2 _CFXR_GLOW_POW_P4 _CFXR_GLOW_POW_P8 - #pragma shader_feature_local _ _CFXR_DISSOLVE - - #pragma shader_feature_local _FADING_ON - #pragma shader_feature_local _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON - - #pragma multi_compile_shadowcaster - #pragma shader_feature_local _ _CFXR_DITHERED_SHADOWS_ON _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE - - #if (_CFXR_DITHERED_SHADOWS_ON || _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE) && !defined(SHADER_API_GLES) - #pragma target 3.0 //needed for VPOS - #endif - - #define CFXR_URP - #define PASS_SHADOW_CASTER - #define CFXR_GLOW_SHADER - #include "CFXR_PASSES.cginc" - - ENDCG - } - } - - //==================================================================================================================================== - // Built-in Rendering Pipeline - - SubShader - { - Pass - { - Name "BASE" - Tags { "LightMode"="ForwardBase" } - - CGPROGRAM - - #pragma vertex vertex_program - #pragma fragment fragment_program - - //vertInstancingSetup writes to global, not allowed with DXC - // #pragma never_use_dxc - // #pragma target 2.5 - // #pragma multi_compile_instancing - // #pragma instancing_options procedural:vertInstancingSetup - - #pragma multi_compile_particles - #pragma multi_compile_fog - - #pragma shader_feature_local _ _CFXR_GLOW_POW_P2 _CFXR_GLOW_POW_P4 _CFXR_GLOW_POW_P8 - #pragma shader_feature_local _ _CFXR_HDR_BOOST - #pragma shader_feature_local _ _CFXR_DISSOLVE - - #pragma shader_feature_local _FADING_ON - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE - - #include "UnityStandardParticleInstancing.cginc" - - #define CFXR_GLOW_SHADER - #include "CFXR_PASSES.cginc" - - ENDCG - } - - //-------------------------------------------------------------------------------------------------------------------------------- - - Pass - { - Name "ShadowCaster" - Tags { "LightMode" = "ShadowCaster" } - - BlendOp Add - Blend One Zero - ZWrite On - Cull Off - - CGPROGRAM - - #pragma vertex vertex_program - #pragma fragment fragment_program - - //vertInstancingSetup writes to global, not allowed with DXC - // #pragma never_use_dxc - // #pragma target 2.5 - // #pragma multi_compile_instancing - // #pragma instancing_options procedural:vertInstancingSetup - - #pragma shader_feature_local _ _CFXR_GLOW_POW_P2 _CFXR_GLOW_POW_P4 _CFXR_GLOW_POW_P8 - #pragma shader_feature_local _ _CFXR_DISSOLVE - - #pragma shader_feature_local _FADING_ON - #pragma shader_feature_local _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON - - #pragma multi_compile_shadowcaster - #pragma shader_feature_local _ _CFXR_DITHERED_SHADOWS_ON _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE - - #if (_CFXR_DITHERED_SHADOWS_ON || _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE) && !defined(SHADER_API_GLES) - #pragma target 3.0 //needed for VPOS - #endif - - #include "UnityStandardParticleInstancing.cginc" - - #define PASS_SHADOW_CASTER - #define CFXR_GLOW_SHADER - #include "CFXR_PASSES.cginc" - - ENDCG - } - } - } - - CustomEditor "CartoonFX.MaterialInspector" -} - +//-------------------------------------------------------------------------------------------------------------------------------- +// Cartoon FX +// (c) 2012-2020 Jean Moreno +//-------------------------------------------------------------------------------------------------------------------------------- + +Shader "Cartoon FX/Remaster/Particle Procedural Glow" +{ + Properties + { + //# Blending + //# + + [Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend ("Blend Source", Float) = 5 + [Enum(UnityEngine.Rendering.BlendMode)] _DstBlend ("Blend Destination", Float) = 10 + + //# -------------------------------------------------------- + + [Toggle(_CFXR_DISSOLVE)] _UseDissolve ("Enable Dissolve", Float) = 0 + //# IF_KEYWORD _CFXR_DISSOLVE + [NoScaleOffset] _DissolveTex ("Dissolve Texture", 2D) = "gray" {} + _DissolveSmooth ("Dissolve Smoothing", Range(0.0001,0.5)) = 0.1 + [ToggleNoKeyword] _InvertDissolveTex ("Invert Dissolve Texture", Float) = 0 + //# END_IF + + //# -------------------------------------------------------- + + //# Procedural Circle + //# + + [KeywordEnum(P0, P2, P4, P8)] _CFXR_GLOW_POW ("Apply Power of", Float) = 0 + _GlowMin ("Circle Min", Float) = 0 + _GlowMax ("Circle Max", Float) = 1 + //# + _MaxValue ("Max Value", Float) = 10 + + //# -------------------------------------------------------- + + [Toggle(_CFXR_HDR_BOOST)] _HdrBoost ("Enable HDR Multiplier", Float) = 0 + //# IF_KEYWORD _CFXR_HDR_BOOST + _HdrMultiply ("HDR Multiplier", Float) = 2 + //# END_IF + + //# -------------------------------------------------------- + + [Toggle(_FADING_ON)] _UseSP ("Soft Particles", Float) = 0 + //# IF_KEYWORD _FADING_ON + _SoftParticlesFadeDistanceNear ("Near Fade", Float) = 0 + _SoftParticlesFadeDistanceFar ("Far Fade", Float) = 1 + //# END_IF + + //# ======================================================== + //# Shadows + //# + + [KeywordEnum(Off,On,CustomTexture)] _CFXR_DITHERED_SHADOWS ("Dithered Shadows", Float) = 0 + //# IF_KEYWORD _CFXR_DITHERED_SHADOWS_ON || _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE + _ShadowStrength ("Shadows Strength Max", Range(0,1)) = 1.0 + //# IF_KEYWORD _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE + _DitherCustom ("Dithering 3D Texture", 3D) = "black" {} + //# END_IF + //# END_IF + } + + Category + { + Tags + { + "Queue"="Transparent" + "IgnoreProjector"="True" + "RenderType"="Transparent" + "PreviewType"="Plane" + } + Blend [_SrcBlend] [_DstBlend], One One + Cull Off + ZWrite Off + + //==================================================================================================================================== + // Universal Rendering Pipeline + + SubShader + { + Pass + { + Name "BASE" + Tags { "LightMode"="UniversalForward" } + + CGPROGRAM + + #pragma vertex vertex_program + #pragma fragment fragment_program + + #pragma target 2.0 + + // #pragma multi_compile_instancing + // #pragma instancing_options procedural:ParticleInstancingSetup + #pragma multi_compile_fog + + #pragma shader_feature_local _ _CFXR_GLOW_POW_P2 _CFXR_GLOW_POW_P4 _CFXR_GLOW_POW_P8 + #pragma shader_feature_local _ _CFXR_HDR_BOOST + #pragma shader_feature_local _ _CFXR_DISSOLVE + + #pragma shader_feature_local _FADING_ON + #pragma shader_feature_local _ _ALPHATEST_ON + #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE + + #define CFXR_URP + #define CFXR_GLOW_SHADER + #include "CFXR_PASSES.cginc" + + ENDCG + } + + // Same as above with 'Universal2D' instead and DISABLE_SOFT_PARTICLES keyword + Pass + { + Name "BASE" + Tags { "LightMode"="Universal2D" } + + CGPROGRAM + + #pragma vertex vertex_program + #pragma fragment fragment_program + + #pragma target 2.0 + + // #pragma multi_compile_instancing + // #pragma instancing_options procedural:ParticleInstancingSetup + #pragma multi_compile_fog + + #pragma shader_feature_local _ _CFXR_GLOW_POW_P2 _CFXR_GLOW_POW_P4 _CFXR_GLOW_POW_P8 + #pragma shader_feature_local _ _CFXR_HDR_BOOST + #pragma shader_feature_local _ _CFXR_DISSOLVE + + #pragma shader_feature_local _FADING_ON + #pragma shader_feature_local _ _ALPHATEST_ON + #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE + + #define CFXR_URP + #define DISABLE_SOFT_PARTICLES + #define CFXR_GLOW_SHADER + #include "CFXR_PASSES.cginc" + + ENDCG + } + + //-------------------------------------------------------------------------------------------------------------------------------- + + Pass + { + Name "ShadowCaster" + Tags { "LightMode" = "ShadowCaster" } + + BlendOp Add + Blend One Zero + ZWrite On + Cull Off + + CGPROGRAM + + #pragma vertex vertex_program + #pragma fragment fragment_program + + #pragma shader_feature_local _ _CFXR_GLOW_POW_P2 _CFXR_GLOW_POW_P4 _CFXR_GLOW_POW_P8 + #pragma shader_feature_local _ _CFXR_DISSOLVE + + #pragma shader_feature_local _FADING_ON + #pragma shader_feature_local _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON + + #pragma multi_compile_shadowcaster + #pragma shader_feature_local _ _CFXR_DITHERED_SHADOWS_ON _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE + + #if (_CFXR_DITHERED_SHADOWS_ON || _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE) && !defined(SHADER_API_GLES) + #pragma target 3.0 //needed for VPOS + #endif + + #define CFXR_URP + #define PASS_SHADOW_CASTER + #define CFXR_GLOW_SHADER + #include "CFXR_PASSES.cginc" + + ENDCG + } + } + + //==================================================================================================================================== + // Built-in Rendering Pipeline + + SubShader + { + Pass + { + Name "BASE" + Tags { "LightMode"="ForwardBase" } + + CGPROGRAM + + #pragma vertex vertex_program + #pragma fragment fragment_program + + //vertInstancingSetup writes to global, not allowed with DXC + // #pragma never_use_dxc + // #pragma target 2.5 + // #pragma multi_compile_instancing + // #pragma instancing_options procedural:vertInstancingSetup + + #pragma multi_compile_particles + #pragma multi_compile_fog + + #pragma shader_feature_local _ _CFXR_GLOW_POW_P2 _CFXR_GLOW_POW_P4 _CFXR_GLOW_POW_P8 + #pragma shader_feature_local _ _CFXR_HDR_BOOST + #pragma shader_feature_local _ _CFXR_DISSOLVE + + #pragma shader_feature_local _FADING_ON + #pragma shader_feature_local _ _ALPHATEST_ON + #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE + + #include "UnityStandardParticleInstancing.cginc" + + #define CFXR_GLOW_SHADER + #include "CFXR_PASSES.cginc" + + ENDCG + } + + //-------------------------------------------------------------------------------------------------------------------------------- + + Pass + { + Name "ShadowCaster" + Tags { "LightMode" = "ShadowCaster" } + + BlendOp Add + Blend One Zero + ZWrite On + Cull Off + + CGPROGRAM + + #pragma vertex vertex_program + #pragma fragment fragment_program + + //vertInstancingSetup writes to global, not allowed with DXC + // #pragma never_use_dxc + // #pragma target 2.5 + // #pragma multi_compile_instancing + // #pragma instancing_options procedural:vertInstancingSetup + + #pragma shader_feature_local _ _CFXR_GLOW_POW_P2 _CFXR_GLOW_POW_P4 _CFXR_GLOW_POW_P8 + #pragma shader_feature_local _ _CFXR_DISSOLVE + + #pragma shader_feature_local _FADING_ON + #pragma shader_feature_local _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON + + #pragma multi_compile_shadowcaster + #pragma shader_feature_local _ _CFXR_DITHERED_SHADOWS_ON _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE + + #if (_CFXR_DITHERED_SHADOWS_ON || _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE) && !defined(SHADER_API_GLES) + #pragma target 3.0 //needed for VPOS + #endif + + #include "UnityStandardParticleInstancing.cginc" + + #define PASS_SHADOW_CASTER + #define CFXR_GLOW_SHADER + #include "CFXR_PASSES.cginc" + + ENDCG + } + } + } + + CustomEditor "CartoonFX.MaterialInspector" +} + diff --git a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR Particle Procedural Ring.shader b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR Particle Procedural Ring.shader index 7e5e939..ebd6937 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR Particle Procedural Ring.shader +++ b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR Particle Procedural Ring.shader @@ -1,276 +1,276 @@ -//-------------------------------------------------------------------------------------------------------------------------------- -// Cartoon FX -// (c) 2012-2020 Jean Moreno -//-------------------------------------------------------------------------------------------------------------------------------- - -Shader "Cartoon FX/Remaster/Particle Procedural Ring" -{ - Properties - { - //# Blending - //# - [Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend ("Blend Source", Float) = 5 - [Enum(UnityEngine.Rendering.BlendMode)] _DstBlend ("Blend Destination", Float) = 10 - - //# -------------------------------------------------------- - - [Toggle(_CFXR_DISSOLVE)] _UseDissolve ("Enable Dissolve", Float) = 0 - //# IF_KEYWORD _CFXR_DISSOLVE - [NoScaleOffset] _DissolveTex ("Dissolve Texture", 2D) = "gray" {} - _DissolveSmooth ("Dissolve Smoothing", Range(0.0001,0.5)) = 0.1 - [ToggleNoKeyword] _InvertDissolveTex ("Invert Dissolve Texture", Float) = 0 - //# END_IF - - //# -------------------------------------------------------- - - //# Textures - //# - - _MainTex ("Texture", 2D) = "white" {} - [Toggle(_CFXR_SINGLE_CHANNEL)] _SingleChannel ("Single Channel Texture", Float) = 0 - - //# -------------------------------------------------------- - - //# Ring - //# - - [Toggle(_CFXR_RADIAL_UV)] _UseRadialUV ("Enable Radial UVs", Float) = 0 - _RingTopOffset ("Ring Offset", float) = 0.05 - [Toggle(_CFXR_WORLD_SPACE_RING)] _WorldSpaceRing ("World Space", Float) = 0 - - //# -------------------------------------------------------- - - [Toggle(_CFXR_HDR_BOOST)] _HdrBoost ("Enable HDR Multiplier", Float) = 0 - //# IF_KEYWORD _CFXR_HDR_BOOST - _HdrMultiply ("HDR Multiplier", Float) = 2 - //# END_IF - - //# -------------------------------------------------------- - - [Toggle(_FADING_ON)] _UseSP ("Soft Particles", Float) = 0 - //# IF_KEYWORD _FADING_ON - _SoftParticlesFadeDistanceNear ("Near Fade", Float) = 0 - _SoftParticlesFadeDistanceFar ("Far Fade", Float) = 1 - //# END_IF - - //# ======================================================== - //# Shadows - //# - - [KeywordEnum(Off,On,CustomTexture)] _CFXR_DITHERED_SHADOWS ("Dithered Shadows", Float) = 0 - //# IF_KEYWORD _CFXR_DITHERED_SHADOWS_ON || _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE - _ShadowStrength ("Shadows Strength Max", Range(0,1)) = 1.0 - //# IF_KEYWORD _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE - _DitherCustom ("Dithering 3D Texture", 3D) = "black" {} - //# END_IF - //# END_IF - } - - Category - { - Tags - { - "Queue"="Transparent" - "IgnoreProjector"="True" - "RenderType"="Transparent" - } - Blend [_SrcBlend] [_DstBlend] - Cull Off - ZWrite Off - - //==================================================================================================================================== - // Universal Rendering Pipeline - - SubShader - { - Pass - { - Name "BASE" - Tags { "LightMode"="UniversalForward" } - - CGPROGRAM - - #pragma vertex vertex_program - #pragma fragment fragment_program - - #pragma target 2.0 - - // #pragma multi_compile_instancing - #pragma multi_compile_fog - - #pragma shader_feature_local _ _CFXR_SINGLE_CHANNEL - #pragma shader_feature_local _ _CFXR_RADIAL_UV - #pragma shader_feature_local _ _CFXR_WORLD_SPACE_RING - #pragma shader_feature_local _ _CFXR_DISSOLVE - #pragma shader_feature_local _ _CFXR_HDR_BOOST - - // Using the same keywords as Unity's Standard Particle shader to minimize project-wide keyword usage - #pragma shader_feature_local _ _FADING_ON - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE - - #define CFXR_URP - #define CFXR_PROCEDURAL_RING_SHADER - #include "CFXR_PASSES.cginc" - - ENDCG - } - - // Same as above with 'Universal2D' instead and DISABLE_SOFT_PARTICLES keyword - Pass - { - Name "BASE" - Tags { "LightMode"="Universal2D" } - - CGPROGRAM - - #pragma vertex vertex_program - #pragma fragment fragment_program - - #pragma target 2.0 - - // #pragma multi_compile_instancing - #pragma multi_compile_fog - - #pragma shader_feature_local _ _CFXR_SINGLE_CHANNEL - #pragma shader_feature_local _ _CFXR_RADIAL_UV - #pragma shader_feature_local _ _CFXR_WORLD_SPACE_RING - #pragma shader_feature_local _ _CFXR_DISSOLVE - #pragma shader_feature_local _ _CFXR_HDR_BOOST - - // Using the same keywords as Unity's Standard Particle shader to minimize project-wide keyword usage - #pragma shader_feature_local _ _FADING_ON - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE - - #define CFXR_URP - #define DISABLE_SOFT_PARTICLES - #define CFXR_PROCEDURAL_RING_SHADER - #include "CFXR_PASSES.cginc" - - ENDCG - } - - //-------------------------------------------------------------------------------------------------------------------------------- - - Pass - { - Name "ShadowCaster" - Tags { "LightMode" = "ShadowCaster" } - - BlendOp Add - Blend One Zero - ZWrite On - Cull Off - - CGPROGRAM - - #pragma vertex vertex_program - #pragma fragment fragment_program - - #pragma shader_feature_local _ _CFXR_SINGLE_CHANNEL - #pragma shader_feature_local _ _CFXR_RADIAL_UV - #pragma shader_feature_local _ _CFXR_WORLD_SPACE_RING - #pragma shader_feature_local _ _CFXR_DISSOLVE - - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE - - #pragma multi_compile_shadowcaster - #pragma shader_feature_local _ _CFXR_DITHERED_SHADOWS_ON _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE - - #if (_CFXR_DITHERED_SHADOWS_ON || _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE) && !defined(SHADER_API_GLES) - #pragma target 3.0 //needed for VPOS - #endif - - #define CFXR_URP - #define PASS_SHADOW_CASTER - #define CFXR_PROCEDURAL_RING_SHADER - #include "CFXR_PASSES.cginc" - - ENDCG - } - } - - //==================================================================================================================================== - // Built-in Rendering Pipeline - - SubShader - { - Pass - { - Name "BASE" - Tags { "LightMode"="ForwardBase" } - - CGPROGRAM - - #pragma vertex vertex_program - #pragma fragment fragment_program - - #pragma target 2.0 - - #pragma multi_compile_particles - // #pragma multi_compile_instancing - #pragma multi_compile_fog - - #pragma shader_feature_local _ _CFXR_SINGLE_CHANNEL - #pragma shader_feature_local _ _CFXR_RADIAL_UV - #pragma shader_feature_local _ _CFXR_WORLD_SPACE_RING - #pragma shader_feature_local _ _CFXR_DISSOLVE - #pragma shader_feature_local _ _CFXR_HDR_BOOST - - // Using the same keywords as Unity's Standard Particle shader to minimize project-wide keyword usage - #pragma shader_feature_local _ _FADING_ON - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE - - #define CFXR_PROCEDURAL_RING_SHADER - #include "CFXR_PASSES.cginc" - - ENDCG - } - - //-------------------------------------------------------------------------------------------------------------------------------- - - Pass - { - Name "ShadowCaster" - Tags { "LightMode" = "ShadowCaster" } - - BlendOp Add - Blend One Zero - ZWrite On - Cull Off - - CGPROGRAM - - #pragma vertex vertex_program - #pragma fragment fragment_program - - #pragma shader_feature_local _ _CFXR_SINGLE_CHANNEL - #pragma shader_feature_local _ _CFXR_RADIAL_UV - #pragma shader_feature_local _ _CFXR_WORLD_SPACE_RING - #pragma shader_feature_local _ _CFXR_DISSOLVE - - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE - - #pragma multi_compile_shadowcaster - #pragma shader_feature_local _ _CFXR_DITHERED_SHADOWS_ON _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE - - #if (_CFXR_DITHERED_SHADOWS_ON || _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE) && !defined(SHADER_API_GLES) - #pragma target 3.0 //needed for VPOS - #endif - - #define PASS_SHADOW_CASTER - #define CFXR_PROCEDURAL_RING_SHADER - #include "CFXR_PASSES.cginc" - - ENDCG - } - } - } - - CustomEditor "CartoonFX.MaterialInspector" -} - +//-------------------------------------------------------------------------------------------------------------------------------- +// Cartoon FX +// (c) 2012-2020 Jean Moreno +//-------------------------------------------------------------------------------------------------------------------------------- + +Shader "Cartoon FX/Remaster/Particle Procedural Ring" +{ + Properties + { + //# Blending + //# + [Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend ("Blend Source", Float) = 5 + [Enum(UnityEngine.Rendering.BlendMode)] _DstBlend ("Blend Destination", Float) = 10 + + //# -------------------------------------------------------- + + [Toggle(_CFXR_DISSOLVE)] _UseDissolve ("Enable Dissolve", Float) = 0 + //# IF_KEYWORD _CFXR_DISSOLVE + [NoScaleOffset] _DissolveTex ("Dissolve Texture", 2D) = "gray" {} + _DissolveSmooth ("Dissolve Smoothing", Range(0.0001,0.5)) = 0.1 + [ToggleNoKeyword] _InvertDissolveTex ("Invert Dissolve Texture", Float) = 0 + //# END_IF + + //# -------------------------------------------------------- + + //# Textures + //# + + _MainTex ("Texture", 2D) = "white" {} + [Toggle(_CFXR_SINGLE_CHANNEL)] _SingleChannel ("Single Channel Texture", Float) = 0 + + //# -------------------------------------------------------- + + //# Ring + //# + + [Toggle(_CFXR_RADIAL_UV)] _UseRadialUV ("Enable Radial UVs", Float) = 0 + _RingTopOffset ("Ring Offset", float) = 0.05 + [Toggle(_CFXR_WORLD_SPACE_RING)] _WorldSpaceRing ("World Space", Float) = 0 + + //# -------------------------------------------------------- + + [Toggle(_CFXR_HDR_BOOST)] _HdrBoost ("Enable HDR Multiplier", Float) = 0 + //# IF_KEYWORD _CFXR_HDR_BOOST + _HdrMultiply ("HDR Multiplier", Float) = 2 + //# END_IF + + //# -------------------------------------------------------- + + [Toggle(_FADING_ON)] _UseSP ("Soft Particles", Float) = 0 + //# IF_KEYWORD _FADING_ON + _SoftParticlesFadeDistanceNear ("Near Fade", Float) = 0 + _SoftParticlesFadeDistanceFar ("Far Fade", Float) = 1 + //# END_IF + + //# ======================================================== + //# Shadows + //# + + [KeywordEnum(Off,On,CustomTexture)] _CFXR_DITHERED_SHADOWS ("Dithered Shadows", Float) = 0 + //# IF_KEYWORD _CFXR_DITHERED_SHADOWS_ON || _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE + _ShadowStrength ("Shadows Strength Max", Range(0,1)) = 1.0 + //# IF_KEYWORD _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE + _DitherCustom ("Dithering 3D Texture", 3D) = "black" {} + //# END_IF + //# END_IF + } + + Category + { + Tags + { + "Queue"="Transparent" + "IgnoreProjector"="True" + "RenderType"="Transparent" + } + Blend [_SrcBlend] [_DstBlend] + Cull Off + ZWrite Off + + //==================================================================================================================================== + // Universal Rendering Pipeline + + SubShader + { + Pass + { + Name "BASE" + Tags { "LightMode"="UniversalForward" } + + CGPROGRAM + + #pragma vertex vertex_program + #pragma fragment fragment_program + + #pragma target 2.0 + + // #pragma multi_compile_instancing + #pragma multi_compile_fog + + #pragma shader_feature_local _ _CFXR_SINGLE_CHANNEL + #pragma shader_feature_local _ _CFXR_RADIAL_UV + #pragma shader_feature_local _ _CFXR_WORLD_SPACE_RING + #pragma shader_feature_local _ _CFXR_DISSOLVE + #pragma shader_feature_local _ _CFXR_HDR_BOOST + + // Using the same keywords as Unity's Standard Particle shader to minimize project-wide keyword usage + #pragma shader_feature_local _ _FADING_ON + #pragma shader_feature_local _ _ALPHATEST_ON + #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE + + #define CFXR_URP + #define CFXR_PROCEDURAL_RING_SHADER + #include "CFXR_PASSES.cginc" + + ENDCG + } + + // Same as above with 'Universal2D' instead and DISABLE_SOFT_PARTICLES keyword + Pass + { + Name "BASE" + Tags { "LightMode"="Universal2D" } + + CGPROGRAM + + #pragma vertex vertex_program + #pragma fragment fragment_program + + #pragma target 2.0 + + // #pragma multi_compile_instancing + #pragma multi_compile_fog + + #pragma shader_feature_local _ _CFXR_SINGLE_CHANNEL + #pragma shader_feature_local _ _CFXR_RADIAL_UV + #pragma shader_feature_local _ _CFXR_WORLD_SPACE_RING + #pragma shader_feature_local _ _CFXR_DISSOLVE + #pragma shader_feature_local _ _CFXR_HDR_BOOST + + // Using the same keywords as Unity's Standard Particle shader to minimize project-wide keyword usage + #pragma shader_feature_local _ _FADING_ON + #pragma shader_feature_local _ _ALPHATEST_ON + #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE + + #define CFXR_URP + #define DISABLE_SOFT_PARTICLES + #define CFXR_PROCEDURAL_RING_SHADER + #include "CFXR_PASSES.cginc" + + ENDCG + } + + //-------------------------------------------------------------------------------------------------------------------------------- + + Pass + { + Name "ShadowCaster" + Tags { "LightMode" = "ShadowCaster" } + + BlendOp Add + Blend One Zero + ZWrite On + Cull Off + + CGPROGRAM + + #pragma vertex vertex_program + #pragma fragment fragment_program + + #pragma shader_feature_local _ _CFXR_SINGLE_CHANNEL + #pragma shader_feature_local _ _CFXR_RADIAL_UV + #pragma shader_feature_local _ _CFXR_WORLD_SPACE_RING + #pragma shader_feature_local _ _CFXR_DISSOLVE + + #pragma shader_feature_local _ _ALPHATEST_ON + #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE + + #pragma multi_compile_shadowcaster + #pragma shader_feature_local _ _CFXR_DITHERED_SHADOWS_ON _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE + + #if (_CFXR_DITHERED_SHADOWS_ON || _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE) && !defined(SHADER_API_GLES) + #pragma target 3.0 //needed for VPOS + #endif + + #define CFXR_URP + #define PASS_SHADOW_CASTER + #define CFXR_PROCEDURAL_RING_SHADER + #include "CFXR_PASSES.cginc" + + ENDCG + } + } + + //==================================================================================================================================== + // Built-in Rendering Pipeline + + SubShader + { + Pass + { + Name "BASE" + Tags { "LightMode"="ForwardBase" } + + CGPROGRAM + + #pragma vertex vertex_program + #pragma fragment fragment_program + + #pragma target 2.0 + + #pragma multi_compile_particles + // #pragma multi_compile_instancing + #pragma multi_compile_fog + + #pragma shader_feature_local _ _CFXR_SINGLE_CHANNEL + #pragma shader_feature_local _ _CFXR_RADIAL_UV + #pragma shader_feature_local _ _CFXR_WORLD_SPACE_RING + #pragma shader_feature_local _ _CFXR_DISSOLVE + #pragma shader_feature_local _ _CFXR_HDR_BOOST + + // Using the same keywords as Unity's Standard Particle shader to minimize project-wide keyword usage + #pragma shader_feature_local _ _FADING_ON + #pragma shader_feature_local _ _ALPHATEST_ON + #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE + + #define CFXR_PROCEDURAL_RING_SHADER + #include "CFXR_PASSES.cginc" + + ENDCG + } + + //-------------------------------------------------------------------------------------------------------------------------------- + + Pass + { + Name "ShadowCaster" + Tags { "LightMode" = "ShadowCaster" } + + BlendOp Add + Blend One Zero + ZWrite On + Cull Off + + CGPROGRAM + + #pragma vertex vertex_program + #pragma fragment fragment_program + + #pragma shader_feature_local _ _CFXR_SINGLE_CHANNEL + #pragma shader_feature_local _ _CFXR_RADIAL_UV + #pragma shader_feature_local _ _CFXR_WORLD_SPACE_RING + #pragma shader_feature_local _ _CFXR_DISSOLVE + + #pragma shader_feature_local _ _ALPHATEST_ON + #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE + + #pragma multi_compile_shadowcaster + #pragma shader_feature_local _ _CFXR_DITHERED_SHADOWS_ON _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE + + #if (_CFXR_DITHERED_SHADOWS_ON || _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE) && !defined(SHADER_API_GLES) + #pragma target 3.0 //needed for VPOS + #endif + + #define PASS_SHADOW_CASTER + #define CFXR_PROCEDURAL_RING_SHADER + #include "CFXR_PASSES.cginc" + + ENDCG + } + } + } + + CustomEditor "CartoonFX.MaterialInspector" +} + diff --git a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR Particle Ubershader.shader b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR Particle Ubershader.shader index 8892571..f0a09e2 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR Particle Ubershader.shader +++ b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR Particle Ubershader.shader @@ -1,449 +1,449 @@ -//-------------------------------------------------------------------------------------------------------------------------------- -// Cartoon FX -// (c) 2012-2020 Jean Moreno -//-------------------------------------------------------------------------------------------------------------------------------- - -Shader "Cartoon FX/Remaster/Particle Ubershader" -{ - Properties - { - //# Blending - //# - [Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend ("Blend Source", Float) = 5 - [Enum(UnityEngine.Rendering.BlendMode)] _DstBlend ("Blend Destination", Float) = 10 - [KeywordEnumNoPrefix(Alpha Blending, _ALPHABLEND_ON, Alpha Blending Premultiplied, _ALPHAPREMULTIPLY_ON, Multiplicative, _ALPHAMODULATE_ON, Additive, _CFXR_ADDITIVE)] _BlendingType ("Blending Type", Float) = 0 - - //# - [ToggleNoKeyword] _ZWrite ("Depth Write", Float) = 0 - [Toggle(_ALPHATEST_ON)] _UseAlphaClip ("Alpha Clipping (Cutout)", Float) = 0 - //# IF_KEYWORD _ALPHATEST_ON - _Cutoff ("Cutoff Threshold", Range(0.001,1)) = 0.1 - //# END_IF - - //# -------------------------------------------------------- - - [Toggle(_FADING_ON)] _UseSP ("Soft Particles", Float) = 0 - //# IF_KEYWORD _FADING_ON - _SoftParticlesFadeDistanceNear ("Near Fade", Float) = 0 - _SoftParticlesFadeDistanceFar ("Far Fade", Float) = 1 - //# END_IF - - //# - - [Toggle(_CFXR_EDGE_FADING)] _UseEF ("Edge Fade", Float) = 0 - //# IF_KEYWORD _CFXR_EDGE_FADING - _EdgeFadePow ("Edge Fade Power", Float) = 1 - //# END_IF - - //# - - //# ======================================================== - - //# Effects - //# - - [Toggle(_CFXR_DISSOLVE)] _UseDissolve ("Enable Dissolve", Float) = 0 - //# IF_KEYWORD _CFXR_DISSOLVE - _DissolveTex ("Dissolve Texture", 2D) = "gray" {} - _DissolveSmooth ("Dissolve Smoothing", Range(0.0001,0.5)) = 0.1 - [ToggleNoKeyword] _InvertDissolveTex ("Invert Dissolve Texture", Float) = 0 - [ToggleNoKeyword] _DoubleDissolve ("Double Dissolve", Float) = 0 - [Toggle(_CFXR_DISSOLVE_ALONG_UV_X)] _UseDissolveOffsetUV ("Dissolve offset along X", Float) = 0 - //# IF_KEYWORD _CFXR_DISSOLVE_ALONG_UV_X - _DissolveScroll ("UV Scrolling", Vector) = (0,0,0,0) - //# END_IF - //# END_IF - - //# -------------------------------------------------------- - - [Toggle(_CFXR_UV_DISTORTION)] _UseUVDistortion ("Enable UV Distortion", Float) = 0 - //# IF_KEYWORD _CFXR_UV_DISTORTION - - [NoScaleOffset] _DistortTex ("Distortion Texture", 2D) = "gray" {} - _DistortScrolling ("Scroll (XY) Tile (ZW)", Vector) = (0,0,1,1) - [Toggle(_CFXR_UV2_DISTORTION)] _UseUV2Distortion ("Use UV2", Float) = 0 - _Distort ("Distortion Strength", Range(0,2.0)) = 0.1 - [ToggleNoKeyword] _FadeAlongU ("Fade along Y", Float) = 0 - [Toggle(_CFXR_UV_DISTORTION_ADD)] _UVDistortionAdd ("Add to base UV", Float) = 0 - //# END_IF - - //# ======================================================== - - //# Colors - //# - - [NoScaleOffset] _MainTex ("Texture", 2D) = "white" {} - [Toggle(_CFXR_SINGLE_CHANNEL)] _SingleChannel ("Single Channel Texture", Float) = 0 - - //# -------------------------------------------------------- - - [KeywordEnum(Off,1x,2x)] _CFXR_OVERLAYTEX ("Enable Overlay Texture", Float) = 0 - //# IF_KEYWORD _CFXR_OVERLAYTEX_1X || _CFXR_OVERLAYTEX_2X - [KeywordEnum(RGBA,RGB,A)] _CFXR_OVERLAYBLEND ("Overlay Blend Channels", Float) = 0 - [NoScaleOffset] _OverlayTex ("Overlay Texture", 2D) = "white" {} - _OverlayTex_Scroll ("Overlay Scrolling / Scale", Vector) = (0.1,0.1,1,1) - //# END_IF - - //# -------------------------------------------------------- - - [Toggle(_FLIPBOOK_BLENDING)] _UseFB ("Flipbook Blending", Float) = 0 - - //# -------------------------------------------------------- - - [Toggle(_CFXR_SECONDCOLOR_LERP)] _UseSecondColor ("Secondary Vertex Color (TEXCOORD2)", Float) = 0 - //# IF_KEYWORD _CFXR_SECONDCOLOR_LERP - [NoScaleOffset] _SecondColorTex ("Second Color Map", 2D) = "black" {} - _SecondColorSmooth ("Second Color Smoothing", Range(0.0001,0.5)) = 0.2 - //# END_IF - - //# -------------------------------------------------------- - - [Toggle(_CFXR_FONT_COLORS)] _UseFontColor ("Use Font Colors", Float) = 0 - -// //# -------------------------------------------------------- -// -// [Toggle(_CFXR_GRADIENTMAP)] _UseGradientMap ("Gradient Map", Float) = 0 -// //# IF_KEYWORD _CFXR_GRADIENTMAP -// [NoScaleOffset] _GradientMap ("Gradient Map", 2D) = "black" {} -// //# END_IF - - //# -------------------------------------------------------- - - [Toggle(_CFXR_HDR_BOOST)] _HdrBoost ("Enable HDR Multiplier", Float) = 0 - //# IF_KEYWORD _CFXR_HDR_BOOST - _HdrMultiply ("HDR Multiplier", Float) = 2 - //# END_IF - - //# -------------------------------------------------------- - - //# Lighting - //# - - [KeywordEnumNoPrefix(Off, _, Direct, _CFXR_LIGHTING_DIRECT, Indirect, _CFXR_LIGHTING_INDIRECT, Both, _CFXR_LIGHTING_ALL)] _UseLighting ("Mode", Float) = 0 - //# IF_KEYWORD _CFXR_LIGHTING_DIRECT || _CFXR_LIGHTING_ALL - _DirectLightingRamp ("Direct Lighting Ramp", Range(0,1)) = 1.0 - //# END_IF - //# - //# IF_KEYWORD _CFXR_LIGHTING_DIRECT || _CFXR_LIGHTING_INDIRECT || _CFXR_LIGHTING_ALL - [Toggle(_NORMALMAP)] _UseNormalMap ("Enable Normal Map", Float) = 0 - //# IF_KEYWORD _NORMALMAP - [NoScaleOffset] _BumpMap ("Normal Map", 2D) = "bump" {} - _BumpScale ("Normal Scale", Range(-1, 1)) = 1.0 - //# END_IF - //# - [Toggle(_EMISSION)] _UseEmission ("Enable Emission (TEXCOORD2)", Float) = 0 - //# - [Toggle(_CFXR_LIGHTING_WPOS_OFFSET)] _UseLightingWorldPosOffset ("Enable World Pos. Offset", Float) = 0 - //# IF_KEYWORD _CFXR_LIGHTING_WPOS_OFFSET - _LightingWorldPosStrength ("Offset Strength", Range(0,1)) = 0.2 - //# END_IF - //# - [Toggle(_CFXR_LIGHTING_BACK)] _UseBackLighting ("Enable Backlighting", Float) = 0 - //# IF_KEYWORD _CFXR_LIGHTING_BACK - _DirLightScreenAtten ("Dir. Light Screen Attenuation", Range(0, 5)) = 1.0 - _BacklightTransmittance ("Backlight Transmittance", Range(0, 2)) = 1.0 - //# END_IF - //# - //# IF_KEYWORD _CFXR_LIGHTING_INDIRECT || _CFXR_LIGHTING_ALL - _IndirectLightingMix ("Indirect Lighting Mix", Range(0,1)) = 0.5 - //# END_IF - _ShadowColor ("Shadow Color", Color) = (0,0,0,1) - //# - //# END_IF - - //# ======================================================== - //# Shadows - //# - - [KeywordEnum(Off,On,CustomTexture)] _CFXR_DITHERED_SHADOWS ("Dithered Shadows", Float) = 0 - //# IF_KEYWORD _CFXR_DITHERED_SHADOWS_ON || _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE - _ShadowStrength ("Shadows Strength Max", Range(0,1)) = 1.0 - //# IF_KEYWORD _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE - _DitherCustom ("Dithering 3D Texture", 3D) = "black" {} - //# END_IF - //# END_IF - -// _ReceivedShadowsStrength ("Received Shadows Strength", Range(0,1)) = 0.5 - } - - Category - { - Tags - { - "Queue"="Transparent" - "IgnoreProjector"="True" - "RenderType"="Transparent" - "PreviewType"="Plane" - } - - Blend [_SrcBlend] [_DstBlend], One One - ZWrite [_ZWrite] - Cull Off - - //==================================================================================================================================== - // Universal Rendering Pipeline - - Subshader - { - Pass - { - Name "BASE_URP" - Tags { "LightMode"="UniversalForward" } - - CGPROGRAM - - #pragma vertex vertex_program - #pragma fragment fragment_program - - #pragma target 2.0 - - // #pragma multi_compile_instancing - // #pragma instancing_options procedural:ParticleInstancingSetup - - #pragma multi_compile_fog - //#pragma multi_compile_fwdbase - //#pragma multi_compile SHADOWS_SCREEN - - #pragma shader_feature_local _ _CFXR_SINGLE_CHANNEL - #pragma shader_feature_local _ _CFXR_DISSOLVE - #pragma shader_feature_local _ _CFXR_DISSOLVE_ALONG_UV_X - #pragma shader_feature_local _ _CFXR_UV_DISTORTION - #pragma shader_feature_local _ _CFXR_UV2_DISTORTION - #pragma shader_feature_local _ _CFXR_UV_DISTORTION_ADD - // #pragma shader_feature_local _ _CFXR_GRADIENTMAP - #pragma shader_feature_local _ _CFXR_SECONDCOLOR_LERP _CFXR_FONT_COLORS - #pragma shader_feature_local _ _CFXR_OVERLAYTEX_1X _CFXR_OVERLAYTEX_2X - #pragma shader_feature_local _ _CFXR_OVERLAYBLEND_A _CFXR_OVERLAYBLEND_RGB - #pragma shader_feature_local _ _CFXR_HDR_BOOST - #pragma shader_feature_local _ _CFXR_EDGE_FADING - #pragma shader_feature_local _ _CFXR_LIGHTING_DIRECT _CFXR_LIGHTING_INDIRECT _CFXR_LIGHTING_ALL - #pragma shader_feature_local _ _CFXR_LIGHTING_WPOS_OFFSET - #pragma shader_feature_local _ _CFXR_LIGHTING_BACK - - // Using the same keywords as Unity's Standard Particle shader to minimize project-wide keyword usage - #pragma shader_feature_local _ _NORMALMAP - #pragma shader_feature_local _ _EMISSION - #pragma shader_feature_local _ _FLIPBOOK_BLENDING - #pragma shader_feature_local _ _FADING_ON - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE - - #define CFXR_URP - #define CFXR_UBERSHADER - #include "CFXR_PASSES.cginc" - - ENDCG - } - - // Same as above with 'Universal2D' instead and DISABLE_SOFT_PARTICLES keyword - Pass - { - Name "BASE_URP" - Tags { "LightMode"="Universal2D" } - - CGPROGRAM - - #pragma vertex vertex_program - #pragma fragment fragment_program - - #pragma target 2.0 - - // #pragma multi_compile_instancing - // #pragma instancing_options procedural:ParticleInstancingSetup - - #pragma multi_compile_fog - //#pragma multi_compile_fwdbase - //#pragma multi_compile SHADOWS_SCREEN - - #pragma shader_feature_local _ _CFXR_SINGLE_CHANNEL - #pragma shader_feature_local _ _CFXR_DISSOLVE - #pragma shader_feature_local _ _CFXR_DISSOLVE_ALONG_UV_X - #pragma shader_feature_local _ _CFXR_UV_DISTORTION - #pragma shader_feature_local _ _CFXR_UV2_DISTORTION - #pragma shader_feature_local _ _CFXR_UV_DISTORTION_ADD - // #pragma shader_feature_local _ _CFXR_GRADIENTMAP - #pragma shader_feature_local _ _CFXR_SECONDCOLOR_LERP _CFXR_FONT_COLORS - #pragma shader_feature_local _ _CFXR_OVERLAYTEX_1X _CFXR_OVERLAYTEX_2X - #pragma shader_feature_local _ _CFXR_OVERLAYBLEND_A _CFXR_OVERLAYBLEND_RGB - #pragma shader_feature_local _ _CFXR_HDR_BOOST - #pragma shader_feature_local _ _CFXR_EDGE_FADING - #pragma shader_feature_local _ _CFXR_LIGHTING_DIRECT _CFXR_LIGHTING_INDIRECT _CFXR_LIGHTING_ALL - #pragma shader_feature_local _ _CFXR_LIGHTING_WPOS_OFFSET - #pragma shader_feature_local _ _CFXR_LIGHTING_BACK - - // Using the same keywords as Unity's Standard Particle shader to minimize project-wide keyword usage - #pragma shader_feature_local _ _NORMALMAP - #pragma shader_feature_local _ _EMISSION - #pragma shader_feature_local _ _FLIPBOOK_BLENDING - #pragma shader_feature_local _ _FADING_ON - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE - - #define CFXR_UPR - #define DISABLE_SOFT_PARTICLES - #define CFXR_UBERSHADER - #include "CFXR_PASSES.cginc" - - ENDCG - } - - //-------------------------------------------------------------------------------------------------------------------------------- - - Pass - { - Name "ShadowCaster" - Tags { "LightMode" = "ShadowCaster" } - - BlendOp Add - Blend One Zero - ZWrite On - Cull Off - - CGPROGRAM - - #pragma vertex vertex_program - #pragma fragment fragment_program - - #pragma shader_feature_local _ _CFXR_SINGLE_CHANNEL - #pragma shader_feature_local _ _CFXR_DISSOLVE - #pragma shader_feature_local _ _CFXR_DISSOLVE_ALONG_UV_X - #pragma shader_feature_local _ _CFXR_UV_DISTORTION - #pragma shader_feature_local _ _CFXR_UV2_DISTORTION - #pragma shader_feature_local _ _CFXR_UV_DISTORTION_ADD - #pragma shader_feature_local _ _CFXR_OVERLAYTEX_1X _CFXR_OVERLAYTEX_2X - #pragma shader_feature_local _ _CFXR_OVERLAYBLEND_A _CFXR_OVERLAYBLEND_RGB - #pragma shader_feature_local _ _FLIPBOOK_BLENDING - - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE - - #pragma multi_compile_shadowcaster - #pragma shader_feature_local _ _CFXR_DITHERED_SHADOWS_ON _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE - - #if (_CFXR_DITHERED_SHADOWS_ON || _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE) && !defined(SHADER_API_GLES) - #pragma target 3.0 //needed for VPOS - #endif - - #define CFXR_UPR - #define PASS_SHADOW_CASTER - #define CFXR_UBERSHADER - #include "CFXR_PASSES.cginc" - - ENDCG - } - } - - //==================================================================================================================================== - // Built-in Rendering Pipeline - - SubShader - { - Pass - { - Name "BASE" - Tags { "LightMode"="ForwardBase" } - - CGPROGRAM - - #pragma vertex vertex_program - #pragma fragment fragment_program - - //vertInstancingSetup writes to global, not allowed with DXC - // #pragma never_use_dxc - // #pragma target 2.5 - // #pragma multi_compile_instancing - // #pragma instancing_options procedural:vertInstancingSetup - - #pragma multi_compile_particles - #pragma multi_compile_fog - //#pragma multi_compile_fwdbase - //#pragma multi_compile SHADOWS_SCREEN - - #pragma shader_feature_local _ _CFXR_SINGLE_CHANNEL - #pragma shader_feature_local _ _CFXR_DISSOLVE - #pragma shader_feature_local _ _CFXR_DISSOLVE_ALONG_UV_X - #pragma shader_feature_local _ _CFXR_UV_DISTORTION - #pragma shader_feature_local _ _CFXR_UV2_DISTORTION - #pragma shader_feature_local _ _CFXR_UV_DISTORTION_ADD - // #pragma shader_feature_local _ _CFXR_GRADIENTMAP - #pragma shader_feature_local _ _CFXR_SECONDCOLOR_LERP _CFXR_FONT_COLORS - #pragma shader_feature_local _ _CFXR_OVERLAYTEX_1X _CFXR_OVERLAYTEX_2X - #pragma shader_feature_local _ _CFXR_OVERLAYBLEND_A _CFXR_OVERLAYBLEND_RGB - #pragma shader_feature_local _ _CFXR_HDR_BOOST - #pragma shader_feature_local _ _CFXR_EDGE_FADING - #pragma shader_feature_local _ _CFXR_LIGHTING_DIRECT _CFXR_LIGHTING_INDIRECT _CFXR_LIGHTING_ALL - #pragma shader_feature_local _ _CFXR_LIGHTING_WPOS_OFFSET - #pragma shader_feature_local _ _CFXR_LIGHTING_BACK - - // Using the same keywords as Unity's Standard Particle shader to minimize project-wide keyword usage - #pragma shader_feature_local _ _NORMALMAP - #pragma shader_feature_local _ _EMISSION - #pragma shader_feature_local _ _FLIPBOOK_BLENDING - #pragma shader_feature_local _ _FADING_ON - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE - - #include "UnityStandardParticleInstancing.cginc" - #define CFXR_UBERSHADER - #include "CFXR_PASSES.cginc" - - ENDCG - } - - //-------------------------------------------------------------------------------------------------------------------------------- - - Pass - { - Name "ShadowCaster" - Tags { "LightMode" = "ShadowCaster" } - - BlendOp Add - Blend One Zero - ZWrite On - Cull Off - - CGPROGRAM - - #pragma vertex vertex_program - #pragma fragment fragment_program - - //vertInstancingSetup writes to global, not allowed with DXC - // #pragma never_use_dxc - // #pragma target 2.5 - // #pragma multi_compile_instancing - // #pragma instancing_options procedural:vertInstancingSetup - - #pragma shader_feature_local _ _CFXR_SINGLE_CHANNEL - #pragma shader_feature_local _ _CFXR_DISSOLVE - #pragma shader_feature_local _ _CFXR_DISSOLVE_ALONG_UV_X - #pragma shader_feature_local _ _CFXR_UV_DISTORTION - #pragma shader_feature_local _ _CFXR_UV2_DISTORTION - #pragma shader_feature_local _ _CFXR_UV_DISTORTION_ADD - #pragma shader_feature_local _ _CFXR_OVERLAYTEX_1X _CFXR_OVERLAYTEX_2X - #pragma shader_feature_local _ _CFXR_OVERLAYBLEND_A _CFXR_OVERLAYBLEND_RGB - #pragma shader_feature_local _ _FLIPBOOK_BLENDING - - #pragma shader_feature_local _ _ALPHATEST_ON - #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE - - #pragma multi_compile_shadowcaster - #pragma shader_feature_local _ _CFXR_DITHERED_SHADOWS_ON _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE - - #if (_CFXR_DITHERED_SHADOWS_ON || _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE) && !defined(SHADER_API_GLES) - #pragma target 3.0 //needed for VPOS - #endif - - #include "UnityStandardParticleInstancing.cginc" - - #define PASS_SHADOW_CASTER - #define CFXR_UBERSHADER - #include "CFXR_PASSES.cginc" - - ENDCG - } - } - } - - CustomEditor "CartoonFX.MaterialInspector" -} - +//-------------------------------------------------------------------------------------------------------------------------------- +// Cartoon FX +// (c) 2012-2020 Jean Moreno +//-------------------------------------------------------------------------------------------------------------------------------- + +Shader "Cartoon FX/Remaster/Particle Ubershader" +{ + Properties + { + //# Blending + //# + [Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend ("Blend Source", Float) = 5 + [Enum(UnityEngine.Rendering.BlendMode)] _DstBlend ("Blend Destination", Float) = 10 + [KeywordEnumNoPrefix(Alpha Blending, _ALPHABLEND_ON, Alpha Blending Premultiplied, _ALPHAPREMULTIPLY_ON, Multiplicative, _ALPHAMODULATE_ON, Additive, _CFXR_ADDITIVE)] _BlendingType ("Blending Type", Float) = 0 + + //# + [ToggleNoKeyword] _ZWrite ("Depth Write", Float) = 0 + [Toggle(_ALPHATEST_ON)] _UseAlphaClip ("Alpha Clipping (Cutout)", Float) = 0 + //# IF_KEYWORD _ALPHATEST_ON + _Cutoff ("Cutoff Threshold", Range(0.001,1)) = 0.1 + //# END_IF + + //# -------------------------------------------------------- + + [Toggle(_FADING_ON)] _UseSP ("Soft Particles", Float) = 0 + //# IF_KEYWORD _FADING_ON + _SoftParticlesFadeDistanceNear ("Near Fade", Float) = 0 + _SoftParticlesFadeDistanceFar ("Far Fade", Float) = 1 + //# END_IF + + //# + + [Toggle(_CFXR_EDGE_FADING)] _UseEF ("Edge Fade", Float) = 0 + //# IF_KEYWORD _CFXR_EDGE_FADING + _EdgeFadePow ("Edge Fade Power", Float) = 1 + //# END_IF + + //# + + //# ======================================================== + + //# Effects + //# + + [Toggle(_CFXR_DISSOLVE)] _UseDissolve ("Enable Dissolve", Float) = 0 + //# IF_KEYWORD _CFXR_DISSOLVE + _DissolveTex ("Dissolve Texture", 2D) = "gray" {} + _DissolveSmooth ("Dissolve Smoothing", Range(0.0001,0.5)) = 0.1 + [ToggleNoKeyword] _InvertDissolveTex ("Invert Dissolve Texture", Float) = 0 + [ToggleNoKeyword] _DoubleDissolve ("Double Dissolve", Float) = 0 + [Toggle(_CFXR_DISSOLVE_ALONG_UV_X)] _UseDissolveOffsetUV ("Dissolve offset along X", Float) = 0 + //# IF_KEYWORD _CFXR_DISSOLVE_ALONG_UV_X + _DissolveScroll ("UV Scrolling", Vector) = (0,0,0,0) + //# END_IF + //# END_IF + + //# -------------------------------------------------------- + + [Toggle(_CFXR_UV_DISTORTION)] _UseUVDistortion ("Enable UV Distortion", Float) = 0 + //# IF_KEYWORD _CFXR_UV_DISTORTION + + [NoScaleOffset] _DistortTex ("Distortion Texture", 2D) = "gray" {} + _DistortScrolling ("Scroll (XY) Tile (ZW)", Vector) = (0,0,1,1) + [Toggle(_CFXR_UV2_DISTORTION)] _UseUV2Distortion ("Use UV2", Float) = 0 + _Distort ("Distortion Strength", Range(0,2.0)) = 0.1 + [ToggleNoKeyword] _FadeAlongU ("Fade along Y", Float) = 0 + [Toggle(_CFXR_UV_DISTORTION_ADD)] _UVDistortionAdd ("Add to base UV", Float) = 0 + //# END_IF + + //# ======================================================== + + //# Colors + //# + + [NoScaleOffset] _MainTex ("Texture", 2D) = "white" {} + [Toggle(_CFXR_SINGLE_CHANNEL)] _SingleChannel ("Single Channel Texture", Float) = 0 + + //# -------------------------------------------------------- + + [KeywordEnum(Off,1x,2x)] _CFXR_OVERLAYTEX ("Enable Overlay Texture", Float) = 0 + //# IF_KEYWORD _CFXR_OVERLAYTEX_1X || _CFXR_OVERLAYTEX_2X + [KeywordEnum(RGBA,RGB,A)] _CFXR_OVERLAYBLEND ("Overlay Blend Channels", Float) = 0 + [NoScaleOffset] _OverlayTex ("Overlay Texture", 2D) = "white" {} + _OverlayTex_Scroll ("Overlay Scrolling / Scale", Vector) = (0.1,0.1,1,1) + //# END_IF + + //# -------------------------------------------------------- + + [Toggle(_FLIPBOOK_BLENDING)] _UseFB ("Flipbook Blending", Float) = 0 + + //# -------------------------------------------------------- + + [Toggle(_CFXR_SECONDCOLOR_LERP)] _UseSecondColor ("Secondary Vertex Color (TEXCOORD2)", Float) = 0 + //# IF_KEYWORD _CFXR_SECONDCOLOR_LERP + [NoScaleOffset] _SecondColorTex ("Second Color Map", 2D) = "black" {} + _SecondColorSmooth ("Second Color Smoothing", Range(0.0001,0.5)) = 0.2 + //# END_IF + + //# -------------------------------------------------------- + + [Toggle(_CFXR_FONT_COLORS)] _UseFontColor ("Use Font Colors", Float) = 0 + +// //# -------------------------------------------------------- +// +// [Toggle(_CFXR_GRADIENTMAP)] _UseGradientMap ("Gradient Map", Float) = 0 +// //# IF_KEYWORD _CFXR_GRADIENTMAP +// [NoScaleOffset] _GradientMap ("Gradient Map", 2D) = "black" {} +// //# END_IF + + //# -------------------------------------------------------- + + [Toggle(_CFXR_HDR_BOOST)] _HdrBoost ("Enable HDR Multiplier", Float) = 0 + //# IF_KEYWORD _CFXR_HDR_BOOST + _HdrMultiply ("HDR Multiplier", Float) = 2 + //# END_IF + + //# -------------------------------------------------------- + + //# Lighting + //# + + [KeywordEnumNoPrefix(Off, _, Direct, _CFXR_LIGHTING_DIRECT, Indirect, _CFXR_LIGHTING_INDIRECT, Both, _CFXR_LIGHTING_ALL)] _UseLighting ("Mode", Float) = 0 + //# IF_KEYWORD _CFXR_LIGHTING_DIRECT || _CFXR_LIGHTING_ALL + _DirectLightingRamp ("Direct Lighting Ramp", Range(0,1)) = 1.0 + //# END_IF + //# + //# IF_KEYWORD _CFXR_LIGHTING_DIRECT || _CFXR_LIGHTING_INDIRECT || _CFXR_LIGHTING_ALL + [Toggle(_NORMALMAP)] _UseNormalMap ("Enable Normal Map", Float) = 0 + //# IF_KEYWORD _NORMALMAP + [NoScaleOffset] _BumpMap ("Normal Map", 2D) = "bump" {} + _BumpScale ("Normal Scale", Range(-1, 1)) = 1.0 + //# END_IF + //# + [Toggle(_EMISSION)] _UseEmission ("Enable Emission (TEXCOORD2)", Float) = 0 + //# + [Toggle(_CFXR_LIGHTING_WPOS_OFFSET)] _UseLightingWorldPosOffset ("Enable World Pos. Offset", Float) = 0 + //# IF_KEYWORD _CFXR_LIGHTING_WPOS_OFFSET + _LightingWorldPosStrength ("Offset Strength", Range(0,1)) = 0.2 + //# END_IF + //# + [Toggle(_CFXR_LIGHTING_BACK)] _UseBackLighting ("Enable Backlighting", Float) = 0 + //# IF_KEYWORD _CFXR_LIGHTING_BACK + _DirLightScreenAtten ("Dir. Light Screen Attenuation", Range(0, 5)) = 1.0 + _BacklightTransmittance ("Backlight Transmittance", Range(0, 2)) = 1.0 + //# END_IF + //# + //# IF_KEYWORD _CFXR_LIGHTING_INDIRECT || _CFXR_LIGHTING_ALL + _IndirectLightingMix ("Indirect Lighting Mix", Range(0,1)) = 0.5 + //# END_IF + _ShadowColor ("Shadow Color", Color) = (0,0,0,1) + //# + //# END_IF + + //# ======================================================== + //# Shadows + //# + + [KeywordEnum(Off,On,CustomTexture)] _CFXR_DITHERED_SHADOWS ("Dithered Shadows", Float) = 0 + //# IF_KEYWORD _CFXR_DITHERED_SHADOWS_ON || _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE + _ShadowStrength ("Shadows Strength Max", Range(0,1)) = 1.0 + //# IF_KEYWORD _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE + _DitherCustom ("Dithering 3D Texture", 3D) = "black" {} + //# END_IF + //# END_IF + +// _ReceivedShadowsStrength ("Received Shadows Strength", Range(0,1)) = 0.5 + } + + Category + { + Tags + { + "Queue"="Transparent" + "IgnoreProjector"="True" + "RenderType"="Transparent" + "PreviewType"="Plane" + } + + Blend [_SrcBlend] [_DstBlend], One One + ZWrite [_ZWrite] + Cull Off + + //==================================================================================================================================== + // Universal Rendering Pipeline + + Subshader + { + Pass + { + Name "BASE_URP" + Tags { "LightMode"="UniversalForward" } + + CGPROGRAM + + #pragma vertex vertex_program + #pragma fragment fragment_program + + #pragma target 2.0 + + // #pragma multi_compile_instancing + // #pragma instancing_options procedural:ParticleInstancingSetup + + #pragma multi_compile_fog + //#pragma multi_compile_fwdbase + //#pragma multi_compile SHADOWS_SCREEN + + #pragma shader_feature_local _ _CFXR_SINGLE_CHANNEL + #pragma shader_feature_local _ _CFXR_DISSOLVE + #pragma shader_feature_local _ _CFXR_DISSOLVE_ALONG_UV_X + #pragma shader_feature_local _ _CFXR_UV_DISTORTION + #pragma shader_feature_local _ _CFXR_UV2_DISTORTION + #pragma shader_feature_local _ _CFXR_UV_DISTORTION_ADD + // #pragma shader_feature_local _ _CFXR_GRADIENTMAP + #pragma shader_feature_local _ _CFXR_SECONDCOLOR_LERP _CFXR_FONT_COLORS + #pragma shader_feature_local _ _CFXR_OVERLAYTEX_1X _CFXR_OVERLAYTEX_2X + #pragma shader_feature_local _ _CFXR_OVERLAYBLEND_A _CFXR_OVERLAYBLEND_RGB + #pragma shader_feature_local _ _CFXR_HDR_BOOST + #pragma shader_feature_local _ _CFXR_EDGE_FADING + #pragma shader_feature_local _ _CFXR_LIGHTING_DIRECT _CFXR_LIGHTING_INDIRECT _CFXR_LIGHTING_ALL + #pragma shader_feature_local _ _CFXR_LIGHTING_WPOS_OFFSET + #pragma shader_feature_local _ _CFXR_LIGHTING_BACK + + // Using the same keywords as Unity's Standard Particle shader to minimize project-wide keyword usage + #pragma shader_feature_local _ _NORMALMAP + #pragma shader_feature_local _ _EMISSION + #pragma shader_feature_local _ _FLIPBOOK_BLENDING + #pragma shader_feature_local _ _FADING_ON + #pragma shader_feature_local _ _ALPHATEST_ON + #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE + + #define CFXR_URP + #define CFXR_UBERSHADER + #include "CFXR_PASSES.cginc" + + ENDCG + } + + // Same as above with 'Universal2D' instead and DISABLE_SOFT_PARTICLES keyword + Pass + { + Name "BASE_URP" + Tags { "LightMode"="Universal2D" } + + CGPROGRAM + + #pragma vertex vertex_program + #pragma fragment fragment_program + + #pragma target 2.0 + + // #pragma multi_compile_instancing + // #pragma instancing_options procedural:ParticleInstancingSetup + + #pragma multi_compile_fog + //#pragma multi_compile_fwdbase + //#pragma multi_compile SHADOWS_SCREEN + + #pragma shader_feature_local _ _CFXR_SINGLE_CHANNEL + #pragma shader_feature_local _ _CFXR_DISSOLVE + #pragma shader_feature_local _ _CFXR_DISSOLVE_ALONG_UV_X + #pragma shader_feature_local _ _CFXR_UV_DISTORTION + #pragma shader_feature_local _ _CFXR_UV2_DISTORTION + #pragma shader_feature_local _ _CFXR_UV_DISTORTION_ADD + // #pragma shader_feature_local _ _CFXR_GRADIENTMAP + #pragma shader_feature_local _ _CFXR_SECONDCOLOR_LERP _CFXR_FONT_COLORS + #pragma shader_feature_local _ _CFXR_OVERLAYTEX_1X _CFXR_OVERLAYTEX_2X + #pragma shader_feature_local _ _CFXR_OVERLAYBLEND_A _CFXR_OVERLAYBLEND_RGB + #pragma shader_feature_local _ _CFXR_HDR_BOOST + #pragma shader_feature_local _ _CFXR_EDGE_FADING + #pragma shader_feature_local _ _CFXR_LIGHTING_DIRECT _CFXR_LIGHTING_INDIRECT _CFXR_LIGHTING_ALL + #pragma shader_feature_local _ _CFXR_LIGHTING_WPOS_OFFSET + #pragma shader_feature_local _ _CFXR_LIGHTING_BACK + + // Using the same keywords as Unity's Standard Particle shader to minimize project-wide keyword usage + #pragma shader_feature_local _ _NORMALMAP + #pragma shader_feature_local _ _EMISSION + #pragma shader_feature_local _ _FLIPBOOK_BLENDING + #pragma shader_feature_local _ _FADING_ON + #pragma shader_feature_local _ _ALPHATEST_ON + #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE + + #define CFXR_UPR + #define DISABLE_SOFT_PARTICLES + #define CFXR_UBERSHADER + #include "CFXR_PASSES.cginc" + + ENDCG + } + + //-------------------------------------------------------------------------------------------------------------------------------- + + Pass + { + Name "ShadowCaster" + Tags { "LightMode" = "ShadowCaster" } + + BlendOp Add + Blend One Zero + ZWrite On + Cull Off + + CGPROGRAM + + #pragma vertex vertex_program + #pragma fragment fragment_program + + #pragma shader_feature_local _ _CFXR_SINGLE_CHANNEL + #pragma shader_feature_local _ _CFXR_DISSOLVE + #pragma shader_feature_local _ _CFXR_DISSOLVE_ALONG_UV_X + #pragma shader_feature_local _ _CFXR_UV_DISTORTION + #pragma shader_feature_local _ _CFXR_UV2_DISTORTION + #pragma shader_feature_local _ _CFXR_UV_DISTORTION_ADD + #pragma shader_feature_local _ _CFXR_OVERLAYTEX_1X _CFXR_OVERLAYTEX_2X + #pragma shader_feature_local _ _CFXR_OVERLAYBLEND_A _CFXR_OVERLAYBLEND_RGB + #pragma shader_feature_local _ _FLIPBOOK_BLENDING + + #pragma shader_feature_local _ _ALPHATEST_ON + #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE + + #pragma multi_compile_shadowcaster + #pragma shader_feature_local _ _CFXR_DITHERED_SHADOWS_ON _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE + + #if (_CFXR_DITHERED_SHADOWS_ON || _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE) && !defined(SHADER_API_GLES) + #pragma target 3.0 //needed for VPOS + #endif + + #define CFXR_UPR + #define PASS_SHADOW_CASTER + #define CFXR_UBERSHADER + #include "CFXR_PASSES.cginc" + + ENDCG + } + } + + //==================================================================================================================================== + // Built-in Rendering Pipeline + + SubShader + { + Pass + { + Name "BASE" + Tags { "LightMode"="ForwardBase" } + + CGPROGRAM + + #pragma vertex vertex_program + #pragma fragment fragment_program + + //vertInstancingSetup writes to global, not allowed with DXC + // #pragma never_use_dxc + // #pragma target 2.5 + // #pragma multi_compile_instancing + // #pragma instancing_options procedural:vertInstancingSetup + + #pragma multi_compile_particles + #pragma multi_compile_fog + //#pragma multi_compile_fwdbase + //#pragma multi_compile SHADOWS_SCREEN + + #pragma shader_feature_local _ _CFXR_SINGLE_CHANNEL + #pragma shader_feature_local _ _CFXR_DISSOLVE + #pragma shader_feature_local _ _CFXR_DISSOLVE_ALONG_UV_X + #pragma shader_feature_local _ _CFXR_UV_DISTORTION + #pragma shader_feature_local _ _CFXR_UV2_DISTORTION + #pragma shader_feature_local _ _CFXR_UV_DISTORTION_ADD + // #pragma shader_feature_local _ _CFXR_GRADIENTMAP + #pragma shader_feature_local _ _CFXR_SECONDCOLOR_LERP _CFXR_FONT_COLORS + #pragma shader_feature_local _ _CFXR_OVERLAYTEX_1X _CFXR_OVERLAYTEX_2X + #pragma shader_feature_local _ _CFXR_OVERLAYBLEND_A _CFXR_OVERLAYBLEND_RGB + #pragma shader_feature_local _ _CFXR_HDR_BOOST + #pragma shader_feature_local _ _CFXR_EDGE_FADING + #pragma shader_feature_local _ _CFXR_LIGHTING_DIRECT _CFXR_LIGHTING_INDIRECT _CFXR_LIGHTING_ALL + #pragma shader_feature_local _ _CFXR_LIGHTING_WPOS_OFFSET + #pragma shader_feature_local _ _CFXR_LIGHTING_BACK + + // Using the same keywords as Unity's Standard Particle shader to minimize project-wide keyword usage + #pragma shader_feature_local _ _NORMALMAP + #pragma shader_feature_local _ _EMISSION + #pragma shader_feature_local _ _FLIPBOOK_BLENDING + #pragma shader_feature_local _ _FADING_ON + #pragma shader_feature_local _ _ALPHATEST_ON + #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE + + #include "UnityStandardParticleInstancing.cginc" + #define CFXR_UBERSHADER + #include "CFXR_PASSES.cginc" + + ENDCG + } + + //-------------------------------------------------------------------------------------------------------------------------------- + + Pass + { + Name "ShadowCaster" + Tags { "LightMode" = "ShadowCaster" } + + BlendOp Add + Blend One Zero + ZWrite On + Cull Off + + CGPROGRAM + + #pragma vertex vertex_program + #pragma fragment fragment_program + + //vertInstancingSetup writes to global, not allowed with DXC + // #pragma never_use_dxc + // #pragma target 2.5 + // #pragma multi_compile_instancing + // #pragma instancing_options procedural:vertInstancingSetup + + #pragma shader_feature_local _ _CFXR_SINGLE_CHANNEL + #pragma shader_feature_local _ _CFXR_DISSOLVE + #pragma shader_feature_local _ _CFXR_DISSOLVE_ALONG_UV_X + #pragma shader_feature_local _ _CFXR_UV_DISTORTION + #pragma shader_feature_local _ _CFXR_UV2_DISTORTION + #pragma shader_feature_local _ _CFXR_UV_DISTORTION_ADD + #pragma shader_feature_local _ _CFXR_OVERLAYTEX_1X _CFXR_OVERLAYTEX_2X + #pragma shader_feature_local _ _CFXR_OVERLAYBLEND_A _CFXR_OVERLAYBLEND_RGB + #pragma shader_feature_local _ _FLIPBOOK_BLENDING + + #pragma shader_feature_local _ _ALPHATEST_ON + #pragma shader_feature_local _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON _CFXR_ADDITIVE + + #pragma multi_compile_shadowcaster + #pragma shader_feature_local _ _CFXR_DITHERED_SHADOWS_ON _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE + + #if (_CFXR_DITHERED_SHADOWS_ON || _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE) && !defined(SHADER_API_GLES) + #pragma target 3.0 //needed for VPOS + #endif + + #include "UnityStandardParticleInstancing.cginc" + + #define PASS_SHADOW_CASTER + #define CFXR_UBERSHADER + #include "CFXR_PASSES.cginc" + + ENDCG + } + } + } + + CustomEditor "CartoonFX.MaterialInspector" +} + diff --git a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR.cginc b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR.cginc index 24ae4c5..014ac3d 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR.cginc +++ b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR.cginc @@ -1,360 +1,360 @@ -//-------------------------------------------------------------------------------------------------------------------------------- -// Cartoon FX -// (c) 2012-2020 Jean Moreno -//-------------------------------------------------------------------------------------------------------------------------------- - -#if defined(UNITY_PARTICLE_INSTANCING_ENABLED) - #pragma exclude_renderers gles -#endif - -#if defined(GLOBAL_DISABLE_SOFT_PARTICLES) && !defined(DISABLE_SOFT_PARTICLES) - #define DISABLE_SOFT_PARTICLES -#endif - -#if defined(CFXR_URP) - float LinearEyeDepthURP(float depth, float4 zBufferParam) - { - return 1.0 / (zBufferParam.z * depth + zBufferParam.w); - } - - float SoftParticles(float near, float far, float4 projection) - { - float sceneZ = SAMPLE_DEPTH_TEXTURE_PROJ(_CameraDepthTexture, UNITY_PROJ_COORD(projection)).r; - - #if defined(SOFT_PARTICLES_ORTHOGRAPHIC) - // orthographic camera - #if defined(UNITY_REVERSED_Z) - sceneZ = 1.0f - sceneZ; - #endif - sceneZ = (sceneZ * _ProjectionParams.z) + _ProjectionParams.y; - #else - // perspective camera - sceneZ = LinearEyeDepthURP(sceneZ, _ZBufferParams); - #endif - - float fade = saturate (far * ((sceneZ - near) - projection.z)); - return fade; - } -#else - float SoftParticles(float near, float far, float4 projection) - { - float sceneZ = (SAMPLE_DEPTH_TEXTURE_PROJ(_CameraDepthTexture, UNITY_PROJ_COORD(projection))); - #if defined(SOFT_PARTICLES_ORTHOGRAPHIC) - // orthographic camera - #if defined(UNITY_REVERSED_Z) - sceneZ = 1.0f - sceneZ; - #endif - sceneZ = (sceneZ * _ProjectionParams.z) + _ProjectionParams.y; - #else - // perspective camera - sceneZ = LinearEyeDepth(sceneZ); - #endif - - float fade = saturate (far * ((sceneZ - near) - projection.z)); - return fade; - } -#endif - - float LinearToGammaSpaceApprox(float value) - { - return max(1.055h * pow(value, 0.416666667h) - 0.055h, 0.h); - } - - // Same as UnityStandardUtils.cginc, but without the SHADER_TARGET limitation - half3 UnpackScaleNormal_CFXR(half4 packednormal, half bumpScale) - { - #if defined(UNITY_NO_DXT5nm) - half3 normal = packednormal.xyz * 2 - 1; - // #if (SHADER_TARGET >= 30) - // SM2.0: instruction count limitation - // SM2.0: normal scaler is not supported - normal.xy *= bumpScale; - // #endif - return normal; - #else - // This do the trick - packednormal.x *= packednormal.w; - - half3 normal; - normal.xy = (packednormal.xy * 2 - 1); - // #if (SHADER_TARGET >= 30) - // SM2.0: instruction count limitation - // SM2.0: normal scaler is not supported - normal.xy *= bumpScale; - // #endif - normal.z = sqrt(1.0 - saturate(dot(normal.xy, normal.xy))); - return normal; - #endif - } - - //Macros - - // Project Position - #if !defined(PASS_SHADOW_CASTER) && !defined(GLOBAL_DISABLE_SOFT_PARTICLES) && !defined(DISABLE_SOFT_PARTICLES) && ( (defined(SOFTPARTICLES_ON) || defined(CFXR_URP) || defined(SOFT_PARTICLES_ORTHOGRAPHIC)) && defined(_FADING_ON) ) - #define vertProjPos(o, clipPos) \ - o.projPos = ComputeScreenPos(clipPos); \ - COMPUTE_EYEDEPTH(o.projPos.z); - #else - #define vertProjPos(o, clipPos) - #endif - - // Soft Particles - #if !defined(PASS_SHADOW_CASTER) && !defined(GLOBAL_DISABLE_SOFT_PARTICLES) && !defined(DISABLE_SOFT_PARTICLES) && ((defined(SOFTPARTICLES_ON) || defined(CFXR_URP) || defined(SOFT_PARTICLES_ORTHOGRAPHIC)) && defined(_FADING_ON)) - #define fragSoftParticlesFade(i, color) \ - color *= SoftParticles(_SoftParticlesFadeDistanceNear, _SoftParticlesFadeDistanceFar, i.projPos); - #else - #define fragSoftParticlesFade(i, color) - #endif - - // Edge fade (note: particle meshes are already in world space) - #if !defined(PASS_SHADOW_CASTER) && defined(_CFXR_EDGE_FADING) - #define vertEdgeFade(v, color) \ - float3 viewDir = UnityWorldSpaceViewDir(v.vertex); \ - float ndv = abs(dot(normalize(viewDir), v.normal.xyz)); \ - color *= saturate(pow(ndv, _EdgeFadePow)); - #else - #define vertEdgeFade(v, color) - #endif - - // Fog - #if _ALPHABLEND_ON - #define applyFog(i, color, alpha) UNITY_APPLY_FOG_COLOR(i.fogCoord, color, unity_FogColor); - #elif _ALPHAPREMULTIPLY_ON - #define applyFog(i, color, alpha) UNITY_APPLY_FOG_COLOR(i.fogCoord, color, alpha * unity_FogColor); - #elif _CFXR_ADDITIVE - #define applyFog(i, color, alpha) UNITY_APPLY_FOG_COLOR(i.fogCoord, color, half4(0, 0, 0, 0)); - #elif _ALPHAMODULATE_ON - #define applyFog(i, color, alpha) UNITY_APPLY_FOG_COLOR(i.fogCoord, color, half4(1, 1, 1, 1)); - #else - #define applyFog(i, color, alpha) UNITY_APPLY_FOG_COLOR(i.fogCoord, color, unity_FogColor); - #endif - - // Vertex program - #if defined(PASS_SHADOW_CASTER) - void vert(appdata v, v2f_shadowCaster o, out float4 opos) - #else - v2f vert(appdata v, v2f o) - #endif - { - UNITY_TRANSFER_FOG(o, o.pos); - vertProjPos(o, o.pos); - vertEdgeFade(v, o.color.a); - - #if defined(PASS_SHADOW_CASTER) - TRANSFER_SHADOW_CASTER_NOPOS(o, opos); - #else - return o; - #endif - } - - // Fragment program - #if defined(PASS_SHADOW_CASTER) - float4 frag(v2f_shadowCaster i, UNITY_VPOS_TYPE vpos, half3 particleColor, half particleAlpha, half dissolve, half dissolveTime, half doubleDissolveWidth) : SV_Target - #else - half4 frag(v2f i, half3 particleColor, half particleAlpha, half dissolve, half dissolveTime, half doubleDissolveWidth) : SV_Target - #endif - { - #if _CFXR_DISSOLVE - // Dissolve - half time = lerp(-_DissolveSmooth, 1+_DissolveSmooth, dissolveTime); - particleAlpha *= smoothstep(dissolve - _DissolveSmooth, dissolve + _DissolveSmooth, time); - if (doubleDissolveWidth > 0) - { - half dissolveSubtract = smoothstep(dissolve - _DissolveSmooth, dissolve + _DissolveSmooth, time - doubleDissolveWidth); - particleAlpha = saturate(particleAlpha - dissolveSubtract); - } - #endif - - //Blending - #if _ALPHAPREMULTIPLY_ON - particleColor *= particleAlpha; - #endif - #if _ALPHAMODULATE_ON - particleColor.rgb = lerp(float3(1,1,1), particleColor.rgb, particleAlpha); - #endif - - #if _ALPHATEST_ON - clip(particleAlpha - _Cutoff); - #endif - - #if !defined(PASS_SHADOW_CASTER) - // Fog & Soft Particles - applyFog(i, particleColor, particleAlpha); - fragSoftParticlesFade(i, particleAlpha); - #endif - - // Prevent alpha from exceeding 1 - particleAlpha = min(particleAlpha, 1.0); - - #if !defined(PASS_SHADOW_CASTER) - return float4(particleColor, particleAlpha); - #else - - //-------------------------------------------------------------------------------------------------------------------------------- - // Shadow Caster Pass - - #if _CFXR_ADDITIVE - half alpha = max(particleColor.r, max(particleColor.g, particleColor.b)) * particleAlpha; - #else - half alpha = particleAlpha; - #endif - - #if (_CFXR_DITHERED_SHADOWS_ON || _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE) && !defined(SHADER_API_GLES) - alpha = min(alpha, _ShadowStrength); - // Use dither mask for alpha blended shadows, based on pixel position xy - // and alpha level. Our dither texture is 4x4x16. - #if _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE - half texSize = _DitherCustom_TexelSize.z; - alpha = tex3D(_DitherCustom, float3(vpos.xy*(1 / texSize), alpha*(1 - (1 / (texSize*texSize))))).a; - #else - alpha = tex3D(_DitherMaskLOD, float3(vpos.xy*0.25, alpha*0.9375)).a; - #endif - #endif - clip(alpha - 0.01); - SHADOW_CASTER_FRAGMENT(i) - #endif - } - - // ================================================================================================================================ - // ParticlesInstancing.hlsl - // ================================================================================================================================ - -#if defined(CFXR_URP) - #if defined(UNITY_PROCEDURAL_INSTANCING_ENABLED) && !defined(SHADER_TARGET_SURFACE_ANALYSIS) - #define UNITY_PARTICLE_INSTANCING_ENABLED - #endif - - #if defined(UNITY_PARTICLE_INSTANCING_ENABLED) - - #ifndef UNITY_PARTICLE_INSTANCE_DATA - #define UNITY_PARTICLE_INSTANCE_DATA DefaultParticleInstanceData - #endif - - struct DefaultParticleInstanceData - { - float3x4 transform; - uint color; - float animFrame; - }; - - StructuredBuffer unity_ParticleInstanceData; - float4 unity_ParticleUVShiftData; - float unity_ParticleUseMeshColors; - - void ParticleInstancingMatrices(out float4x4 objectToWorld, out float4x4 worldToObject) - { - UNITY_PARTICLE_INSTANCE_DATA data = unity_ParticleInstanceData[unity_InstanceID]; - - // transform matrix - objectToWorld._11_21_31_41 = float4(data.transform._11_21_31, 0.0f); - objectToWorld._12_22_32_42 = float4(data.transform._12_22_32, 0.0f); - objectToWorld._13_23_33_43 = float4(data.transform._13_23_33, 0.0f); - objectToWorld._14_24_34_44 = float4(data.transform._14_24_34, 1.0f); - - // inverse transform matrix (TODO: replace with a library implementation if/when available) - float3x3 worldToObject3x3; - worldToObject3x3[0] = objectToWorld[1].yzx * objectToWorld[2].zxy - objectToWorld[1].zxy * objectToWorld[2].yzx; - worldToObject3x3[1] = objectToWorld[0].zxy * objectToWorld[2].yzx - objectToWorld[0].yzx * objectToWorld[2].zxy; - worldToObject3x3[2] = objectToWorld[0].yzx * objectToWorld[1].zxy - objectToWorld[0].zxy * objectToWorld[1].yzx; - - float det = dot(objectToWorld[0].xyz, worldToObject3x3[0]); - - worldToObject3x3 = transpose(worldToObject3x3); - - worldToObject3x3 *= rcp(det); - - float3 worldToObjectPosition = mul(worldToObject3x3, -objectToWorld._14_24_34); - - worldToObject._11_21_31_41 = float4(worldToObject3x3._11_21_31, 0.0f); - worldToObject._12_22_32_42 = float4(worldToObject3x3._12_22_32, 0.0f); - worldToObject._13_23_33_43 = float4(worldToObject3x3._13_23_33, 0.0f); - worldToObject._14_24_34_44 = float4(worldToObjectPosition, 1.0f); - } - - void ParticleInstancingSetup() - { - ParticleInstancingMatrices(unity_ObjectToWorld, unity_WorldToObject); - } - - #else - - void ParticleInstancingSetup() {} - - #endif -#endif - - // ================================================================================================================================ - // Instancing functions - // ================================================================================================================================ - - float4 UnpackFromR8G8B8A8(uint rgba) - { - return float4(rgba & 255, (rgba >> 8) & 255, (rgba >> 16) & 255, (rgba >> 24) & 255) * (1.0 / 255); - } - - half4 GetParticleColor(half4 color) - { - #if defined(UNITY_PARTICLE_INSTANCING_ENABLED) - #if !defined(UNITY_PARTICLE_INSTANCE_DATA_NO_COLOR) - UNITY_PARTICLE_INSTANCE_DATA data = unity_ParticleInstanceData[unity_InstanceID]; - color = lerp(half4(1.0, 1.0, 1.0, 1.0), color, unity_ParticleUseMeshColors); - color *= UnpackFromR8G8B8A8(data.color); - #endif - #endif - return color; - } - - void GetParticleTexcoords(out float2 outputTexcoord, out float2 outputTexcoord2, out float outputBlend, in float4 inputTexcoords, in float inputBlend) - { - #if defined(UNITY_PARTICLE_INSTANCING_ENABLED) - if (unity_ParticleUVShiftData.x != 0.0) - { - UNITY_PARTICLE_INSTANCE_DATA data = unity_ParticleInstanceData[unity_InstanceID]; - - float numTilesX = unity_ParticleUVShiftData.y; - float2 animScale = unity_ParticleUVShiftData.zw; - #ifdef UNITY_PARTICLE_INSTANCE_DATA_NO_ANIM_FRAME - float sheetIndex = 0.0; - #else - float sheetIndex = data.animFrame; - #endif - - float index0 = floor(sheetIndex); - float vIdx0 = floor(index0 / numTilesX); - float uIdx0 = floor(index0 - vIdx0 * numTilesX); - float2 offset0 = float2(uIdx0 * animScale.x, (1.0 - animScale.y) - vIdx0 * animScale.y); // Copied from built-in as is and it looks like upside-down flip - - outputTexcoord = inputTexcoords.xy * animScale.xy + offset0.xy; - - #ifdef _FLIPBOOKBLENDING_ON - float index1 = floor(sheetIndex + 1.0); - float vIdx1 = floor(index1 / numTilesX); - float uIdx1 = floor(index1 - vIdx1 * numTilesX); - float2 offset1 = float2(uIdx1 * animScale.x, (1.0 - animScale.y) - vIdx1 * animScale.y); - - outputTexcoord2.xy = inputTexcoords.xy * animScale.xy + offset1.xy; - outputBlend = frac(sheetIndex); - #endif - } - else - #endif - { - outputTexcoord = inputTexcoords.xy; - #ifdef _FLIPBOOKBLENDING_ON - outputTexcoord2.xy = inputTexcoords.zw; - outputBlend = inputBlend; - #endif - } - - #ifndef _FLIPBOOKBLENDING_ON - outputTexcoord2.xy = inputTexcoords.xy; - outputBlend = 0.5; - #endif - } - - void GetParticleTexcoords(out float2 outputTexcoord, in float2 inputTexcoord) - { - float2 dummyTexcoord2 = 0.0; - float dummyBlend = 0.0; - GetParticleTexcoords(outputTexcoord, dummyTexcoord2, dummyBlend, inputTexcoord.xyxy, 0.0); - } +//-------------------------------------------------------------------------------------------------------------------------------- +// Cartoon FX +// (c) 2012-2020 Jean Moreno +//-------------------------------------------------------------------------------------------------------------------------------- + +#if defined(UNITY_PARTICLE_INSTANCING_ENABLED) + #pragma exclude_renderers gles +#endif + +#if defined(GLOBAL_DISABLE_SOFT_PARTICLES) && !defined(DISABLE_SOFT_PARTICLES) + #define DISABLE_SOFT_PARTICLES +#endif + +#if defined(CFXR_URP) + float LinearEyeDepthURP(float depth, float4 zBufferParam) + { + return 1.0 / (zBufferParam.z * depth + zBufferParam.w); + } + + float SoftParticles(float near, float far, float4 projection) + { + float sceneZ = SAMPLE_DEPTH_TEXTURE_PROJ(_CameraDepthTexture, UNITY_PROJ_COORD(projection)).r; + + #if defined(SOFT_PARTICLES_ORTHOGRAPHIC) + // orthographic camera + #if defined(UNITY_REVERSED_Z) + sceneZ = 1.0f - sceneZ; + #endif + sceneZ = (sceneZ * _ProjectionParams.z) + _ProjectionParams.y; + #else + // perspective camera + sceneZ = LinearEyeDepthURP(sceneZ, _ZBufferParams); + #endif + + float fade = saturate (far * ((sceneZ - near) - projection.z)); + return fade; + } +#else + float SoftParticles(float near, float far, float4 projection) + { + float sceneZ = (SAMPLE_DEPTH_TEXTURE_PROJ(_CameraDepthTexture, UNITY_PROJ_COORD(projection))); + #if defined(SOFT_PARTICLES_ORTHOGRAPHIC) + // orthographic camera + #if defined(UNITY_REVERSED_Z) + sceneZ = 1.0f - sceneZ; + #endif + sceneZ = (sceneZ * _ProjectionParams.z) + _ProjectionParams.y; + #else + // perspective camera + sceneZ = LinearEyeDepth(sceneZ); + #endif + + float fade = saturate (far * ((sceneZ - near) - projection.z)); + return fade; + } +#endif + + float LinearToGammaSpaceApprox(float value) + { + return max(1.055h * pow(value, 0.416666667h) - 0.055h, 0.h); + } + + // Same as UnityStandardUtils.cginc, but without the SHADER_TARGET limitation + half3 UnpackScaleNormal_CFXR(half4 packednormal, half bumpScale) + { + #if defined(UNITY_NO_DXT5nm) + half3 normal = packednormal.xyz * 2 - 1; + // #if (SHADER_TARGET >= 30) + // SM2.0: instruction count limitation + // SM2.0: normal scaler is not supported + normal.xy *= bumpScale; + // #endif + return normal; + #else + // This do the trick + packednormal.x *= packednormal.w; + + half3 normal; + normal.xy = (packednormal.xy * 2 - 1); + // #if (SHADER_TARGET >= 30) + // SM2.0: instruction count limitation + // SM2.0: normal scaler is not supported + normal.xy *= bumpScale; + // #endif + normal.z = sqrt(1.0 - saturate(dot(normal.xy, normal.xy))); + return normal; + #endif + } + + //Macros + + // Project Position + #if !defined(PASS_SHADOW_CASTER) && !defined(GLOBAL_DISABLE_SOFT_PARTICLES) && !defined(DISABLE_SOFT_PARTICLES) && ( (defined(SOFTPARTICLES_ON) || defined(CFXR_URP) || defined(SOFT_PARTICLES_ORTHOGRAPHIC)) && defined(_FADING_ON) ) + #define vertProjPos(o, clipPos) \ + o.projPos = ComputeScreenPos(clipPos); \ + COMPUTE_EYEDEPTH(o.projPos.z); + #else + #define vertProjPos(o, clipPos) + #endif + + // Soft Particles + #if !defined(PASS_SHADOW_CASTER) && !defined(GLOBAL_DISABLE_SOFT_PARTICLES) && !defined(DISABLE_SOFT_PARTICLES) && ((defined(SOFTPARTICLES_ON) || defined(CFXR_URP) || defined(SOFT_PARTICLES_ORTHOGRAPHIC)) && defined(_FADING_ON)) + #define fragSoftParticlesFade(i, color) \ + color *= SoftParticles(_SoftParticlesFadeDistanceNear, _SoftParticlesFadeDistanceFar, i.projPos); + #else + #define fragSoftParticlesFade(i, color) + #endif + + // Edge fade (note: particle meshes are already in world space) + #if !defined(PASS_SHADOW_CASTER) && defined(_CFXR_EDGE_FADING) + #define vertEdgeFade(v, color) \ + float3 viewDir = UnityWorldSpaceViewDir(v.vertex); \ + float ndv = abs(dot(normalize(viewDir), v.normal.xyz)); \ + color *= saturate(pow(ndv, _EdgeFadePow)); + #else + #define vertEdgeFade(v, color) + #endif + + // Fog + #if _ALPHABLEND_ON + #define applyFog(i, color, alpha) UNITY_APPLY_FOG_COLOR(i.fogCoord, color, unity_FogColor); + #elif _ALPHAPREMULTIPLY_ON + #define applyFog(i, color, alpha) UNITY_APPLY_FOG_COLOR(i.fogCoord, color, alpha * unity_FogColor); + #elif _CFXR_ADDITIVE + #define applyFog(i, color, alpha) UNITY_APPLY_FOG_COLOR(i.fogCoord, color, half4(0, 0, 0, 0)); + #elif _ALPHAMODULATE_ON + #define applyFog(i, color, alpha) UNITY_APPLY_FOG_COLOR(i.fogCoord, color, half4(1, 1, 1, 1)); + #else + #define applyFog(i, color, alpha) UNITY_APPLY_FOG_COLOR(i.fogCoord, color, unity_FogColor); + #endif + + // Vertex program + #if defined(PASS_SHADOW_CASTER) + void vert(appdata v, v2f_shadowCaster o, out float4 opos) + #else + v2f vert(appdata v, v2f o) + #endif + { + UNITY_TRANSFER_FOG(o, o.pos); + vertProjPos(o, o.pos); + vertEdgeFade(v, o.color.a); + + #if defined(PASS_SHADOW_CASTER) + TRANSFER_SHADOW_CASTER_NOPOS(o, opos); + #else + return o; + #endif + } + + // Fragment program + #if defined(PASS_SHADOW_CASTER) + float4 frag(v2f_shadowCaster i, UNITY_VPOS_TYPE vpos, half3 particleColor, half particleAlpha, half dissolve, half dissolveTime, half doubleDissolveWidth) : SV_Target + #else + half4 frag(v2f i, half3 particleColor, half particleAlpha, half dissolve, half dissolveTime, half doubleDissolveWidth) : SV_Target + #endif + { + #if _CFXR_DISSOLVE + // Dissolve + half time = lerp(-_DissolveSmooth, 1+_DissolveSmooth, dissolveTime); + particleAlpha *= smoothstep(dissolve - _DissolveSmooth, dissolve + _DissolveSmooth, time); + if (doubleDissolveWidth > 0) + { + half dissolveSubtract = smoothstep(dissolve - _DissolveSmooth, dissolve + _DissolveSmooth, time - doubleDissolveWidth); + particleAlpha = saturate(particleAlpha - dissolveSubtract); + } + #endif + + //Blending + #if _ALPHAPREMULTIPLY_ON + particleColor *= particleAlpha; + #endif + #if _ALPHAMODULATE_ON + particleColor.rgb = lerp(float3(1,1,1), particleColor.rgb, particleAlpha); + #endif + + #if _ALPHATEST_ON + clip(particleAlpha - _Cutoff); + #endif + + #if !defined(PASS_SHADOW_CASTER) + // Fog & Soft Particles + applyFog(i, particleColor, particleAlpha); + fragSoftParticlesFade(i, particleAlpha); + #endif + + // Prevent alpha from exceeding 1 + particleAlpha = min(particleAlpha, 1.0); + + #if !defined(PASS_SHADOW_CASTER) + return float4(particleColor, particleAlpha); + #else + + //-------------------------------------------------------------------------------------------------------------------------------- + // Shadow Caster Pass + + #if _CFXR_ADDITIVE + half alpha = max(particleColor.r, max(particleColor.g, particleColor.b)) * particleAlpha; + #else + half alpha = particleAlpha; + #endif + + #if (_CFXR_DITHERED_SHADOWS_ON || _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE) && !defined(SHADER_API_GLES) + alpha = min(alpha, _ShadowStrength); + // Use dither mask for alpha blended shadows, based on pixel position xy + // and alpha level. Our dither texture is 4x4x16. + #if _CFXR_DITHERED_SHADOWS_CUSTOMTEXTURE + half texSize = _DitherCustom_TexelSize.z; + alpha = tex3D(_DitherCustom, float3(vpos.xy*(1 / texSize), alpha*(1 - (1 / (texSize*texSize))))).a; + #else + alpha = tex3D(_DitherMaskLOD, float3(vpos.xy*0.25, alpha*0.9375)).a; + #endif + #endif + clip(alpha - 0.01); + SHADOW_CASTER_FRAGMENT(i) + #endif + } + + // ================================================================================================================================ + // ParticlesInstancing.hlsl + // ================================================================================================================================ + +#if defined(CFXR_URP) + #if defined(UNITY_PROCEDURAL_INSTANCING_ENABLED) && !defined(SHADER_TARGET_SURFACE_ANALYSIS) + #define UNITY_PARTICLE_INSTANCING_ENABLED + #endif + + #if defined(UNITY_PARTICLE_INSTANCING_ENABLED) + + #ifndef UNITY_PARTICLE_INSTANCE_DATA + #define UNITY_PARTICLE_INSTANCE_DATA DefaultParticleInstanceData + #endif + + struct DefaultParticleInstanceData + { + float3x4 transform; + uint color; + float animFrame; + }; + + StructuredBuffer unity_ParticleInstanceData; + float4 unity_ParticleUVShiftData; + float unity_ParticleUseMeshColors; + + void ParticleInstancingMatrices(out float4x4 objectToWorld, out float4x4 worldToObject) + { + UNITY_PARTICLE_INSTANCE_DATA data = unity_ParticleInstanceData[unity_InstanceID]; + + // transform matrix + objectToWorld._11_21_31_41 = float4(data.transform._11_21_31, 0.0f); + objectToWorld._12_22_32_42 = float4(data.transform._12_22_32, 0.0f); + objectToWorld._13_23_33_43 = float4(data.transform._13_23_33, 0.0f); + objectToWorld._14_24_34_44 = float4(data.transform._14_24_34, 1.0f); + + // inverse transform matrix (TODO: replace with a library implementation if/when available) + float3x3 worldToObject3x3; + worldToObject3x3[0] = objectToWorld[1].yzx * objectToWorld[2].zxy - objectToWorld[1].zxy * objectToWorld[2].yzx; + worldToObject3x3[1] = objectToWorld[0].zxy * objectToWorld[2].yzx - objectToWorld[0].yzx * objectToWorld[2].zxy; + worldToObject3x3[2] = objectToWorld[0].yzx * objectToWorld[1].zxy - objectToWorld[0].zxy * objectToWorld[1].yzx; + + float det = dot(objectToWorld[0].xyz, worldToObject3x3[0]); + + worldToObject3x3 = transpose(worldToObject3x3); + + worldToObject3x3 *= rcp(det); + + float3 worldToObjectPosition = mul(worldToObject3x3, -objectToWorld._14_24_34); + + worldToObject._11_21_31_41 = float4(worldToObject3x3._11_21_31, 0.0f); + worldToObject._12_22_32_42 = float4(worldToObject3x3._12_22_32, 0.0f); + worldToObject._13_23_33_43 = float4(worldToObject3x3._13_23_33, 0.0f); + worldToObject._14_24_34_44 = float4(worldToObjectPosition, 1.0f); + } + + void ParticleInstancingSetup() + { + ParticleInstancingMatrices(unity_ObjectToWorld, unity_WorldToObject); + } + + #else + + void ParticleInstancingSetup() {} + + #endif +#endif + + // ================================================================================================================================ + // Instancing functions + // ================================================================================================================================ + + float4 UnpackFromR8G8B8A8(uint rgba) + { + return float4(rgba & 255, (rgba >> 8) & 255, (rgba >> 16) & 255, (rgba >> 24) & 255) * (1.0 / 255); + } + + half4 GetParticleColor(half4 color) + { + #if defined(UNITY_PARTICLE_INSTANCING_ENABLED) + #if !defined(UNITY_PARTICLE_INSTANCE_DATA_NO_COLOR) + UNITY_PARTICLE_INSTANCE_DATA data = unity_ParticleInstanceData[unity_InstanceID]; + color = lerp(half4(1.0, 1.0, 1.0, 1.0), color, unity_ParticleUseMeshColors); + color *= UnpackFromR8G8B8A8(data.color); + #endif + #endif + return color; + } + + void GetParticleTexcoords(out float2 outputTexcoord, out float2 outputTexcoord2, out float outputBlend, in float4 inputTexcoords, in float inputBlend) + { + #if defined(UNITY_PARTICLE_INSTANCING_ENABLED) + if (unity_ParticleUVShiftData.x != 0.0) + { + UNITY_PARTICLE_INSTANCE_DATA data = unity_ParticleInstanceData[unity_InstanceID]; + + float numTilesX = unity_ParticleUVShiftData.y; + float2 animScale = unity_ParticleUVShiftData.zw; + #ifdef UNITY_PARTICLE_INSTANCE_DATA_NO_ANIM_FRAME + float sheetIndex = 0.0; + #else + float sheetIndex = data.animFrame; + #endif + + float index0 = floor(sheetIndex); + float vIdx0 = floor(index0 / numTilesX); + float uIdx0 = floor(index0 - vIdx0 * numTilesX); + float2 offset0 = float2(uIdx0 * animScale.x, (1.0 - animScale.y) - vIdx0 * animScale.y); // Copied from built-in as is and it looks like upside-down flip + + outputTexcoord = inputTexcoords.xy * animScale.xy + offset0.xy; + + #ifdef _FLIPBOOKBLENDING_ON + float index1 = floor(sheetIndex + 1.0); + float vIdx1 = floor(index1 / numTilesX); + float uIdx1 = floor(index1 - vIdx1 * numTilesX); + float2 offset1 = float2(uIdx1 * animScale.x, (1.0 - animScale.y) - vIdx1 * animScale.y); + + outputTexcoord2.xy = inputTexcoords.xy * animScale.xy + offset1.xy; + outputBlend = frac(sheetIndex); + #endif + } + else + #endif + { + outputTexcoord = inputTexcoords.xy; + #ifdef _FLIPBOOKBLENDING_ON + outputTexcoord2.xy = inputTexcoords.zw; + outputBlend = inputBlend; + #endif + } + + #ifndef _FLIPBOOKBLENDING_ON + outputTexcoord2.xy = inputTexcoords.xy; + outputBlend = 0.5; + #endif + } + + void GetParticleTexcoords(out float2 outputTexcoord, in float2 inputTexcoord) + { + float2 dummyTexcoord2 = 0.0; + float dummyBlend = 0.0; + GetParticleTexcoords(outputTexcoord, dummyTexcoord2, dummyBlend, inputTexcoord.xyxy, 0.0); + } diff --git a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR_PASSES.cginc b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR_PASSES.cginc index 4e9d9f0..85c39c4 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR_PASSES.cginc +++ b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR_PASSES.cginc @@ -1,1154 +1,1154 @@ -//-------------------------------------------------------------------------------------------------------------------------------- -// Cartoon FX -// (c) 2012-2020 Jean Moreno -//-------------------------------------------------------------------------------------------------------------------------------- - - -//-------------------------------------------------------------------------------------------------------------------------------- -// UBERSHADER -//-------------------------------------------------------------------------------------------------------------------------------- - -#if defined(CFXR_UBERSHADER) - - #if defined(UNITY_SAMPLE_FULL_SH_PER_PIXEL) - #undef UNITY_SAMPLE_FULL_SH_PER_PIXEL - #endif - #define UNITY_SAMPLE_FULL_SH_PER_PIXEL defined(_NORMALMAP) - - #include "UnityCG.cginc" - #include "UnityStandardUtils.cginc" - #include "AutoLight.cginc" - - #if defined(CFXR_URP) - #include "CFXR_URP.cginc" - #else - #include "UnityLightingCommon.cginc" - #endif - - #if defined(_CFXR_LIGHTING_INDIRECT) || defined(_CFXR_LIGHTING_DIRECT) || defined(_CFXR_LIGHTING_ALL) - #define LIGHTING - #endif - #if defined(_CFXR_LIGHTING_DIRECT) || defined(_CFXR_LIGHTING_ALL) - #define LIGHTING_DIRECT - #endif - #if defined(_CFXR_LIGHTING_INDIRECT) || defined(_CFXR_LIGHTING_ALL) - #define LIGHTING_INDIRECT - #endif - #if (defined(_CFXR_LIGHTING_DIRECT) || defined(_CFXR_LIGHTING_ALL)) && defined(_CFXR_LIGHTING_BACK) - #define LIGHTING_BACK - #endif - - #include "CFXR_SETTINGS.cginc" - - // -------------------------------- - - CBUFFER_START(UnityPerMaterial) - - float4 _OverlayTex_Scroll; - - half _BumpScale; - - float4 _GameObjectWorldPosition; - half _LightingWorldPosStrength; - half _IndirectLightingMix; - half4 _ShadowColor; - half _DirectLightingRamp; - half _DirLightScreenAtten; - half _BacklightTransmittance; - - half _InvertDissolveTex; - half _DoubleDissolve; - half2 _DissolveScroll; - half _DissolveSmooth; - - half4 _DistortScrolling; - half _Distort; - half _FadeAlongU; - - half _SecondColorSmooth; - - half _HdrMultiply; - - half _ReceivedShadowsStrength; - - half _Cutoff; - - half _SoftParticlesFadeDistanceNear; - half _SoftParticlesFadeDistanceFar; - half _EdgeFadePow; - - half4 _DissolveTex_ST; - - #if !defined(SHADER_API_GLES) - float _ShadowStrength; - float4 _DitherCustom_TexelSize; - #endif - - CBUFFER_END - - sampler2D _MainTex; - sampler2D _OverlayTex; - sampler2D _BumpMap; - sampler2D _DissolveTex; - sampler2D _DistortTex; - sampler2D _SecondColorTex; - // sampler2D _GradientMap; - UNITY_DECLARE_DEPTH_TEXTURE(_CameraDepthTexture); - #if !defined(SHADER_API_GLES) - sampler3D _DitherMaskLOD; - sampler3D _DitherCustom; - #endif - - // -------------------------------- - // Input/output - - struct appdata - { - float4 vertex : POSITION; - half4 color : COLOR; - float4 texcoord : TEXCOORD0; //xy = uv, zw = random - float4 texcoord1 : TEXCOORD1; //additional particle data: x = dissolve, y = animFrame - float4 texcoord2 : TEXCOORD2; //additional particle data: second color - #if defined(PASS_SHADOW_CASTER) || _CFXR_EDGE_FADING || defined(LIGHTING) - float3 normal : NORMAL; - #endif - #if defined(LIGHTING) && _NORMALMAP - float4 tangent : TANGENT; - #endif - UNITY_VERTEX_INPUT_INSTANCE_ID - }; - - // vertex to fragment - struct v2f - { - float4 pos : SV_POSITION; - half4 color : COLOR; - float4 uv_random : TEXCOORD0; //uv + particle data - float4 custom1 : TEXCOORD1; //additional particle data - #if _CFXR_SECONDCOLOR_LERP || _CFXR_FONT_COLORS || (defined(LIGHTING) && _EMISSION) - float4 secondColor : TEXCOORD2; - #endif - #if !defined(GLOBAL_DISABLE_SOFT_PARTICLES) && ((defined(SOFTPARTICLES_ON) || defined(CFXR_URP) || defined(SOFT_PARTICLES_ORTHOGRAPHIC)) && defined(_FADING_ON)) - float4 projPos : TEXCOORD3; - #endif - #if defined(LIGHTING_DIRECT) || (defined(LIGHTING_INDIRECT) && _NORMALMAP) - float3 worldPos : TEXCOORD4; - #endif - #if defined(LIGHTING_INDIRECT) && !_NORMALMAP - float3 shColor : TEXCOORD5; - #endif - #if defined(LIGHTING_DIRECT) && defined(LIGHTING_BACK) - float3 viewDirWS : TEXCOORD6; - #endif - #if defined(_CFXR_LIGHTING_WPOS_OFFSET) && (defined(LIGHTING_DIRECT) || defined(LIGHTING_INDIRECT)) - float3 worldPosDiff : TEXCOORD7; - #endif - #if !defined(PASS_SHADOW_CASTER) - UNITY_FOG_COORDS(8) //note: does nothing if fog is not enabled - // SHADOW_COORDS(8) - #endif - #if defined(LIGHTING) - float3 normalWS : NORMAL; - #if _NORMALMAP - float4 tangentWS : TANGENT; - #endif - #endif - UNITY_VERTEX_INPUT_INSTANCE_ID - UNITY_VERTEX_OUTPUT_STEREO - }; - - // vertex to fragment (shadow caster) - struct v2f_shadowCaster - { - V2F_SHADOW_CASTER_NOPOS - half4 color : COLOR; - float4 uv_random : TEXCOORD1; //uv + particle data - float4 custom1 : TEXCOORD2; //additional particle data - UNITY_VERTEX_INPUT_INSTANCE_ID - UNITY_VERTEX_OUTPUT_STEREO - }; - - // -------------------------------- - - #include "CFXR.cginc" - - // -------------------------------- - // Vertex - - #if defined(PASS_SHADOW_CASTER) - void vertex_program (appdata v, out v2f_shadowCaster o, out float4 opos : SV_POSITION) - #else - v2f vertex_program (appdata v) - #endif - { - #if !defined(PASS_SHADOW_CASTER) - v2f o = (v2f)0; - #if defined(CFXR_URP) - o = (v2f)0; - #else - UNITY_INITIALIZE_OUTPUT(v2f, o); - #endif - #else - o = (v2f_shadowCaster)0; - #endif - - UNITY_SETUP_INSTANCE_ID(v); - UNITY_TRANSFER_INSTANCE_ID(v, o); - UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); - - #if !defined(PASS_SHADOW_CASTER) - o.pos = UnityObjectToClipPos(v.vertex); - - #if defined(LIGHTING_DIRECT) || (defined(LIGHTING_INDIRECT) && _NORMALMAP) - // Particle Systems already output their vertex position in world space - o.worldPos = v.vertex.xyz; - - #if defined(LIGHTING_BACK) - o.viewDirWS = normalize(_WorldSpaceCameraPos.xyz - o.worldPos); - //o.viewDirWS = normalize(mul((float3x3)unity_ObjectToWorld, v.vertex.xyz)); - #endif - #endif - - #if defined(LIGHTING) && defined(_CFXR_LIGHTING_WPOS_OFFSET) - o.worldPosDiff = _GameObjectWorldPosition.xyz - v.vertex.xyz; - #endif - #endif - - o.color = GetParticleColor(v.color); - o.custom1 = v.texcoord1; - GetParticleTexcoords(o.uv_random.xy, o.uv_random.zw, o.custom1.y, v.texcoord, v.texcoord1.y); - //o.uv_random = v.texcoord; - - #if _CFXR_SECONDCOLOR_LERP || _CFXR_FONT_COLORS || (defined(LIGHTING) && _EMISSION) - o.secondColor = v.texcoord2; - #endif - #if defined(LIGHTING) - o.normalWS = v.normal.xyz; - #if _NORMALMAP - o.tangentWS = v.tangent; - #endif - #endif - - // Ambient Lighting / Light Probes, per-vertex if no normal map - #if defined(LIGHTING_INDIRECT) && !_NORMALMAP - half3 shColor = ShadeSHPerVertex(v.normal.xyz, half3(0,0,0)); - o.shColor = shColor; - #endif - - /* - #if !defined(PASS_SHADOW_CASTER) - // Shadows Receiving - TRANSFER_SHADOW(o); - #endif - */ - - #if defined(PASS_SHADOW_CASTER) - vert(v, o, opos); - #else - return vert(v, o); - #endif - } - - // -------------------------------- - // Shade4PointLights Custom - - float3 CFXR_Shade4PointLights ( - float4 lightPosX, float4 lightPosY, float4 lightPosZ, - float3 lightColor0, float3 lightColor1, float3 lightColor2, float3 lightColor3, - float4 lightAttenSq, - float3 pos, float3 normal) - { - // to light vectors - float4 toLightX = lightPosX - pos.x; - float4 toLightY = lightPosY - pos.y; - float4 toLightZ = lightPosZ - pos.z; - // squared lengths - float4 lengthSq = 0; - lengthSq += toLightX * toLightX; - lengthSq += toLightY * toLightY; - lengthSq += toLightZ * toLightZ; - // don't produce NaNs if some vertex position overlaps with the light - lengthSq = max(lengthSq, 0.000001); - - // NdotL - float4 ndotl = 0; - ndotl += toLightX * normal.x; - ndotl += toLightY * normal.y; - ndotl += toLightZ * normal.z; - ndotl = smoothstep(0.5 - _DirectLightingRamp * 0.5, 0.5 + _DirectLightingRamp * 0.5, ndotl * 0.5 + 0.5); - - // correct NdotL - float4 corr = rsqrt(lengthSq); - ndotl = max (float4(0,0,0,0), ndotl * corr); - - // attenuation - float4 atten = 1.0 / (1.0 + lengthSq * lightAttenSq); - float4 diff = ndotl * atten; - // final color - float3 col = 0; - col += lightColor0 * diff.x; - col += lightColor1 * diff.y; - col += lightColor2 * diff.z; - col += lightColor3 * diff.w; - return col; - } - - // -------------------------------- - // Fragment - - #if defined(PASS_SHADOW_CASTER) - float4 fragment_program (v2f_shadowCaster i, UNITY_VPOS_TYPE vpos : VPOS) : SV_Target - #else - half4 fragment_program (v2f i) : SV_Target - #endif - { - UNITY_SETUP_INSTANCE_ID(i); - UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i); - - // ================================================================ - // UV Distortion - - #if _CFXR_UV_DISTORTION - #if _CFXR_UV2_DISTORTION - float2 uvDistortion = tex2D(_DistortTex, i.custom1.xy * _DistortScrolling.zw + i.uv_random.zw + frac(_DistortScrolling.xy * _Time.yy)).rg; - #else - float2 uvDistortion = tex2D(_DistortTex, i.uv_random.xy * _DistortScrolling.zw + i.uv_random.zw + frac(_DistortScrolling.xy * _Time.yy)).rg; - #endif - - #if _CFXR_UV_DISTORTION_ADD - uvDistortion = i.uv_random.xy + (uvDistortion * 2.0 - 1.0) * _Distort; - #else - uvDistortion = lerp(i.uv_random.xy, uvDistortion, _Distort); - #endif - - if (_FadeAlongU > 0) - { - uvDistortion = lerp(i.uv_random.xy, uvDistortion, i.uv_random.y * 0.5); - } - - #define main_uv uvDistortion - #else - #define main_uv i.uv_random - #endif - - // ================================================================ - // Color & Alpha - - #if _CFXR_SINGLE_CHANNEL - half4 mainTex = half4(1, 1, 1, tex2D(_MainTex, main_uv.xy).r); - #else - half4 mainTex = tex2D(_MainTex, main_uv.xy); - #endif - - #ifdef _FLIPBOOK_BLENDING - #if _CFXR_SINGLE_CHANNEL - half4 mainTex2 = tex2D(_MainTex, i.uv_random.zw).r; - #else - half4 mainTex2 = tex2D(_MainTex, i.uv_random.zw); - #endif - mainTex = lerp(mainTex, mainTex2, i.custom1.y); - #endif - - #if _CFXR_OVERLAYTEX_1X - float2 timeOffset = frac(_Time.yy * _OverlayTex_Scroll.xy); - float2 overlayUv = ((i.uv_random.xy + i.uv_random.zw) * _OverlayTex_Scroll.zz) + timeOffset; - half4 overlay = tex2D(_OverlayTex, overlayUv).r; - #elif _CFXR_OVERLAYTEX_2X - float2 timeOffset = frac(_Time.yy * _OverlayTex_Scroll.xy); - float2 overlayUv = ((i.uv_random.xy + i.uv_random.zw) * _OverlayTex_Scroll.zz) + timeOffset; - half4 overlay = tex2D(_OverlayTex, overlayUv).r; - - overlayUv = ((i.uv_random.xy + i.uv_random.wz) * _OverlayTex_Scroll.ww) + timeOffset; - half4 overlay2 = tex2D(_OverlayTex, overlayUv).r; - mainTex.a *= (overlay.r + overlay2.r) / 2.0; - #endif - - #if _CFXR_OVERLAYTEX_1X || _CFXR_OVERLAYTEX_2X - #if _CFXR_OVERLAYBLEND_A - mainTex.a *= overlay.r; - #elif _CFXR_OVERLAYBLEND_RGB - mainTex.rgb *= overlay.rgb; - #else - mainTex.rgba *= overlay.rgba; - #endif - #endif - - /* - #if _CFXR_GRADIENTMAP - mainTex.rgb = tex2D(_GradientMap, mainTex.a).rgb; - #endif - */ - - #if _CFXR_FONT_COLORS - half3 particleColor = mainTex.b * i.color.rgb + mainTex.g * i.custom1.rgb + mainTex.r * i.secondColor.rgb; - half particleAlpha = mainTex.a * i.color.a; - #else - half3 particleColor = mainTex.rgb * i.color.rgb; - half particleAlpha = mainTex.a * i.color.a; - #endif - - #if _CFXR_SECONDCOLOR_LERP - half secondColorMap = tex2D(_SecondColorTex, i.uv_random.xy).r; - float time = lerp(-_SecondColorSmooth, 1+_SecondColorSmooth, i.secondColor.a); - secondColorMap = smoothstep(secondColorMap - _SecondColorSmooth, secondColorMap + _SecondColorSmooth, time); - particleColor.rgb += i.secondColor.rgb * secondColorMap; - #endif - - #if _CFXR_HDR_BOOST - #ifdef UNITY_COLORSPACE_GAMMA - _HdrMultiply = LinearToGammaSpaceApprox(_HdrMultiply); - #endif - particleColor.rgb *= _HdrMultiply * GLOBAL_HDR_MULTIPLIER; - #endif - - /* - #if !defined(PASS_SHADOW_CASTER) - // Shadows Receiving - half shadows = SHADOW_ATTENUATION(i); - particleColor.rgb *= saturate(shadows + (1.0 - _ReceivedShadowsStrength)); - #endif - */ - - // ================================================================ - // Lighting - - #if !defined(PASS_SHADOW_CASTER) - - #if defined(LIGHTING) - half3 particleLighting = half3(0, 0, 0); - - #if defined(CFXR_URP) - #define UNPACK_SCALE_NORMAL UnpackNormalScale - float3 mainLightDir = _MainLightPosition.xyz; - float3 mainLightColor = _MainLightColor.rgb; - #else - #define UNPACK_SCALE_NORMAL UnpackScaleNormal - float3 mainLightDir = _WorldSpaceLightPos0.xyz; - float3 mainLightColor = _LightColor0.rgb; - #endif - - #if _NORMALMAP - half3 normalTS = UnpackScaleNormal_CFXR(tex2D(_BumpMap, main_uv.xy), _BumpScale); - // tangent space to world space: - float sgn = i.tangentWS.w; // should be either +1 or -1 - float3 bitangent = sgn * cross(i.normalWS.xyz, i.tangentWS.xyz); - float3 normalWS = mul(normalTS, half3x3(i.tangentWS.xyz, bitangent.xyz, i.normalWS.xyz)); - #else - half3 normalWS = i.normalWS; - #endif - #if defined(_CFXR_LIGHTING_WPOS_OFFSET) - normalWS = normalize(normalWS.xyz - i.worldPosDiff.xyz * _LightingWorldPosStrength); - #endif - #endif - - // - Direct - #if defined(LIGHTING_DIRECT) - // Main Directional - half ndl = dot(normalWS, mainLightDir); - ndl = smoothstep(0.5 - _DirectLightingRamp * 0.5, 0.5 + _DirectLightingRamp * 0.5, ndl * 0.5 + 0.5); - half mainDirectLighting = max(0, ndl); - - #if defined(LIGHTING_BACK) - half viewAtten = length(mainLightDir + i.viewDirWS); - viewAtten = 1 - smoothstep(0, _DirLightScreenAtten, viewAtten); - mainDirectLighting += (viewAtten * viewAtten) * _BacklightTransmittance; - #endif - - // particleColor.rgb = lerp(_ShadowColor.rgb, particleColor.rgb * mainLightColor.rgb, mainDirectLighting); - particleColor.rgb *= lerp(_ShadowColor.rgb, mainLightColor.rgb, mainDirectLighting); - - // Point Lights - #if defined(ENABLE_POINT_LIGHTS) - #if defined(CFXR_URP) - uint additionalLightsCount = GetAdditionalLightsCount(); - for (uint lightIndex = 0u; lightIndex < additionalLightsCount; ++lightIndex) - { - Light light = GetAdditionalLight(lightIndex, i.worldPos); - half ndl = dot(normalWS, light.direction); - ndl = smoothstep(0.5 - _DirectLightingRamp * 0.5, 0.5 + _DirectLightingRamp * 0.5, ndl * 0.5 + 0.5); - ndl = max(0, ndl); - - #if defined(LIGHTING_BACK) - half backNdl = dot(-normalWS, light.direction); - backNdl = smoothstep(0.5 - _DirectLightingRamp * 0.5, 0.5 + _DirectLightingRamp * 0.5, backNdl * 0.5 + 0.5); - ndl += max(0, backNdl) * _BacklightTransmittance; - #endif - - particleColor.rgb += ndl * light.color.rgb * light.distanceAttenuation; - } - #else - half3 pointLights = CFXR_Shade4PointLights( - unity_4LightPosX0, unity_4LightPosY0, unity_4LightPosZ0, - unity_LightColor[0].rgb, unity_LightColor[1].rgb, unity_LightColor[2].rgb, unity_LightColor[3].rgb, - unity_4LightAtten0, i.worldPos, normalWS); - - #if defined(LIGHTING_BACK) - // TODO Tweak CFXR_Shade4PointLights to handle both front & back lights more efficiently? - pointLights += CFXR_Shade4PointLights( - unity_4LightPosX0, unity_4LightPosY0, unity_4LightPosZ0, - unity_LightColor[0].rgb, unity_LightColor[1].rgb, unity_LightColor[2].rgb, unity_LightColor[3].rgb, - unity_4LightAtten0, i.worldPos, -normalWS) * _BacklightTransmittance; - #endif - - particleColor.rgb += pointLights; - #endif - #endif - #endif - - // - Indirect - #if defined(LIGHTING_INDIRECT) - #if _NORMALMAP - half3 shColor = ShadeSHPerPixel(normalWS, half3(0,0,0), float3(0,0,0)); - particleColor.rgb += shColor.rgb * _IndirectLightingMix; - #else - particleColor.rgb += i.shColor.rgb * _IndirectLightingMix; - #endif - #endif - - #if defined(LIGHTING) && _EMISSION - particleColor.rgb += i.secondColor.rgb; - #endif - - #endif - - // ================================================================ - // Dissolve - - #if _CFXR_DISSOLVE - #if _CFXR_DISSOLVE_ALONG_UV_X - half dissolveOffset = tex2D(_DissolveTex, i.uv_random.xy * _DissolveTex_ST.xy + _DissolveTex_ST.zw + frac(_Time.yy * _DissolveScroll.xy)).r * 2.0 - 1.0; - half dissolveTex = i.uv_random.x + dissolveOffset * i.custom1.z; - #else - half dissolveTex = tex2D(_DissolveTex, i.uv_random.xy).r; - #endif - dissolveTex = _InvertDissolveTex <= 0 ? 1 - dissolveTex : dissolveTex; - half dissolveTime = i.custom1.x; - half doubleDissolveWidth = 0; - if (_DoubleDissolve > 0) doubleDissolveWidth = i.custom1.y; - #else - half dissolveTex = 0; - half dissolveTime = 0; - half doubleDissolveWidth = 0; - #endif - - // ================================================================ - // - - #if defined(PASS_SHADOW_CASTER) - return frag(i, vpos, particleColor, particleAlpha, dissolveTex, dissolveTime, doubleDissolveWidth); - #else - return frag(i, particleColor, particleAlpha, dissolveTex, dissolveTime, doubleDissolveWidth); - #endif - } - -#endif - -//-------------------------------------------------------------------------------------------------------------------------------- -// PROCEDURAL GLOW -//-------------------------------------------------------------------------------------------------------------------------------- - -#if defined(CFXR_GLOW_SHADER) - - #include "UnityCG.cginc" - #include "UnityStandardUtils.cginc" - - // -------------------------------- - - #include "CFXR_SETTINGS.cginc" - - // -------------------------------- - - CBUFFER_START(UnityPerMaterial) - - half _GlowMin; - half _GlowMax; - half _MaxValue; - - half _InvertDissolveTex; - half _DissolveSmooth; - - half _HdrMultiply; - - half _Cutoff; - - half _SoftParticlesFadeDistanceNear; - half _SoftParticlesFadeDistanceFar; - half _EdgeFadePow; - - #if !defined(SHADER_API_GLES) - float _ShadowStrength; - float4 _DitherCustom_TexelSize; - #endif - - CBUFFER_END - - sampler2D _DissolveTex; - UNITY_DECLARE_DEPTH_TEXTURE(_CameraDepthTexture); - #if !defined(SHADER_API_GLES) - sampler3D _DitherMaskLOD; - sampler3D _DitherCustom; - #endif - - // -------------------------------- - // Input/Output - - struct appdata - { - float4 vertex : POSITION; - half4 color : COLOR; - float4 texcoord : TEXCOORD0; //xy = uv, zw = random - float4 texcoord1 : TEXCOORD1; //additional particle data: x = dissolve - #if defined(PASS_SHADOW_CASTER) - float3 normal : NORMAL; - #endif - UNITY_VERTEX_INPUT_INSTANCE_ID - }; - - // vertex to fragment - struct v2f - { - float4 pos : SV_POSITION; - half4 color : COLOR; - float4 uv_random : TEXCOORD0; //uv + particle data - float4 custom1 : TEXCOORD1; //additional particle data - #if !defined(GLOBAL_DISABLE_SOFT_PARTICLES) && ((defined(SOFTPARTICLES_ON) || defined(CFXR_URP) || defined(SOFT_PARTICLES_ORTHOGRAPHIC)) && defined(_FADING_ON)) - float4 projPos : TEXCOORD2; - #endif - UNITY_FOG_COORDS(3) //note: does nothing if fog is not enabled - UNITY_VERTEX_INPUT_INSTANCE_ID - UNITY_VERTEX_OUTPUT_STEREO - }; - - // vertex to fragment (shadow caster) - struct v2f_shadowCaster - { - V2F_SHADOW_CASTER_NOPOS - half4 color : COLOR; - float4 uv_random : TEXCOORD1; //uv + particle data - float4 custom1 : TEXCOORD2; //additional particle data - UNITY_VERTEX_INPUT_INSTANCE_ID - UNITY_VERTEX_OUTPUT_STEREO - }; - - // -------------------------------- - - #include "CFXR.cginc" - - // -------------------------------- - // Vertex - - #if defined(PASS_SHADOW_CASTER) - void vertex_program (appdata v, out v2f_shadowCaster o, out float4 opos : SV_POSITION) - #else - v2f vertex_program (appdata v) - #endif - { - #if !defined(PASS_SHADOW_CASTER) - v2f o = (v2f)0; - #if defined(CFXR_URP) - o = (v2f)0; - #else - UNITY_INITIALIZE_OUTPUT(v2f, o); - #endif - #else - o = (v2f_shadowCaster)0; - #endif - - UNITY_SETUP_INSTANCE_ID(v); - UNITY_TRANSFER_INSTANCE_ID(v, o); - UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); - - #if !defined(PASS_SHADOW_CASTER) - o.pos = UnityObjectToClipPos(v.vertex); - #endif - - o.color = GetParticleColor(v.color); - o.custom1 = v.texcoord1; - GetParticleTexcoords(o.uv_random.xy, o.uv_random.zw, o.custom1.y, v.texcoord, v.texcoord1.y); - //o.uv_random = v.texcoord; - - #if defined(PASS_SHADOW_CASTER) - vert(v, o, opos); - #else - return vert(v, o); - #endif - } - - // -------------------------------- - // Fragment - - #if defined(PASS_SHADOW_CASTER) - float4 fragment_program (v2f_shadowCaster i, UNITY_VPOS_TYPE vpos : VPOS) : SV_Target - #else - half4 fragment_program (v2f i) : SV_Target - #endif - { - UNITY_SETUP_INSTANCE_ID(i); - UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i); - - // ================================================================ - // Color & Alpha - - //-------------------------------- - // procedural glow - float2 uvm = i.uv_random.xy - 0.5; - half glow = saturate(1 - ((dot(uvm, uvm) * 4))); - #if _CFXR_GLOW_POW_P2 - glow = pow(glow, 2); - #elif _CFXR_GLOW_POW_P4 - glow = pow(glow, 4); - #elif _CFXR_GLOW_POW_P8 - glow = pow(glow, 8); - #endif - glow = clamp(lerp(_GlowMin, _GlowMax, glow), 0, _MaxValue) * saturate(glow * 30); - half4 mainTex = half4(1, 1, 1, glow); - //-------------------------------- - - #if _CFXR_HDR_BOOST - #ifdef UNITY_COLORSPACE_GAMMA - _HdrMultiply = LinearToGammaSpaceApprox(_HdrMultiply); - #endif - mainTex.rgb *= _HdrMultiply * GLOBAL_HDR_MULTIPLIER; - #endif - - half3 particleColor = mainTex.rgb * i.color.rgb; - half particleAlpha = mainTex.a * i.color.a; - - // ================================================================ - // Dissolve - - #if _CFXR_DISSOLVE - half dissolveTex = tex2D(_DissolveTex, i.uv_random.xy).r; - dissolveTex = _InvertDissolveTex <= 0 ? 1 - dissolveTex : dissolveTex; - half dissolveTime = i.custom1.x; - #else - half dissolveTex = 0; - half dissolveTime = 0; - #endif - - // ================================================================ - // - - #if defined(PASS_SHADOW_CASTER) - return frag(i, vpos, particleColor, particleAlpha, dissolveTex, dissolveTime, 0.0); - #else - return frag(i, particleColor, particleAlpha, dissolveTex, dissolveTime, 0.0); - #endif - } - -#endif - -//-------------------------------------------------------------------------------------------------------------------------------- -// SCREEN DISTORTION SHADER -//-------------------------------------------------------------------------------------------------------------------------------- - -#if defined(CFXR_SCREEN_DISTORTION_SHADER) - - #include "UnityCG.cginc" - - #if defined(CFXR_URP) - #include "CFXR_URP.cginc" - #endif - - #include "CFXR_SETTINGS.cginc" - - // -------------------------------- - - CBUFFER_START(UnityPerMaterial) - - half _ScreenDistortionScale; - - half _Cutoff; - - half _SoftParticlesFadeDistanceNear; - half _SoftParticlesFadeDistanceFar; - half _EdgeFadePow; - - CBUFFER_END - - sampler2D _ScreenDistortionTex; - #if defined(CFXR_URP) - sampler2D _CameraOpaqueTexture; - #define SampleScreenTexture(uv) tex2Dproj(_CameraOpaqueTexture, uv) - #else - sampler2D _GrabTexture; - #define SampleScreenTexture(uv) tex2Dproj(_GrabTexture, uv) - #endif - UNITY_DECLARE_DEPTH_TEXTURE(_CameraDepthTexture); - - // -------------------------------- - // Input/output - - struct appdata - { - float4 vertex : POSITION; - half4 color : COLOR; - float4 texcoord : TEXCOORD0; //xy = uv, zw = random - float4 texcoord1 : TEXCOORD1; //additional particle data: x = dissolve, y = animFrame - float4 texcoord2 : TEXCOORD2; //additional particle data: second color - #if _CFXR_EDGE_FADING - float3 normal : NORMAL; - #endif - UNITY_VERTEX_INPUT_INSTANCE_ID - }; - - // vertex to fragment - struct v2f - { - float4 pos : SV_POSITION; - half4 color : COLOR; - float4 uv_random : TEXCOORD0; //uv + particle data - float4 custom1 : TEXCOORD1; //additional particle data - float4 grabPassPosition : TEXCOORD2; - #if !defined(GLOBAL_DISABLE_SOFT_PARTICLES) && ((defined(SOFTPARTICLES_ON) || defined(CFXR_URP) || defined(SOFT_PARTICLES_ORTHOGRAPHIC)) && defined(_FADING_ON)) - float4 projPos : TEXCOORD3; - #endif - #if !defined(PASS_SHADOW_CASTER) - UNITY_FOG_COORDS(4) //note: does nothing if fog is not enabled - #endif - UNITY_VERTEX_INPUT_INSTANCE_ID - UNITY_VERTEX_OUTPUT_STEREO - }; - - // -------------------------------- - - #include "CFXR.cginc" - - // -------------------------------- - // Vertex - - v2f vertex_program (appdata v) - { - #if !defined(PASS_SHADOW_CASTER) - v2f o = (v2f)0; - #if defined(CFXR_URP) - o = (v2f)0; - #else - UNITY_INITIALIZE_OUTPUT(v2f, o); - #endif - #else - o = (v2f_shadowCaster)0; - #endif - - UNITY_SETUP_INSTANCE_ID(v); - UNITY_TRANSFER_INSTANCE_ID(v, o); - UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); - - #if !defined(PASS_SHADOW_CASTER) - o.pos = UnityObjectToClipPos(v.vertex); - o.grabPassPosition = ComputeGrabScreenPos(o.pos); - #endif - - o.color = GetParticleColor(v.color); - o.custom1 = v.texcoord1; - GetParticleTexcoords(o.uv_random.xy, o.uv_random.zw, o.custom1.y, v.texcoord, v.texcoord1.y); - //o.uv_random = v.texcoord; - - return vert(v, o); - } - - // -------------------------------- - // Fragment - - half4 fragment_program (v2f i) : SV_Target - { - UNITY_SETUP_INSTANCE_ID(i); - UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i); - - - // ================================================================ - // Screen Distortion - - half4 distortionTex = tex2D(_ScreenDistortionTex, i.uv_random.xy); - half particleAlpha = i.color.a * distortionTex.b; - half2 screenDistortion = (distortionTex.rg * 2.0 - 1.0) * _ScreenDistortionScale * particleAlpha; - float4 grabPosUV = i.grabPassPosition; - grabPosUV.xy += screenDistortion; - half3 particleColor = SampleScreenTexture(grabPosUV).rgb; - - #if defined(_DEBUG_VISUALIZE_DISTORTION) - return half4(distortionTex.rg, 0, particleAlpha); - #endif - - #if defined(PASS_SHADOW_CASTER) - return frag(i, vpos, particleColor, particleAlpha, dissolveTex, dissolveTime, 0.0); - #else - return frag(i, particleColor, particleAlpha, 0, 0, 0.0); - #endif - } - -#endif - -//-------------------------------------------------------------------------------------------------------------------------------- -// PROCEDURAL RING SHADER -//-------------------------------------------------------------------------------------------------------------------------------- - -#if defined(CFXR_PROCEDURAL_RING_SHADER) - - #include "UnityCG.cginc" - #include "UnityStandardUtils.cginc" - - // -------------------------------- - - #include "CFXR_SETTINGS.cginc" - - // -------------------------------- - - CBUFFER_START(UnityPerMaterial) - - float4 _MainTex_ST; - - half _InvertDissolveTex; - half _DissolveSmooth; - - half _HdrMultiply; - - float _RingTopOffset; - - half _Cutoff; - - half _SoftParticlesFadeDistanceNear; - half _SoftParticlesFadeDistanceFar; - half _EdgeFadePow; - - #if !defined(SHADER_API_GLES) - float _ShadowStrength; - float4 _DitherCustom_TexelSize; - #endif - - CBUFFER_END - - sampler2D _MainTex; - sampler2D _DissolveTex; - UNITY_DECLARE_DEPTH_TEXTURE(_CameraDepthTexture); - #if !defined(SHADER_API_GLES) - sampler3D _DitherMaskLOD; - sampler3D _DitherCustom; - #endif - - // -------------------------------- - // Input/Output - - struct appdata - { - float4 vertex : POSITION; - half4 color : COLOR; - float4 texcoord : TEXCOORD0; //uv + particle data - float4 texcoord1 : TEXCOORD1; //additional particle data - float4 texcoord2 : TEXCOORD2; //procedural ring data: x = width, y = smooth, z = rotation, w = particle size - #if defined(PASS_SHADOW_CASTER) || _CFXR_WORLD_SPACE_RING - float3 normal : NORMAL; - #endif - UNITY_VERTEX_INPUT_INSTANCE_ID - }; - - // vertex to fragment - struct v2f - { - float4 pos : SV_POSITION; - half4 color : COLOR; - float4 uv_uv2 : TEXCOORD0; //uv + particle data - float4 ringData : TEXCOORD1; //procedural ring data - float4 uvRing_uvCartesian : TEXCOORD2; - #if !defined(GLOBAL_DISABLE_SOFT_PARTICLES) && ((defined(SOFTPARTICLES_ON) || defined(CFXR_URP) || defined(SOFT_PARTICLES_ORTHOGRAPHIC)) && defined(_FADING_ON)) - float4 projPos : TEXCOORD3; - #endif - UNITY_FOG_COORDS(4) //note: does nothing if fog is not enabled - #if _CFXR_DISSOLVE - float4 custom1 : TEXCOORD5; - #endif - UNITY_VERTEX_INPUT_INSTANCE_ID - UNITY_VERTEX_OUTPUT_STEREO - }; - - // vertex to fragment (shadow caster) - struct v2f_shadowCaster - { - V2F_SHADOW_CASTER_NOPOS - half4 color : COLOR; - float4 uv_uv2 : TEXCOORD1; //uv + particle data - float4 ringData : TEXCOORD2; //procedural ring data - float4 uvRing_uvCartesian : TEXCOORD3; - #if _CFXR_DISSOLVE - float4 custom1 : TEXCOORD4; - #endif - }; - - // -------------------------------- - - #include "CFXR.cginc" - - // -------------------------------- - // Vertex - - #if defined(PASS_SHADOW_CASTER) - void vertex_program (appdata v, out v2f_shadowCaster o, out float4 opos : SV_POSITION) - #else - v2f vertex_program (appdata v) - #endif - { - #if !defined(PASS_SHADOW_CASTER) - v2f o = (v2f)0; - #if defined(CFXR_URP) - o = (v2f)0; - #else - UNITY_INITIALIZE_OUTPUT(v2f, o); - #endif - #else - o = (v2f_shadowCaster)0; - #endif - - UNITY_SETUP_INSTANCE_ID(v); - UNITY_TRANSFER_INSTANCE_ID(v, o); - UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); - - //-------------------------------- - // procedural ring - - float ringWidth = v.texcoord2.x; - float ringSmooth = v.texcoord2.y; - float ringRotation = v.texcoord2.z; - float particleSize = v.texcoord2.w; - - // avoid artifacts when vertex are pushed too much - ringWidth = min(particleSize, ringWidth); - - // constants calculated per vertex - o.ringData.x = pow(1 - ringWidth / particleSize, 2); - o.ringData.y = 1 - _RingTopOffset; - o.ringData.z = ringSmooth / particleSize; // smoothing depends on particle size - o.ringData.w = ringRotation; - - // regular ring UVs - float2 uv = v.texcoord.xy + float2(ringRotation, 0); - o.uvRing_uvCartesian.xy = 1 - TRANSFORM_TEX(uv, _MainTex); - - - #if _CFXR_WORLD_SPACE_RING - // to clip space with width offset - v.vertex.xyz = v.vertex.xyz - v.normal.xyz * v.texcoord.y * ringWidth; - #if !defined(PASS_SHADOW_CASTER) - o.pos = UnityObjectToClipPos(v.vertex); - #endif - #else - // to clip space with width offset - float4 m = mul(UNITY_MATRIX_V, v.vertex); - m.xy += -v.texcoord.zw * v.texcoord.y * ringWidth; - #if !defined(PASS_SHADOW_CASTER) - o.pos = mul(UNITY_MATRIX_P, m); - #endif - #endif - - //------------------------------------------ - /* - //v.vertex.xy += -v.texcoord.zw * v.texcoord.y * ringWidth; - v.vertex.xy += v.texcoord.zw * v.texcoord.y * 0.5; - #if !defined(PASS_SHADOW_CASTER) - o.pos = UnityObjectToClipPos(v.vertex); - #endif - */ - //------------------------------------------ - - // calculate cartesian UVs to accurately calculate ring in fragment shader - o.uvRing_uvCartesian.zw = v.texcoord.zw - v.texcoord.zw * v.texcoord.y * ringWidth / particleSize; - - //-------------------------------- - - o.color = v.color; - o.uv_uv2 = v.texcoord; - - //-------------------------------- - - #if _CFXR_DISSOLVE - o.custom1 = v.texcoord1; - #endif - - #if defined(PASS_SHADOW_CASTER) - vert(v, o, opos); - #else - return vert(v, o); - #endif - } - - // -------------------------------- - // Fragment - - #if defined(PASS_SHADOW_CASTER) - float4 fragment_program (v2f_shadowCaster i, UNITY_VPOS_TYPE vpos : VPOS) : SV_Target - #else - half4 fragment_program (v2f i) : SV_Target - #endif - { - UNITY_SETUP_INSTANCE_ID(i); - UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i); - - // ================================================================ - // Color & Alpha - - //-------------------------------- - // procedural ring - - float b = i.ringData.x; // bottom - float t = i.ringData.y; // top - float smooth = i.ringData.z; // smoothing - float gradient = dot(i.uvRing_uvCartesian.zw, i.uvRing_uvCartesian.zw); - float ring = saturate( smoothstep(b, b + smooth, gradient) - smoothstep(t - smooth, t, gradient) ); - - #if _CFXR_RADIAL_UV - // approximate polar coordinates - float2 radialUv = float2 - ( - (atan2(i.uvRing_uvCartesian.z, i.uvRing_uvCartesian.w) / UNITY_PI) * 0.5 + 0.5 + 0.23 - i.ringData.w, - (gradient * (1.0 / (t - b)) - (b / (t - b))) * 0.9 - 0.92 + 1 - ); - radialUv.xy = radialUv.xy * _MainTex_ST.xy + _MainTex_ST.zw; - float dx = ddx(i.uvRing_uvCartesian.x); - //float dy = ddx(i.uvRing_uvCartesian.x); - #define TEX2D_MAIN_TEXCOORD(sampler) tex2Dgrad(sampler, radialUv, dx, dx) - #else - #define TEX2D_MAIN_TEXCOORD(sampler) tex2D(sampler, i.uvRing_uvCartesian.xy) - #endif - - #if _CFXR_SINGLE_CHANNEL - half4 mainTex = half4(1, 1, 1, TEX2D_MAIN_TEXCOORD(_MainTex).r); - #else - half4 mainTex = TEX2D_MAIN_TEXCOORD(_MainTex); - #endif - - mainTex *= ring; - - //-------------------------------- - - half3 particleColor = mainTex.rgb * i.color.rgb; - half particleAlpha = mainTex.a * i.color.a; - - #if _CFXR_HDR_BOOST - #ifdef UNITY_COLORSPACE_GAMMA - _HdrMultiply = LinearToGammaSpaceApprox(_HdrMultiply); - #endif - particleColor.rgb *= _HdrMultiply * GLOBAL_HDR_MULTIPLIER; - #endif - - // ================================================================ - // Dissolve - - #if _CFXR_DISSOLVE - half dissolveTex = TEX2D_MAIN_TEXCOORD(_DissolveTex).r; - dissolveTex = _InvertDissolveTex <= 0 ? 1 - dissolveTex : dissolveTex; - half dissolveTime = i.custom1.x; - #else - half dissolveTex = 0; - half dissolveTime = 0; - #endif - - // ================================================================ - // - - #if defined(PASS_SHADOW_CASTER) - return frag(i, vpos, particleColor, particleAlpha, dissolveTex, dissolveTime, 0.0); - #else - return frag(i, particleColor, particleAlpha, dissolveTex, dissolveTime, 0.0); - #endif - } - +//-------------------------------------------------------------------------------------------------------------------------------- +// Cartoon FX +// (c) 2012-2020 Jean Moreno +//-------------------------------------------------------------------------------------------------------------------------------- + + +//-------------------------------------------------------------------------------------------------------------------------------- +// UBERSHADER +//-------------------------------------------------------------------------------------------------------------------------------- + +#if defined(CFXR_UBERSHADER) + + #if defined(UNITY_SAMPLE_FULL_SH_PER_PIXEL) + #undef UNITY_SAMPLE_FULL_SH_PER_PIXEL + #endif + #define UNITY_SAMPLE_FULL_SH_PER_PIXEL defined(_NORMALMAP) + + #include "UnityCG.cginc" + #include "UnityStandardUtils.cginc" + #include "AutoLight.cginc" + + #if defined(CFXR_URP) + #include "CFXR_URP.cginc" + #else + #include "UnityLightingCommon.cginc" + #endif + + #if defined(_CFXR_LIGHTING_INDIRECT) || defined(_CFXR_LIGHTING_DIRECT) || defined(_CFXR_LIGHTING_ALL) + #define LIGHTING + #endif + #if defined(_CFXR_LIGHTING_DIRECT) || defined(_CFXR_LIGHTING_ALL) + #define LIGHTING_DIRECT + #endif + #if defined(_CFXR_LIGHTING_INDIRECT) || defined(_CFXR_LIGHTING_ALL) + #define LIGHTING_INDIRECT + #endif + #if (defined(_CFXR_LIGHTING_DIRECT) || defined(_CFXR_LIGHTING_ALL)) && defined(_CFXR_LIGHTING_BACK) + #define LIGHTING_BACK + #endif + + #include "CFXR_SETTINGS.cginc" + + // -------------------------------- + + CBUFFER_START(UnityPerMaterial) + + float4 _OverlayTex_Scroll; + + half _BumpScale; + + float4 _GameObjectWorldPosition; + half _LightingWorldPosStrength; + half _IndirectLightingMix; + half4 _ShadowColor; + half _DirectLightingRamp; + half _DirLightScreenAtten; + half _BacklightTransmittance; + + half _InvertDissolveTex; + half _DoubleDissolve; + half2 _DissolveScroll; + half _DissolveSmooth; + + half4 _DistortScrolling; + half _Distort; + half _FadeAlongU; + + half _SecondColorSmooth; + + half _HdrMultiply; + + half _ReceivedShadowsStrength; + + half _Cutoff; + + half _SoftParticlesFadeDistanceNear; + half _SoftParticlesFadeDistanceFar; + half _EdgeFadePow; + + half4 _DissolveTex_ST; + + #if !defined(SHADER_API_GLES) + float _ShadowStrength; + float4 _DitherCustom_TexelSize; + #endif + + CBUFFER_END + + sampler2D _MainTex; + sampler2D _OverlayTex; + sampler2D _BumpMap; + sampler2D _DissolveTex; + sampler2D _DistortTex; + sampler2D _SecondColorTex; + // sampler2D _GradientMap; + UNITY_DECLARE_DEPTH_TEXTURE(_CameraDepthTexture); + #if !defined(SHADER_API_GLES) + sampler3D _DitherMaskLOD; + sampler3D _DitherCustom; + #endif + + // -------------------------------- + // Input/output + + struct appdata + { + float4 vertex : POSITION; + half4 color : COLOR; + float4 texcoord : TEXCOORD0; //xy = uv, zw = random + float4 texcoord1 : TEXCOORD1; //additional particle data: x = dissolve, y = animFrame + float4 texcoord2 : TEXCOORD2; //additional particle data: second color + #if defined(PASS_SHADOW_CASTER) || _CFXR_EDGE_FADING || defined(LIGHTING) + float3 normal : NORMAL; + #endif + #if defined(LIGHTING) && _NORMALMAP + float4 tangent : TANGENT; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + // vertex to fragment + struct v2f + { + float4 pos : SV_POSITION; + half4 color : COLOR; + float4 uv_random : TEXCOORD0; //uv + particle data + float4 custom1 : TEXCOORD1; //additional particle data + #if _CFXR_SECONDCOLOR_LERP || _CFXR_FONT_COLORS || (defined(LIGHTING) && _EMISSION) + float4 secondColor : TEXCOORD2; + #endif + #if !defined(GLOBAL_DISABLE_SOFT_PARTICLES) && ((defined(SOFTPARTICLES_ON) || defined(CFXR_URP) || defined(SOFT_PARTICLES_ORTHOGRAPHIC)) && defined(_FADING_ON)) + float4 projPos : TEXCOORD3; + #endif + #if defined(LIGHTING_DIRECT) || (defined(LIGHTING_INDIRECT) && _NORMALMAP) + float3 worldPos : TEXCOORD4; + #endif + #if defined(LIGHTING_INDIRECT) && !_NORMALMAP + float3 shColor : TEXCOORD5; + #endif + #if defined(LIGHTING_DIRECT) && defined(LIGHTING_BACK) + float3 viewDirWS : TEXCOORD6; + #endif + #if defined(_CFXR_LIGHTING_WPOS_OFFSET) && (defined(LIGHTING_DIRECT) || defined(LIGHTING_INDIRECT)) + float3 worldPosDiff : TEXCOORD7; + #endif + #if !defined(PASS_SHADOW_CASTER) + UNITY_FOG_COORDS(8) //note: does nothing if fog is not enabled + // SHADOW_COORDS(8) + #endif + #if defined(LIGHTING) + float3 normalWS : NORMAL; + #if _NORMALMAP + float4 tangentWS : TANGENT; + #endif + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + }; + + // vertex to fragment (shadow caster) + struct v2f_shadowCaster + { + V2F_SHADOW_CASTER_NOPOS + half4 color : COLOR; + float4 uv_random : TEXCOORD1; //uv + particle data + float4 custom1 : TEXCOORD2; //additional particle data + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + }; + + // -------------------------------- + + #include "CFXR.cginc" + + // -------------------------------- + // Vertex + + #if defined(PASS_SHADOW_CASTER) + void vertex_program (appdata v, out v2f_shadowCaster o, out float4 opos : SV_POSITION) + #else + v2f vertex_program (appdata v) + #endif + { + #if !defined(PASS_SHADOW_CASTER) + v2f o = (v2f)0; + #if defined(CFXR_URP) + o = (v2f)0; + #else + UNITY_INITIALIZE_OUTPUT(v2f, o); + #endif + #else + o = (v2f_shadowCaster)0; + #endif + + UNITY_SETUP_INSTANCE_ID(v); + UNITY_TRANSFER_INSTANCE_ID(v, o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + + #if !defined(PASS_SHADOW_CASTER) + o.pos = UnityObjectToClipPos(v.vertex); + + #if defined(LIGHTING_DIRECT) || (defined(LIGHTING_INDIRECT) && _NORMALMAP) + // Particle Systems already output their vertex position in world space + o.worldPos = v.vertex.xyz; + + #if defined(LIGHTING_BACK) + o.viewDirWS = normalize(_WorldSpaceCameraPos.xyz - o.worldPos); + //o.viewDirWS = normalize(mul((float3x3)unity_ObjectToWorld, v.vertex.xyz)); + #endif + #endif + + #if defined(LIGHTING) && defined(_CFXR_LIGHTING_WPOS_OFFSET) + o.worldPosDiff = _GameObjectWorldPosition.xyz - v.vertex.xyz; + #endif + #endif + + o.color = GetParticleColor(v.color); + o.custom1 = v.texcoord1; + GetParticleTexcoords(o.uv_random.xy, o.uv_random.zw, o.custom1.y, v.texcoord, v.texcoord1.y); + //o.uv_random = v.texcoord; + + #if _CFXR_SECONDCOLOR_LERP || _CFXR_FONT_COLORS || (defined(LIGHTING) && _EMISSION) + o.secondColor = v.texcoord2; + #endif + #if defined(LIGHTING) + o.normalWS = v.normal.xyz; + #if _NORMALMAP + o.tangentWS = v.tangent; + #endif + #endif + + // Ambient Lighting / Light Probes, per-vertex if no normal map + #if defined(LIGHTING_INDIRECT) && !_NORMALMAP + half3 shColor = ShadeSHPerVertex(v.normal.xyz, half3(0,0,0)); + o.shColor = shColor; + #endif + + /* + #if !defined(PASS_SHADOW_CASTER) + // Shadows Receiving + TRANSFER_SHADOW(o); + #endif + */ + + #if defined(PASS_SHADOW_CASTER) + vert(v, o, opos); + #else + return vert(v, o); + #endif + } + + // -------------------------------- + // Shade4PointLights Custom + + float3 CFXR_Shade4PointLights ( + float4 lightPosX, float4 lightPosY, float4 lightPosZ, + float3 lightColor0, float3 lightColor1, float3 lightColor2, float3 lightColor3, + float4 lightAttenSq, + float3 pos, float3 normal) + { + // to light vectors + float4 toLightX = lightPosX - pos.x; + float4 toLightY = lightPosY - pos.y; + float4 toLightZ = lightPosZ - pos.z; + // squared lengths + float4 lengthSq = 0; + lengthSq += toLightX * toLightX; + lengthSq += toLightY * toLightY; + lengthSq += toLightZ * toLightZ; + // don't produce NaNs if some vertex position overlaps with the light + lengthSq = max(lengthSq, 0.000001); + + // NdotL + float4 ndotl = 0; + ndotl += toLightX * normal.x; + ndotl += toLightY * normal.y; + ndotl += toLightZ * normal.z; + ndotl = smoothstep(0.5 - _DirectLightingRamp * 0.5, 0.5 + _DirectLightingRamp * 0.5, ndotl * 0.5 + 0.5); + + // correct NdotL + float4 corr = rsqrt(lengthSq); + ndotl = max (float4(0,0,0,0), ndotl * corr); + + // attenuation + float4 atten = 1.0 / (1.0 + lengthSq * lightAttenSq); + float4 diff = ndotl * atten; + // final color + float3 col = 0; + col += lightColor0 * diff.x; + col += lightColor1 * diff.y; + col += lightColor2 * diff.z; + col += lightColor3 * diff.w; + return col; + } + + // -------------------------------- + // Fragment + + #if defined(PASS_SHADOW_CASTER) + float4 fragment_program (v2f_shadowCaster i, UNITY_VPOS_TYPE vpos : VPOS) : SV_Target + #else + half4 fragment_program (v2f i) : SV_Target + #endif + { + UNITY_SETUP_INSTANCE_ID(i); + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i); + + // ================================================================ + // UV Distortion + + #if _CFXR_UV_DISTORTION + #if _CFXR_UV2_DISTORTION + float2 uvDistortion = tex2D(_DistortTex, i.custom1.xy * _DistortScrolling.zw + i.uv_random.zw + frac(_DistortScrolling.xy * _Time.yy)).rg; + #else + float2 uvDistortion = tex2D(_DistortTex, i.uv_random.xy * _DistortScrolling.zw + i.uv_random.zw + frac(_DistortScrolling.xy * _Time.yy)).rg; + #endif + + #if _CFXR_UV_DISTORTION_ADD + uvDistortion = i.uv_random.xy + (uvDistortion * 2.0 - 1.0) * _Distort; + #else + uvDistortion = lerp(i.uv_random.xy, uvDistortion, _Distort); + #endif + + if (_FadeAlongU > 0) + { + uvDistortion = lerp(i.uv_random.xy, uvDistortion, i.uv_random.y * 0.5); + } + + #define main_uv uvDistortion + #else + #define main_uv i.uv_random + #endif + + // ================================================================ + // Color & Alpha + + #if _CFXR_SINGLE_CHANNEL + half4 mainTex = half4(1, 1, 1, tex2D(_MainTex, main_uv.xy).r); + #else + half4 mainTex = tex2D(_MainTex, main_uv.xy); + #endif + + #ifdef _FLIPBOOK_BLENDING + #if _CFXR_SINGLE_CHANNEL + half4 mainTex2 = tex2D(_MainTex, i.uv_random.zw).r; + #else + half4 mainTex2 = tex2D(_MainTex, i.uv_random.zw); + #endif + mainTex = lerp(mainTex, mainTex2, i.custom1.y); + #endif + + #if _CFXR_OVERLAYTEX_1X + float2 timeOffset = frac(_Time.yy * _OverlayTex_Scroll.xy); + float2 overlayUv = ((i.uv_random.xy + i.uv_random.zw) * _OverlayTex_Scroll.zz) + timeOffset; + half4 overlay = tex2D(_OverlayTex, overlayUv).r; + #elif _CFXR_OVERLAYTEX_2X + float2 timeOffset = frac(_Time.yy * _OverlayTex_Scroll.xy); + float2 overlayUv = ((i.uv_random.xy + i.uv_random.zw) * _OverlayTex_Scroll.zz) + timeOffset; + half4 overlay = tex2D(_OverlayTex, overlayUv).r; + + overlayUv = ((i.uv_random.xy + i.uv_random.wz) * _OverlayTex_Scroll.ww) + timeOffset; + half4 overlay2 = tex2D(_OverlayTex, overlayUv).r; + mainTex.a *= (overlay.r + overlay2.r) / 2.0; + #endif + + #if _CFXR_OVERLAYTEX_1X || _CFXR_OVERLAYTEX_2X + #if _CFXR_OVERLAYBLEND_A + mainTex.a *= overlay.r; + #elif _CFXR_OVERLAYBLEND_RGB + mainTex.rgb *= overlay.rgb; + #else + mainTex.rgba *= overlay.rgba; + #endif + #endif + + /* + #if _CFXR_GRADIENTMAP + mainTex.rgb = tex2D(_GradientMap, mainTex.a).rgb; + #endif + */ + + #if _CFXR_FONT_COLORS + half3 particleColor = mainTex.b * i.color.rgb + mainTex.g * i.custom1.rgb + mainTex.r * i.secondColor.rgb; + half particleAlpha = mainTex.a * i.color.a; + #else + half3 particleColor = mainTex.rgb * i.color.rgb; + half particleAlpha = mainTex.a * i.color.a; + #endif + + #if _CFXR_SECONDCOLOR_LERP + half secondColorMap = tex2D(_SecondColorTex, i.uv_random.xy).r; + float time = lerp(-_SecondColorSmooth, 1+_SecondColorSmooth, i.secondColor.a); + secondColorMap = smoothstep(secondColorMap - _SecondColorSmooth, secondColorMap + _SecondColorSmooth, time); + particleColor.rgb += i.secondColor.rgb * secondColorMap; + #endif + + #if _CFXR_HDR_BOOST + #ifdef UNITY_COLORSPACE_GAMMA + _HdrMultiply = LinearToGammaSpaceApprox(_HdrMultiply); + #endif + particleColor.rgb *= _HdrMultiply * GLOBAL_HDR_MULTIPLIER; + #endif + + /* + #if !defined(PASS_SHADOW_CASTER) + // Shadows Receiving + half shadows = SHADOW_ATTENUATION(i); + particleColor.rgb *= saturate(shadows + (1.0 - _ReceivedShadowsStrength)); + #endif + */ + + // ================================================================ + // Lighting + + #if !defined(PASS_SHADOW_CASTER) + + #if defined(LIGHTING) + half3 particleLighting = half3(0, 0, 0); + + #if defined(CFXR_URP) + #define UNPACK_SCALE_NORMAL UnpackNormalScale + float3 mainLightDir = _MainLightPosition.xyz; + float3 mainLightColor = _MainLightColor.rgb; + #else + #define UNPACK_SCALE_NORMAL UnpackScaleNormal + float3 mainLightDir = _WorldSpaceLightPos0.xyz; + float3 mainLightColor = _LightColor0.rgb; + #endif + + #if _NORMALMAP + half3 normalTS = UnpackScaleNormal_CFXR(tex2D(_BumpMap, main_uv.xy), _BumpScale); + // tangent space to world space: + float sgn = i.tangentWS.w; // should be either +1 or -1 + float3 bitangent = sgn * cross(i.normalWS.xyz, i.tangentWS.xyz); + float3 normalWS = mul(normalTS, half3x3(i.tangentWS.xyz, bitangent.xyz, i.normalWS.xyz)); + #else + half3 normalWS = i.normalWS; + #endif + #if defined(_CFXR_LIGHTING_WPOS_OFFSET) + normalWS = normalize(normalWS.xyz - i.worldPosDiff.xyz * _LightingWorldPosStrength); + #endif + #endif + + // - Direct + #if defined(LIGHTING_DIRECT) + // Main Directional + half ndl = dot(normalWS, mainLightDir); + ndl = smoothstep(0.5 - _DirectLightingRamp * 0.5, 0.5 + _DirectLightingRamp * 0.5, ndl * 0.5 + 0.5); + half mainDirectLighting = max(0, ndl); + + #if defined(LIGHTING_BACK) + half viewAtten = length(mainLightDir + i.viewDirWS); + viewAtten = 1 - smoothstep(0, _DirLightScreenAtten, viewAtten); + mainDirectLighting += (viewAtten * viewAtten) * _BacklightTransmittance; + #endif + + // particleColor.rgb = lerp(_ShadowColor.rgb, particleColor.rgb * mainLightColor.rgb, mainDirectLighting); + particleColor.rgb *= lerp(_ShadowColor.rgb, mainLightColor.rgb, mainDirectLighting); + + // Point Lights + #if defined(ENABLE_POINT_LIGHTS) + #if defined(CFXR_URP) + uint additionalLightsCount = GetAdditionalLightsCount(); + for (uint lightIndex = 0u; lightIndex < additionalLightsCount; ++lightIndex) + { + Light light = GetAdditionalLight(lightIndex, i.worldPos); + half ndl = dot(normalWS, light.direction); + ndl = smoothstep(0.5 - _DirectLightingRamp * 0.5, 0.5 + _DirectLightingRamp * 0.5, ndl * 0.5 + 0.5); + ndl = max(0, ndl); + + #if defined(LIGHTING_BACK) + half backNdl = dot(-normalWS, light.direction); + backNdl = smoothstep(0.5 - _DirectLightingRamp * 0.5, 0.5 + _DirectLightingRamp * 0.5, backNdl * 0.5 + 0.5); + ndl += max(0, backNdl) * _BacklightTransmittance; + #endif + + particleColor.rgb += ndl * light.color.rgb * light.distanceAttenuation; + } + #else + half3 pointLights = CFXR_Shade4PointLights( + unity_4LightPosX0, unity_4LightPosY0, unity_4LightPosZ0, + unity_LightColor[0].rgb, unity_LightColor[1].rgb, unity_LightColor[2].rgb, unity_LightColor[3].rgb, + unity_4LightAtten0, i.worldPos, normalWS); + + #if defined(LIGHTING_BACK) + // TODO Tweak CFXR_Shade4PointLights to handle both front & back lights more efficiently? + pointLights += CFXR_Shade4PointLights( + unity_4LightPosX0, unity_4LightPosY0, unity_4LightPosZ0, + unity_LightColor[0].rgb, unity_LightColor[1].rgb, unity_LightColor[2].rgb, unity_LightColor[3].rgb, + unity_4LightAtten0, i.worldPos, -normalWS) * _BacklightTransmittance; + #endif + + particleColor.rgb += pointLights; + #endif + #endif + #endif + + // - Indirect + #if defined(LIGHTING_INDIRECT) + #if _NORMALMAP + half3 shColor = ShadeSHPerPixel(normalWS, half3(0,0,0), float3(0,0,0)); + particleColor.rgb += shColor.rgb * _IndirectLightingMix; + #else + particleColor.rgb += i.shColor.rgb * _IndirectLightingMix; + #endif + #endif + + #if defined(LIGHTING) && _EMISSION + particleColor.rgb += i.secondColor.rgb; + #endif + + #endif + + // ================================================================ + // Dissolve + + #if _CFXR_DISSOLVE + #if _CFXR_DISSOLVE_ALONG_UV_X + half dissolveOffset = tex2D(_DissolveTex, i.uv_random.xy * _DissolveTex_ST.xy + _DissolveTex_ST.zw + frac(_Time.yy * _DissolveScroll.xy)).r * 2.0 - 1.0; + half dissolveTex = i.uv_random.x + dissolveOffset * i.custom1.z; + #else + half dissolveTex = tex2D(_DissolveTex, i.uv_random.xy).r; + #endif + dissolveTex = _InvertDissolveTex <= 0 ? 1 - dissolveTex : dissolveTex; + half dissolveTime = i.custom1.x; + half doubleDissolveWidth = 0; + if (_DoubleDissolve > 0) doubleDissolveWidth = i.custom1.y; + #else + half dissolveTex = 0; + half dissolveTime = 0; + half doubleDissolveWidth = 0; + #endif + + // ================================================================ + // + + #if defined(PASS_SHADOW_CASTER) + return frag(i, vpos, particleColor, particleAlpha, dissolveTex, dissolveTime, doubleDissolveWidth); + #else + return frag(i, particleColor, particleAlpha, dissolveTex, dissolveTime, doubleDissolveWidth); + #endif + } + +#endif + +//-------------------------------------------------------------------------------------------------------------------------------- +// PROCEDURAL GLOW +//-------------------------------------------------------------------------------------------------------------------------------- + +#if defined(CFXR_GLOW_SHADER) + + #include "UnityCG.cginc" + #include "UnityStandardUtils.cginc" + + // -------------------------------- + + #include "CFXR_SETTINGS.cginc" + + // -------------------------------- + + CBUFFER_START(UnityPerMaterial) + + half _GlowMin; + half _GlowMax; + half _MaxValue; + + half _InvertDissolveTex; + half _DissolveSmooth; + + half _HdrMultiply; + + half _Cutoff; + + half _SoftParticlesFadeDistanceNear; + half _SoftParticlesFadeDistanceFar; + half _EdgeFadePow; + + #if !defined(SHADER_API_GLES) + float _ShadowStrength; + float4 _DitherCustom_TexelSize; + #endif + + CBUFFER_END + + sampler2D _DissolveTex; + UNITY_DECLARE_DEPTH_TEXTURE(_CameraDepthTexture); + #if !defined(SHADER_API_GLES) + sampler3D _DitherMaskLOD; + sampler3D _DitherCustom; + #endif + + // -------------------------------- + // Input/Output + + struct appdata + { + float4 vertex : POSITION; + half4 color : COLOR; + float4 texcoord : TEXCOORD0; //xy = uv, zw = random + float4 texcoord1 : TEXCOORD1; //additional particle data: x = dissolve + #if defined(PASS_SHADOW_CASTER) + float3 normal : NORMAL; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + // vertex to fragment + struct v2f + { + float4 pos : SV_POSITION; + half4 color : COLOR; + float4 uv_random : TEXCOORD0; //uv + particle data + float4 custom1 : TEXCOORD1; //additional particle data + #if !defined(GLOBAL_DISABLE_SOFT_PARTICLES) && ((defined(SOFTPARTICLES_ON) || defined(CFXR_URP) || defined(SOFT_PARTICLES_ORTHOGRAPHIC)) && defined(_FADING_ON)) + float4 projPos : TEXCOORD2; + #endif + UNITY_FOG_COORDS(3) //note: does nothing if fog is not enabled + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + }; + + // vertex to fragment (shadow caster) + struct v2f_shadowCaster + { + V2F_SHADOW_CASTER_NOPOS + half4 color : COLOR; + float4 uv_random : TEXCOORD1; //uv + particle data + float4 custom1 : TEXCOORD2; //additional particle data + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + }; + + // -------------------------------- + + #include "CFXR.cginc" + + // -------------------------------- + // Vertex + + #if defined(PASS_SHADOW_CASTER) + void vertex_program (appdata v, out v2f_shadowCaster o, out float4 opos : SV_POSITION) + #else + v2f vertex_program (appdata v) + #endif + { + #if !defined(PASS_SHADOW_CASTER) + v2f o = (v2f)0; + #if defined(CFXR_URP) + o = (v2f)0; + #else + UNITY_INITIALIZE_OUTPUT(v2f, o); + #endif + #else + o = (v2f_shadowCaster)0; + #endif + + UNITY_SETUP_INSTANCE_ID(v); + UNITY_TRANSFER_INSTANCE_ID(v, o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + + #if !defined(PASS_SHADOW_CASTER) + o.pos = UnityObjectToClipPos(v.vertex); + #endif + + o.color = GetParticleColor(v.color); + o.custom1 = v.texcoord1; + GetParticleTexcoords(o.uv_random.xy, o.uv_random.zw, o.custom1.y, v.texcoord, v.texcoord1.y); + //o.uv_random = v.texcoord; + + #if defined(PASS_SHADOW_CASTER) + vert(v, o, opos); + #else + return vert(v, o); + #endif + } + + // -------------------------------- + // Fragment + + #if defined(PASS_SHADOW_CASTER) + float4 fragment_program (v2f_shadowCaster i, UNITY_VPOS_TYPE vpos : VPOS) : SV_Target + #else + half4 fragment_program (v2f i) : SV_Target + #endif + { + UNITY_SETUP_INSTANCE_ID(i); + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i); + + // ================================================================ + // Color & Alpha + + //-------------------------------- + // procedural glow + float2 uvm = i.uv_random.xy - 0.5; + half glow = saturate(1 - ((dot(uvm, uvm) * 4))); + #if _CFXR_GLOW_POW_P2 + glow = pow(glow, 2); + #elif _CFXR_GLOW_POW_P4 + glow = pow(glow, 4); + #elif _CFXR_GLOW_POW_P8 + glow = pow(glow, 8); + #endif + glow = clamp(lerp(_GlowMin, _GlowMax, glow), 0, _MaxValue) * saturate(glow * 30); + half4 mainTex = half4(1, 1, 1, glow); + //-------------------------------- + + #if _CFXR_HDR_BOOST + #ifdef UNITY_COLORSPACE_GAMMA + _HdrMultiply = LinearToGammaSpaceApprox(_HdrMultiply); + #endif + mainTex.rgb *= _HdrMultiply * GLOBAL_HDR_MULTIPLIER; + #endif + + half3 particleColor = mainTex.rgb * i.color.rgb; + half particleAlpha = mainTex.a * i.color.a; + + // ================================================================ + // Dissolve + + #if _CFXR_DISSOLVE + half dissolveTex = tex2D(_DissolveTex, i.uv_random.xy).r; + dissolveTex = _InvertDissolveTex <= 0 ? 1 - dissolveTex : dissolveTex; + half dissolveTime = i.custom1.x; + #else + half dissolveTex = 0; + half dissolveTime = 0; + #endif + + // ================================================================ + // + + #if defined(PASS_SHADOW_CASTER) + return frag(i, vpos, particleColor, particleAlpha, dissolveTex, dissolveTime, 0.0); + #else + return frag(i, particleColor, particleAlpha, dissolveTex, dissolveTime, 0.0); + #endif + } + +#endif + +//-------------------------------------------------------------------------------------------------------------------------------- +// SCREEN DISTORTION SHADER +//-------------------------------------------------------------------------------------------------------------------------------- + +#if defined(CFXR_SCREEN_DISTORTION_SHADER) + + #include "UnityCG.cginc" + + #if defined(CFXR_URP) + #include "CFXR_URP.cginc" + #endif + + #include "CFXR_SETTINGS.cginc" + + // -------------------------------- + + CBUFFER_START(UnityPerMaterial) + + half _ScreenDistortionScale; + + half _Cutoff; + + half _SoftParticlesFadeDistanceNear; + half _SoftParticlesFadeDistanceFar; + half _EdgeFadePow; + + CBUFFER_END + + sampler2D _ScreenDistortionTex; + #if defined(CFXR_URP) + sampler2D _CameraOpaqueTexture; + #define SampleScreenTexture(uv) tex2Dproj(_CameraOpaqueTexture, uv) + #else + sampler2D _GrabTexture; + #define SampleScreenTexture(uv) tex2Dproj(_GrabTexture, uv) + #endif + UNITY_DECLARE_DEPTH_TEXTURE(_CameraDepthTexture); + + // -------------------------------- + // Input/output + + struct appdata + { + float4 vertex : POSITION; + half4 color : COLOR; + float4 texcoord : TEXCOORD0; //xy = uv, zw = random + float4 texcoord1 : TEXCOORD1; //additional particle data: x = dissolve, y = animFrame + float4 texcoord2 : TEXCOORD2; //additional particle data: second color + #if _CFXR_EDGE_FADING + float3 normal : NORMAL; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + // vertex to fragment + struct v2f + { + float4 pos : SV_POSITION; + half4 color : COLOR; + float4 uv_random : TEXCOORD0; //uv + particle data + float4 custom1 : TEXCOORD1; //additional particle data + float4 grabPassPosition : TEXCOORD2; + #if !defined(GLOBAL_DISABLE_SOFT_PARTICLES) && ((defined(SOFTPARTICLES_ON) || defined(CFXR_URP) || defined(SOFT_PARTICLES_ORTHOGRAPHIC)) && defined(_FADING_ON)) + float4 projPos : TEXCOORD3; + #endif + #if !defined(PASS_SHADOW_CASTER) + UNITY_FOG_COORDS(4) //note: does nothing if fog is not enabled + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + }; + + // -------------------------------- + + #include "CFXR.cginc" + + // -------------------------------- + // Vertex + + v2f vertex_program (appdata v) + { + #if !defined(PASS_SHADOW_CASTER) + v2f o = (v2f)0; + #if defined(CFXR_URP) + o = (v2f)0; + #else + UNITY_INITIALIZE_OUTPUT(v2f, o); + #endif + #else + o = (v2f_shadowCaster)0; + #endif + + UNITY_SETUP_INSTANCE_ID(v); + UNITY_TRANSFER_INSTANCE_ID(v, o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + + #if !defined(PASS_SHADOW_CASTER) + o.pos = UnityObjectToClipPos(v.vertex); + o.grabPassPosition = ComputeGrabScreenPos(o.pos); + #endif + + o.color = GetParticleColor(v.color); + o.custom1 = v.texcoord1; + GetParticleTexcoords(o.uv_random.xy, o.uv_random.zw, o.custom1.y, v.texcoord, v.texcoord1.y); + //o.uv_random = v.texcoord; + + return vert(v, o); + } + + // -------------------------------- + // Fragment + + half4 fragment_program (v2f i) : SV_Target + { + UNITY_SETUP_INSTANCE_ID(i); + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i); + + + // ================================================================ + // Screen Distortion + + half4 distortionTex = tex2D(_ScreenDistortionTex, i.uv_random.xy); + half particleAlpha = i.color.a * distortionTex.b; + half2 screenDistortion = (distortionTex.rg * 2.0 - 1.0) * _ScreenDistortionScale * particleAlpha; + float4 grabPosUV = i.grabPassPosition; + grabPosUV.xy += screenDistortion; + half3 particleColor = SampleScreenTexture(grabPosUV).rgb; + + #if defined(_DEBUG_VISUALIZE_DISTORTION) + return half4(distortionTex.rg, 0, particleAlpha); + #endif + + #if defined(PASS_SHADOW_CASTER) + return frag(i, vpos, particleColor, particleAlpha, dissolveTex, dissolveTime, 0.0); + #else + return frag(i, particleColor, particleAlpha, 0, 0, 0.0); + #endif + } + +#endif + +//-------------------------------------------------------------------------------------------------------------------------------- +// PROCEDURAL RING SHADER +//-------------------------------------------------------------------------------------------------------------------------------- + +#if defined(CFXR_PROCEDURAL_RING_SHADER) + + #include "UnityCG.cginc" + #include "UnityStandardUtils.cginc" + + // -------------------------------- + + #include "CFXR_SETTINGS.cginc" + + // -------------------------------- + + CBUFFER_START(UnityPerMaterial) + + float4 _MainTex_ST; + + half _InvertDissolveTex; + half _DissolveSmooth; + + half _HdrMultiply; + + float _RingTopOffset; + + half _Cutoff; + + half _SoftParticlesFadeDistanceNear; + half _SoftParticlesFadeDistanceFar; + half _EdgeFadePow; + + #if !defined(SHADER_API_GLES) + float _ShadowStrength; + float4 _DitherCustom_TexelSize; + #endif + + CBUFFER_END + + sampler2D _MainTex; + sampler2D _DissolveTex; + UNITY_DECLARE_DEPTH_TEXTURE(_CameraDepthTexture); + #if !defined(SHADER_API_GLES) + sampler3D _DitherMaskLOD; + sampler3D _DitherCustom; + #endif + + // -------------------------------- + // Input/Output + + struct appdata + { + float4 vertex : POSITION; + half4 color : COLOR; + float4 texcoord : TEXCOORD0; //uv + particle data + float4 texcoord1 : TEXCOORD1; //additional particle data + float4 texcoord2 : TEXCOORD2; //procedural ring data: x = width, y = smooth, z = rotation, w = particle size + #if defined(PASS_SHADOW_CASTER) || _CFXR_WORLD_SPACE_RING + float3 normal : NORMAL; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + // vertex to fragment + struct v2f + { + float4 pos : SV_POSITION; + half4 color : COLOR; + float4 uv_uv2 : TEXCOORD0; //uv + particle data + float4 ringData : TEXCOORD1; //procedural ring data + float4 uvRing_uvCartesian : TEXCOORD2; + #if !defined(GLOBAL_DISABLE_SOFT_PARTICLES) && ((defined(SOFTPARTICLES_ON) || defined(CFXR_URP) || defined(SOFT_PARTICLES_ORTHOGRAPHIC)) && defined(_FADING_ON)) + float4 projPos : TEXCOORD3; + #endif + UNITY_FOG_COORDS(4) //note: does nothing if fog is not enabled + #if _CFXR_DISSOLVE + float4 custom1 : TEXCOORD5; + #endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + }; + + // vertex to fragment (shadow caster) + struct v2f_shadowCaster + { + V2F_SHADOW_CASTER_NOPOS + half4 color : COLOR; + float4 uv_uv2 : TEXCOORD1; //uv + particle data + float4 ringData : TEXCOORD2; //procedural ring data + float4 uvRing_uvCartesian : TEXCOORD3; + #if _CFXR_DISSOLVE + float4 custom1 : TEXCOORD4; + #endif + }; + + // -------------------------------- + + #include "CFXR.cginc" + + // -------------------------------- + // Vertex + + #if defined(PASS_SHADOW_CASTER) + void vertex_program (appdata v, out v2f_shadowCaster o, out float4 opos : SV_POSITION) + #else + v2f vertex_program (appdata v) + #endif + { + #if !defined(PASS_SHADOW_CASTER) + v2f o = (v2f)0; + #if defined(CFXR_URP) + o = (v2f)0; + #else + UNITY_INITIALIZE_OUTPUT(v2f, o); + #endif + #else + o = (v2f_shadowCaster)0; + #endif + + UNITY_SETUP_INSTANCE_ID(v); + UNITY_TRANSFER_INSTANCE_ID(v, o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + + //-------------------------------- + // procedural ring + + float ringWidth = v.texcoord2.x; + float ringSmooth = v.texcoord2.y; + float ringRotation = v.texcoord2.z; + float particleSize = v.texcoord2.w; + + // avoid artifacts when vertex are pushed too much + ringWidth = min(particleSize, ringWidth); + + // constants calculated per vertex + o.ringData.x = pow(1 - ringWidth / particleSize, 2); + o.ringData.y = 1 - _RingTopOffset; + o.ringData.z = ringSmooth / particleSize; // smoothing depends on particle size + o.ringData.w = ringRotation; + + // regular ring UVs + float2 uv = v.texcoord.xy + float2(ringRotation, 0); + o.uvRing_uvCartesian.xy = 1 - TRANSFORM_TEX(uv, _MainTex); + + + #if _CFXR_WORLD_SPACE_RING + // to clip space with width offset + v.vertex.xyz = v.vertex.xyz - v.normal.xyz * v.texcoord.y * ringWidth; + #if !defined(PASS_SHADOW_CASTER) + o.pos = UnityObjectToClipPos(v.vertex); + #endif + #else + // to clip space with width offset + float4 m = mul(UNITY_MATRIX_V, v.vertex); + m.xy += -v.texcoord.zw * v.texcoord.y * ringWidth; + #if !defined(PASS_SHADOW_CASTER) + o.pos = mul(UNITY_MATRIX_P, m); + #endif + #endif + + //------------------------------------------ + /* + //v.vertex.xy += -v.texcoord.zw * v.texcoord.y * ringWidth; + v.vertex.xy += v.texcoord.zw * v.texcoord.y * 0.5; + #if !defined(PASS_SHADOW_CASTER) + o.pos = UnityObjectToClipPos(v.vertex); + #endif + */ + //------------------------------------------ + + // calculate cartesian UVs to accurately calculate ring in fragment shader + o.uvRing_uvCartesian.zw = v.texcoord.zw - v.texcoord.zw * v.texcoord.y * ringWidth / particleSize; + + //-------------------------------- + + o.color = v.color; + o.uv_uv2 = v.texcoord; + + //-------------------------------- + + #if _CFXR_DISSOLVE + o.custom1 = v.texcoord1; + #endif + + #if defined(PASS_SHADOW_CASTER) + vert(v, o, opos); + #else + return vert(v, o); + #endif + } + + // -------------------------------- + // Fragment + + #if defined(PASS_SHADOW_CASTER) + float4 fragment_program (v2f_shadowCaster i, UNITY_VPOS_TYPE vpos : VPOS) : SV_Target + #else + half4 fragment_program (v2f i) : SV_Target + #endif + { + UNITY_SETUP_INSTANCE_ID(i); + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i); + + // ================================================================ + // Color & Alpha + + //-------------------------------- + // procedural ring + + float b = i.ringData.x; // bottom + float t = i.ringData.y; // top + float smooth = i.ringData.z; // smoothing + float gradient = dot(i.uvRing_uvCartesian.zw, i.uvRing_uvCartesian.zw); + float ring = saturate( smoothstep(b, b + smooth, gradient) - smoothstep(t - smooth, t, gradient) ); + + #if _CFXR_RADIAL_UV + // approximate polar coordinates + float2 radialUv = float2 + ( + (atan2(i.uvRing_uvCartesian.z, i.uvRing_uvCartesian.w) / UNITY_PI) * 0.5 + 0.5 + 0.23 - i.ringData.w, + (gradient * (1.0 / (t - b)) - (b / (t - b))) * 0.9 - 0.92 + 1 + ); + radialUv.xy = radialUv.xy * _MainTex_ST.xy + _MainTex_ST.zw; + float dx = ddx(i.uvRing_uvCartesian.x); + //float dy = ddx(i.uvRing_uvCartesian.x); + #define TEX2D_MAIN_TEXCOORD(sampler) tex2Dgrad(sampler, radialUv, dx, dx) + #else + #define TEX2D_MAIN_TEXCOORD(sampler) tex2D(sampler, i.uvRing_uvCartesian.xy) + #endif + + #if _CFXR_SINGLE_CHANNEL + half4 mainTex = half4(1, 1, 1, TEX2D_MAIN_TEXCOORD(_MainTex).r); + #else + half4 mainTex = TEX2D_MAIN_TEXCOORD(_MainTex); + #endif + + mainTex *= ring; + + //-------------------------------- + + half3 particleColor = mainTex.rgb * i.color.rgb; + half particleAlpha = mainTex.a * i.color.a; + + #if _CFXR_HDR_BOOST + #ifdef UNITY_COLORSPACE_GAMMA + _HdrMultiply = LinearToGammaSpaceApprox(_HdrMultiply); + #endif + particleColor.rgb *= _HdrMultiply * GLOBAL_HDR_MULTIPLIER; + #endif + + // ================================================================ + // Dissolve + + #if _CFXR_DISSOLVE + half dissolveTex = TEX2D_MAIN_TEXCOORD(_DissolveTex).r; + dissolveTex = _InvertDissolveTex <= 0 ? 1 - dissolveTex : dissolveTex; + half dissolveTime = i.custom1.x; + #else + half dissolveTex = 0; + half dissolveTime = 0; + #endif + + // ================================================================ + // + + #if defined(PASS_SHADOW_CASTER) + return frag(i, vpos, particleColor, particleAlpha, dissolveTex, dissolveTime, 0.0); + #else + return frag(i, particleColor, particleAlpha, dissolveTex, dissolveTime, 0.0); + #endif + } + #endif \ No newline at end of file diff --git a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR_SETTINGS.cginc b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR_SETTINGS.cginc index ae5f4fc..51f1b90 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR_SETTINGS.cginc +++ b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR_SETTINGS.cginc @@ -1,24 +1,24 @@ -//-------------------------------------------------------------------------------------------------------------------------------- -// Cartoon FX -// (c) 2012-2020 Jean Moreno -//-------------------------------------------------------------------------------------------------------------------------------- - -// Global settings for the Cartoon FX Remaster shaders - -//-------------------------------------------------------------------------------------------------------------------------------- - - -/* Uncomment this line if you want to globally disable soft particles */ -// #define GLOBAL_DISABLE_SOFT_PARTICLES - -/* Uncomment this line to do Soft Particles depth calculation in Orthographic mode */ -// #define SOFT_PARTICLES_ORTHOGRAPHIC - -/* Change this value if you want to globally scale the HDR effects */ -#define GLOBAL_HDR_MULTIPLIER 1 - -/* Comment this line if you want to disable point lights for lit particles */ -#define ENABLE_POINT_LIGHTS - - +//-------------------------------------------------------------------------------------------------------------------------------- +// Cartoon FX +// (c) 2012-2020 Jean Moreno +//-------------------------------------------------------------------------------------------------------------------------------- + +// Global settings for the Cartoon FX Remaster shaders + +//-------------------------------------------------------------------------------------------------------------------------------- + + +/* Uncomment this line if you want to globally disable soft particles */ +// #define GLOBAL_DISABLE_SOFT_PARTICLES + +/* Uncomment this line to do Soft Particles depth calculation in Orthographic mode */ +// #define SOFT_PARTICLES_ORTHOGRAPHIC + +/* Change this value if you want to globally scale the HDR effects */ +#define GLOBAL_HDR_MULTIPLIER 1 + +/* Comment this line if you want to disable point lights for lit particles */ +#define ENABLE_POINT_LIGHTS + + //-------------------------------------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR_URP.cginc b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR_URP.cginc index 6e96577..1a9297c 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR_URP.cginc +++ b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Assets/Shaders/CFXR_URP.cginc @@ -1,232 +1,232 @@ -//-------------------------------------------------------------------------------------------------------------------------------- -// Cartoon FX -// (c) 2012-2020 Jean Moreno -//-------------------------------------------------------------------------------------------------------------------------------- - -// Copy of URP specific variables needed for lighting - -// ================================================================================================================================ -// Input.hlsl: -// ================================================================================================================================ - -#if defined(SHADER_API_MOBILE) || (defined(SHADER_API_GLCORE) && !defined(SHADER_API_SWITCH)) || defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) // Workaround for bug on Nintendo Switch where SHADER_API_GLCORE is mistakenly defined - #define MAX_VISIBLE_LIGHTS 32 -#else - #define MAX_VISIBLE_LIGHTS 256 -#endif - -// -------------------------------- - -float4 _MainLightPosition; -half4 _MainLightColor; - -// -------------------------------- - -half4 _AdditionalLightsCount; -#if USE_STRUCTURED_BUFFER_FOR_LIGHT_DATA -StructuredBuffer _AdditionalLightsBuffer; -StructuredBuffer _AdditionalLightsIndices; -#else -// GLES3 causes a performance regression in some devices when using CBUFFER. -#ifndef SHADER_API_GLES3 -CBUFFER_START(AdditionalLights) -#endif -float4 _AdditionalLightsPosition[MAX_VISIBLE_LIGHTS]; -half4 _AdditionalLightsColor[MAX_VISIBLE_LIGHTS]; -half4 _AdditionalLightsAttenuation[MAX_VISIBLE_LIGHTS]; -half4 _AdditionalLightsSpotDir[MAX_VISIBLE_LIGHTS]; -half4 _AdditionalLightsOcclusionProbes[MAX_VISIBLE_LIGHTS]; -#ifndef SHADER_API_GLES3 -CBUFFER_END -#endif -#endif - -// ================================================================================================================================ -// UnityInput.hlsl: -// ================================================================================================================================ - -half4 unity_LightData; -half4 unity_LightIndices[2]; - -// -------------------------------- - -// ================================================================================================================================ -// Macros.hlsl -// ================================================================================================================================ - -#define HALF_MIN 6.103515625e-5 // 2^-14, the same value for 10, 11 and 16-bit: https://www.khronos.org/opengl/wiki/Small_Float_Formats - -// ================================================================================================================================ -// Lighting.hlsl -// ================================================================================================================================ - -// Abstraction over Light shading data. -struct Light -{ - half3 direction; - half3 color; - half distanceAttenuation; - half shadowAttenuation; -}; - -// Matches Unity Vanila attenuation -// Attenuation smoothly decreases to light range. -float DistanceAttenuation(float distanceSqr, half2 distanceAttenuation) -{ - // We use a shared distance attenuation for additional directional and puctual lights - // for directional lights attenuation will be 1 - float lightAtten = rcp(distanceSqr); - -#if SHADER_HINT_NICE_QUALITY - // Use the smoothing factor also used in the Unity lightmapper. - half factor = distanceSqr * distanceAttenuation.x; - half smoothFactor = saturate(1.0h - factor * factor); - smoothFactor = smoothFactor * smoothFactor; -#else - // We need to smoothly fade attenuation to light range. We start fading linearly at 80% of light range - // Therefore: - // fadeDistance = (0.8 * 0.8 * lightRangeSq) - // smoothFactor = (lightRangeSqr - distanceSqr) / (lightRangeSqr - fadeDistance) - // We can rewrite that to fit a MAD by doing - // distanceSqr * (1.0 / (fadeDistanceSqr - lightRangeSqr)) + (-lightRangeSqr / (fadeDistanceSqr - lightRangeSqr) - // distanceSqr * distanceAttenuation.y + distanceAttenuation.z - half smoothFactor = saturate(distanceSqr * distanceAttenuation.x + distanceAttenuation.y); -#endif - - return lightAtten * smoothFactor; -} - -half AngleAttenuation(half3 spotDirection, half3 lightDirection, half2 spotAttenuation) -{ - // Spot Attenuation with a linear falloff can be defined as - // (SdotL - cosOuterAngle) / (cosInnerAngle - cosOuterAngle) - // This can be rewritten as - // invAngleRange = 1.0 / (cosInnerAngle - cosOuterAngle) - // SdotL * invAngleRange + (-cosOuterAngle * invAngleRange) - // SdotL * spotAttenuation.x + spotAttenuation.y - - // If we precompute the terms in a MAD instruction - half SdotL = dot(spotDirection, lightDirection); - half atten = saturate(SdotL * spotAttenuation.x + spotAttenuation.y); - return atten * atten; -} - -// Fills a light struct given a perObjectLightIndex -Light GetAdditionalPerObjectLight(int perObjectLightIndex, float3 positionWS) -{ - // Abstraction over Light input constants -#if USE_STRUCTURED_BUFFER_FOR_LIGHT_DATA - float4 lightPositionWS = _AdditionalLightsBuffer[perObjectLightIndex].position; - half3 color = _AdditionalLightsBuffer[perObjectLightIndex].color.rgb; - half4 distanceAndSpotAttenuation = _AdditionalLightsBuffer[perObjectLightIndex].attenuation; - half4 spotDirection = _AdditionalLightsBuffer[perObjectLightIndex].spotDirection; - half4 lightOcclusionProbeInfo = _AdditionalLightsBuffer[perObjectLightIndex].occlusionProbeChannels; -#else - float4 lightPositionWS = _AdditionalLightsPosition[perObjectLightIndex]; - half3 color = _AdditionalLightsColor[perObjectLightIndex].rgb; - half4 distanceAndSpotAttenuation = _AdditionalLightsAttenuation[perObjectLightIndex]; - half4 spotDirection = _AdditionalLightsSpotDir[perObjectLightIndex]; - half4 lightOcclusionProbeInfo = _AdditionalLightsOcclusionProbes[perObjectLightIndex]; -#endif - - // Directional lights store direction in lightPosition.xyz and have .w set to 0.0. - // This way the following code will work for both directional and punctual lights. - float3 lightVector = lightPositionWS.xyz - positionWS * lightPositionWS.w; - float distanceSqr = max(dot(lightVector, lightVector), HALF_MIN); - - half3 lightDirection = half3(lightVector * rsqrt(distanceSqr)); - half attenuation = DistanceAttenuation(distanceSqr, distanceAndSpotAttenuation.xy) * AngleAttenuation(spotDirection.xyz, lightDirection, distanceAndSpotAttenuation.zw); - - Light light; - light.direction = lightDirection; - light.distanceAttenuation = attenuation; - /// light.shadowAttenuation = AdditionalLightRealtimeShadow(perObjectLightIndex, positionWS); - light.shadowAttenuation = 1; - light.color = color; - - // In case we're using light probes, we can sample the attenuation from the `unity_ProbesOcclusion` -#if defined(LIGHTMAP_ON) || defined(_MIXED_LIGHTING_SUBTRACTIVE) - // First find the probe channel from the light. - // Then sample `unity_ProbesOcclusion` for the baked occlusion. - // If the light is not baked, the channel is -1, and we need to apply no occlusion. - - // probeChannel is the index in 'unity_ProbesOcclusion' that holds the proper occlusion value. - int probeChannel = lightOcclusionProbeInfo.x; - - // lightProbeContribution is set to 0 if we are indeed using a probe, otherwise set to 1. - half lightProbeContribution = lightOcclusionProbeInfo.y; - - half probeOcclusionValue = unity_ProbesOcclusion[probeChannel]; - light.distanceAttenuation *= max(probeOcclusionValue, lightProbeContribution); -#endif - - return light; -} - -uint GetPerObjectLightIndexOffset() -{ -#if USE_STRUCTURED_BUFFER_FOR_LIGHT_DATA - return unity_LightData.x; -#else - return 0; -#endif -} - -// Returns a per-object index given a loop index. -// This abstract the underlying data implementation for storing lights/light indices -int GetPerObjectLightIndex(uint index) -{ -///////////////////////////////////////////////////////////////////////////////////////////// -// Structured Buffer Path / -// / -// Lights and light indices are stored in StructuredBuffer. We can just index them. / -// Currently all non-mobile platforms take this path :( / -// There are limitation in mobile GPUs to use SSBO (performance / no vertex shader support) / -///////////////////////////////////////////////////////////////////////////////////////////// -#if USE_STRUCTURED_BUFFER_FOR_LIGHT_DATA - uint offset = unity_LightData.x; - return _AdditionalLightsIndices[offset + index]; - -///////////////////////////////////////////////////////////////////////////////////////////// -// UBO path / -// / -// We store 8 light indices in float4 unity_LightIndices[2]; / -// Due to memory alignment unity doesn't support int[] or float[] / -// Even trying to reinterpret cast the unity_LightIndices to float[] won't work / -// it will cast to float4[] and create extra register pressure. :( / -///////////////////////////////////////////////////////////////////////////////////////////// -#elif !defined(SHADER_API_GLES) - // since index is uint shader compiler will implement - // div & mod as bitfield ops (shift and mask). - - // TODO: Can we index a float4? Currently compiler is - // replacing unity_LightIndicesX[i] with a dp4 with identity matrix. - // u_xlat16_40 = dot(unity_LightIndices[int(u_xlatu13)], ImmCB_0_0_0[u_xlati1]); - // This increases both arithmetic and register pressure. - return unity_LightIndices[index / 4][index % 4]; -#else - // Fallback to GLES2. No bitfield magic here :(. - // We limit to 4 indices per object and only sample unity_4LightIndices0. - // Conditional moves are branch free even on mali-400 - // small arithmetic cost but no extra register pressure from ImmCB_0_0_0 matrix. - half2 lightIndex2 = (index < 2.0h) ? unity_LightIndices[0].xy : unity_LightIndices[0].zw; - half i_rem = (index < 2.0h) ? index : index - 2.0h; - return (i_rem < 1.0h) ? lightIndex2.x : lightIndex2.y; -#endif -} - -// Fills a light struct given a loop i index. This will convert the i -// index to a perObjectLightIndex -Light GetAdditionalLight(uint i, float3 positionWS) -{ - int perObjectLightIndex = GetPerObjectLightIndex(i); - return GetAdditionalPerObjectLight(perObjectLightIndex, positionWS); -} - -int GetAdditionalLightsCount() -{ - // TODO: we need to expose in SRP api an ability for the pipeline cap the amount of lights - // in the culling. This way we could do the loop branch with an uniform - // This would be helpful to support baking exceeding lights in SH as well - return min(_AdditionalLightsCount.x, unity_LightData.y); +//-------------------------------------------------------------------------------------------------------------------------------- +// Cartoon FX +// (c) 2012-2020 Jean Moreno +//-------------------------------------------------------------------------------------------------------------------------------- + +// Copy of URP specific variables needed for lighting + +// ================================================================================================================================ +// Input.hlsl: +// ================================================================================================================================ + +#if defined(SHADER_API_MOBILE) || (defined(SHADER_API_GLCORE) && !defined(SHADER_API_SWITCH)) || defined(SHADER_API_GLES) || defined(SHADER_API_GLES3) // Workaround for bug on Nintendo Switch where SHADER_API_GLCORE is mistakenly defined + #define MAX_VISIBLE_LIGHTS 32 +#else + #define MAX_VISIBLE_LIGHTS 256 +#endif + +// -------------------------------- + +float4 _MainLightPosition; +half4 _MainLightColor; + +// -------------------------------- + +half4 _AdditionalLightsCount; +#if USE_STRUCTURED_BUFFER_FOR_LIGHT_DATA +StructuredBuffer _AdditionalLightsBuffer; +StructuredBuffer _AdditionalLightsIndices; +#else +// GLES3 causes a performance regression in some devices when using CBUFFER. +#ifndef SHADER_API_GLES3 +CBUFFER_START(AdditionalLights) +#endif +float4 _AdditionalLightsPosition[MAX_VISIBLE_LIGHTS]; +half4 _AdditionalLightsColor[MAX_VISIBLE_LIGHTS]; +half4 _AdditionalLightsAttenuation[MAX_VISIBLE_LIGHTS]; +half4 _AdditionalLightsSpotDir[MAX_VISIBLE_LIGHTS]; +half4 _AdditionalLightsOcclusionProbes[MAX_VISIBLE_LIGHTS]; +#ifndef SHADER_API_GLES3 +CBUFFER_END +#endif +#endif + +// ================================================================================================================================ +// UnityInput.hlsl: +// ================================================================================================================================ + +half4 unity_LightData; +half4 unity_LightIndices[2]; + +// -------------------------------- + +// ================================================================================================================================ +// Macros.hlsl +// ================================================================================================================================ + +#define HALF_MIN 6.103515625e-5 // 2^-14, the same value for 10, 11 and 16-bit: https://www.khronos.org/opengl/wiki/Small_Float_Formats + +// ================================================================================================================================ +// Lighting.hlsl +// ================================================================================================================================ + +// Abstraction over Light shading data. +struct Light +{ + half3 direction; + half3 color; + half distanceAttenuation; + half shadowAttenuation; +}; + +// Matches Unity Vanila attenuation +// Attenuation smoothly decreases to light range. +float DistanceAttenuation(float distanceSqr, half2 distanceAttenuation) +{ + // We use a shared distance attenuation for additional directional and puctual lights + // for directional lights attenuation will be 1 + float lightAtten = rcp(distanceSqr); + +#if SHADER_HINT_NICE_QUALITY + // Use the smoothing factor also used in the Unity lightmapper. + half factor = distanceSqr * distanceAttenuation.x; + half smoothFactor = saturate(1.0h - factor * factor); + smoothFactor = smoothFactor * smoothFactor; +#else + // We need to smoothly fade attenuation to light range. We start fading linearly at 80% of light range + // Therefore: + // fadeDistance = (0.8 * 0.8 * lightRangeSq) + // smoothFactor = (lightRangeSqr - distanceSqr) / (lightRangeSqr - fadeDistance) + // We can rewrite that to fit a MAD by doing + // distanceSqr * (1.0 / (fadeDistanceSqr - lightRangeSqr)) + (-lightRangeSqr / (fadeDistanceSqr - lightRangeSqr) + // distanceSqr * distanceAttenuation.y + distanceAttenuation.z + half smoothFactor = saturate(distanceSqr * distanceAttenuation.x + distanceAttenuation.y); +#endif + + return lightAtten * smoothFactor; +} + +half AngleAttenuation(half3 spotDirection, half3 lightDirection, half2 spotAttenuation) +{ + // Spot Attenuation with a linear falloff can be defined as + // (SdotL - cosOuterAngle) / (cosInnerAngle - cosOuterAngle) + // This can be rewritten as + // invAngleRange = 1.0 / (cosInnerAngle - cosOuterAngle) + // SdotL * invAngleRange + (-cosOuterAngle * invAngleRange) + // SdotL * spotAttenuation.x + spotAttenuation.y + + // If we precompute the terms in a MAD instruction + half SdotL = dot(spotDirection, lightDirection); + half atten = saturate(SdotL * spotAttenuation.x + spotAttenuation.y); + return atten * atten; +} + +// Fills a light struct given a perObjectLightIndex +Light GetAdditionalPerObjectLight(int perObjectLightIndex, float3 positionWS) +{ + // Abstraction over Light input constants +#if USE_STRUCTURED_BUFFER_FOR_LIGHT_DATA + float4 lightPositionWS = _AdditionalLightsBuffer[perObjectLightIndex].position; + half3 color = _AdditionalLightsBuffer[perObjectLightIndex].color.rgb; + half4 distanceAndSpotAttenuation = _AdditionalLightsBuffer[perObjectLightIndex].attenuation; + half4 spotDirection = _AdditionalLightsBuffer[perObjectLightIndex].spotDirection; + half4 lightOcclusionProbeInfo = _AdditionalLightsBuffer[perObjectLightIndex].occlusionProbeChannels; +#else + float4 lightPositionWS = _AdditionalLightsPosition[perObjectLightIndex]; + half3 color = _AdditionalLightsColor[perObjectLightIndex].rgb; + half4 distanceAndSpotAttenuation = _AdditionalLightsAttenuation[perObjectLightIndex]; + half4 spotDirection = _AdditionalLightsSpotDir[perObjectLightIndex]; + half4 lightOcclusionProbeInfo = _AdditionalLightsOcclusionProbes[perObjectLightIndex]; +#endif + + // Directional lights store direction in lightPosition.xyz and have .w set to 0.0. + // This way the following code will work for both directional and punctual lights. + float3 lightVector = lightPositionWS.xyz - positionWS * lightPositionWS.w; + float distanceSqr = max(dot(lightVector, lightVector), HALF_MIN); + + half3 lightDirection = half3(lightVector * rsqrt(distanceSqr)); + half attenuation = DistanceAttenuation(distanceSqr, distanceAndSpotAttenuation.xy) * AngleAttenuation(spotDirection.xyz, lightDirection, distanceAndSpotAttenuation.zw); + + Light light; + light.direction = lightDirection; + light.distanceAttenuation = attenuation; + /// light.shadowAttenuation = AdditionalLightRealtimeShadow(perObjectLightIndex, positionWS); + light.shadowAttenuation = 1; + light.color = color; + + // In case we're using light probes, we can sample the attenuation from the `unity_ProbesOcclusion` +#if defined(LIGHTMAP_ON) || defined(_MIXED_LIGHTING_SUBTRACTIVE) + // First find the probe channel from the light. + // Then sample `unity_ProbesOcclusion` for the baked occlusion. + // If the light is not baked, the channel is -1, and we need to apply no occlusion. + + // probeChannel is the index in 'unity_ProbesOcclusion' that holds the proper occlusion value. + int probeChannel = lightOcclusionProbeInfo.x; + + // lightProbeContribution is set to 0 if we are indeed using a probe, otherwise set to 1. + half lightProbeContribution = lightOcclusionProbeInfo.y; + + half probeOcclusionValue = unity_ProbesOcclusion[probeChannel]; + light.distanceAttenuation *= max(probeOcclusionValue, lightProbeContribution); +#endif + + return light; +} + +uint GetPerObjectLightIndexOffset() +{ +#if USE_STRUCTURED_BUFFER_FOR_LIGHT_DATA + return unity_LightData.x; +#else + return 0; +#endif +} + +// Returns a per-object index given a loop index. +// This abstract the underlying data implementation for storing lights/light indices +int GetPerObjectLightIndex(uint index) +{ +///////////////////////////////////////////////////////////////////////////////////////////// +// Structured Buffer Path / +// / +// Lights and light indices are stored in StructuredBuffer. We can just index them. / +// Currently all non-mobile platforms take this path :( / +// There are limitation in mobile GPUs to use SSBO (performance / no vertex shader support) / +///////////////////////////////////////////////////////////////////////////////////////////// +#if USE_STRUCTURED_BUFFER_FOR_LIGHT_DATA + uint offset = unity_LightData.x; + return _AdditionalLightsIndices[offset + index]; + +///////////////////////////////////////////////////////////////////////////////////////////// +// UBO path / +// / +// We store 8 light indices in float4 unity_LightIndices[2]; / +// Due to memory alignment unity doesn't support int[] or float[] / +// Even trying to reinterpret cast the unity_LightIndices to float[] won't work / +// it will cast to float4[] and create extra register pressure. :( / +///////////////////////////////////////////////////////////////////////////////////////////// +#elif !defined(SHADER_API_GLES) + // since index is uint shader compiler will implement + // div & mod as bitfield ops (shift and mask). + + // TODO: Can we index a float4? Currently compiler is + // replacing unity_LightIndicesX[i] with a dp4 with identity matrix. + // u_xlat16_40 = dot(unity_LightIndices[int(u_xlatu13)], ImmCB_0_0_0[u_xlati1]); + // This increases both arithmetic and register pressure. + return unity_LightIndices[index / 4][index % 4]; +#else + // Fallback to GLES2. No bitfield magic here :(. + // We limit to 4 indices per object and only sample unity_4LightIndices0. + // Conditional moves are branch free even on mali-400 + // small arithmetic cost but no extra register pressure from ImmCB_0_0_0 matrix. + half2 lightIndex2 = (index < 2.0h) ? unity_LightIndices[0].xy : unity_LightIndices[0].zw; + half i_rem = (index < 2.0h) ? index : index - 2.0h; + return (i_rem < 1.0h) ? lightIndex2.x : lightIndex2.y; +#endif +} + +// Fills a light struct given a loop i index. This will convert the i +// index to a perObjectLightIndex +Light GetAdditionalLight(uint i, float3 positionWS) +{ + int perObjectLightIndex = GetPerObjectLightIndex(i); + return GetAdditionalPerObjectLight(perObjectLightIndex, positionWS); +} + +int GetAdditionalLightsCount() +{ + // TODO: we need to expose in SRP api an ability for the pipeline cap the amount of lights + // in the culling. This way we could do the loop branch with an uniform + // This would be helpful to support baking exceeding lights in SH as well + return min(_AdditionalLightsCount.x, unity_LightData.y); } \ No newline at end of file diff --git a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Prefabs/Texts/_Make your own text effect.txt b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Prefabs/Texts/_Make your own text effect.txt index 71a4ff8..d153ad6 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/CFXR Prefabs/Texts/_Make your own text effect.txt +++ b/Assets/JMO Assets/Cartoon FX Remaster/CFXR Prefabs/Texts/_Make your own text effect.txt @@ -1,12 +1,12 @@ -Cartoon FX Remaster -(c) 2020, Jean Moreno ---------------------- - -You can make your own text effect like the prefabs in this folder. - -Just duplicate a prefab, and edit it. -If editing the Prefab in a Scene directly, you will have to unpack it first (or go into edit Prefab mode from there). - -The root GameObject contains the "CFXR_ParticleText" script, which allows you to change the text and other parameters. -The ParticleSystem on the root GameObject will define the behavior of each created letter: change parameters, and refresh the text to see the result. - +Cartoon FX Remaster +(c) 2020, Jean Moreno +--------------------- + +You can make your own text effect like the prefabs in this folder. + +Just duplicate a prefab, and edit it. +If editing the Prefab in a Scene directly, you will have to unpack it first (or go into edit Prefab mode from there). + +The root GameObject contains the "CFXR_ParticleText" script, which allows you to change the text and other parameters. +The ParticleSystem on the root GameObject will define the behavior of each created letter: change parameters, and refresh the text to see the result. + diff --git a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/CFXR_Demo.cs b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/CFXR_Demo.cs index 310f4d1..308b0ea 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/CFXR_Demo.cs +++ b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/CFXR_Demo.cs @@ -1,263 +1,263 @@ -//-------------------------------------------------------------------------------------------------------------------------------- -// Cartoon FX -// (c) 2012-2020 Jean Moreno -//-------------------------------------------------------------------------------------------------------------------------------- - -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.UI; - -namespace CartoonFX -{ - public class CFXR_Demo : MonoBehaviour - { - //---------------------------------------------------------------------------------------------------------------------------- - // UI - - public void NextEffect() - { - index++; - WrapIndex(); - PlayAtIndex(); - } - - public void PreviousEffect() - { - index--; - WrapIndex(); - PlayAtIndex(); - } - - public void ToggleSlowMo() - { - slowMotion = !slowMotion; - - Time.timeScale = slowMotion ? 0.33f : 1.0f; - - var color = Color.white; - color.a = slowMotion ? 1f : 0.33f; - btnSlowMotion.color = color; - lblSlowMotion.color = color; - } - - public void ToggleCamera() - { - rotateCamera = !rotateCamera; - - var color = Color.white; - color.a = rotateCamera ? 1f : 0.33f; - btnCameraRotation.color = color; - lblCameraRotation.color = color; - } - - public void ToggleGround() - { - showGround = !showGround; - - ground.SetActive(showGround); - - var color = Color.white; - color.a = showGround ? 1f : 0.33f; - btnShowGround.color = color; - lblShowGround.color = color; - } - - public void ToggleCameraShake() - { - CFXR_Effect.GlobalDisableCameraShake = !CFXR_Effect.GlobalDisableCameraShake; - - var color = Color.white; - color.a = CFXR_Effect.GlobalDisableCameraShake ? 0.33f : 1.0f; - btnCamShake.color = color; - lblCamShake.color = color; - } - - public void ToggleEffectsLights() - { - CFXR_Effect.GlobalDisableLights = !CFXR_Effect.GlobalDisableLights; - - var color = Color.white; - color.a = CFXR_Effect.GlobalDisableLights ? 0.33f : 1.0f; - btnLights.color = color; - lblLights.color = color; - } - - public void ToggleBloom() - { - bloom.enabled = !bloom.enabled; - - var color = Color.white; - color.a = !bloom.enabled ? 0.33f : 1.0f; - btnBloom.color = color; - lblBloom.color = color; - } - - public void ResetCam() - { - Camera.main.transform.position = camInitialPosition; - Camera.main.transform.rotation = camInitialRotation; - } - - //---------------------------------------------------------------------------------------------------------------------------- - - public Image btnSlowMotion; - public Text lblSlowMotion; - public Image btnCameraRotation; - public Text lblCameraRotation; - public Image btnShowGround; - public Text lblShowGround; - public Image btnCamShake; - public Text lblCamShake; - public Image btnLights; - public Text lblLights; - public Image btnBloom; - public Text lblBloom; - [Space] - public Text labelEffect; - public Text labelIndex; - [Space] - public GameObject ground; - public Collider groundCollider; - public Transform demoCamera; - public MonoBehaviour bloom; - public float rotationSpeed = 10f; - public float zoomFactor = 1f; - - bool slowMotion = false; - bool rotateCamera = false; - bool showGround = true; - - //---------------------------------------------------------------------------------------------------------------------------- - - [System.NonSerialized] public GameObject currentEffect; - GameObject[] effectsList; - int index = 0; - - Vector3 camInitialPosition; - Quaternion camInitialRotation; - - void Awake() - { - camInitialPosition = Camera.main.transform.position; - camInitialRotation = Camera.main.transform.rotation; - - var list = new List(); - for (int i = 0; i < this.transform.childCount; i++) - { - var effect = this.transform.GetChild(i).gameObject; - list.Add(effect); - - var cfxrEffect= effect.GetComponent(); - if (cfxrEffect != null) cfxrEffect.clearBehavior = CFXR_Effect.ClearBehavior.Disable; - } - effectsList = list.ToArray(); - - PlayAtIndex(); - UpdateLabels(); - } - - void Update() - { - if (rotateCamera) - { - demoCamera.RotateAround(Vector3.zero, Vector3.up, rotationSpeed * Time.deltaTime); - } - - if (Input.GetKeyDown(KeyCode.Space)) - { - if (currentEffect != null) - { - var ps = currentEffect.GetComponent(); - if (ps.isEmitting) - { - ps.Stop(true); - } - else - { - if (!currentEffect.gameObject.activeSelf) - { - currentEffect.SetActive(true); - } - else - { - ps.Play(true); - var cfxrEffects = currentEffect.GetComponentsInChildren(); - foreach (var cfxr in cfxrEffects) - { - cfxr.ResetState(); - } - } - } - } - } - - if (Input.GetKeyDown(KeyCode.Delete) || Input.GetKeyDown(KeyCode.Backspace)) - { - if (currentEffect != null) - { - currentEffect.SetActive(false); - currentEffect.SetActive(true); - } - } - - if (Input.GetKeyDown(KeyCode.LeftArrow)) - { - PreviousEffect(); - } - - if (Input.GetKeyDown(KeyCode.RightArrow)) - { - NextEffect(); - } - - if (Input.GetMouseButtonDown(0)) - { - var ray = demoCamera.GetComponent().ScreenPointToRay(Input.mousePosition); - if (Physics.Raycast(ray)) - { - if (currentEffect != null) - { - currentEffect.SetActive(false); - currentEffect.SetActive(true); - } - } - } - - if (Input.GetMouseButtonDown(1) || Input.GetMouseButtonDown(2)) - { - ResetCam(); - } - - float scroll = Input.GetAxis("Mouse ScrollWheel"); - if (scroll != 0f) - { - Camera.main.transform.Translate(Vector3.forward * (scroll < 0f ? -1f : 1f) * zoomFactor, Space.Self); - } - } - - public void PlayAtIndex() - { - if (currentEffect != null) - { - currentEffect.SetActive(false); - } - - currentEffect = effectsList[index]; - currentEffect.SetActive(true); - - UpdateLabels(); - } - - void WrapIndex() - { - if (index < 0) index = effectsList.Length - 1; - if (index >= effectsList.Length) index = 0; - } - - void UpdateLabels() - { - labelEffect.text = currentEffect.name; - labelIndex.text = string.Format("{0}/{1}", (index+1), effectsList.Length); - } - } +//-------------------------------------------------------------------------------------------------------------------------------- +// Cartoon FX +// (c) 2012-2020 Jean Moreno +//-------------------------------------------------------------------------------------------------------------------------------- + +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace CartoonFX +{ + public class CFXR_Demo : MonoBehaviour + { + //---------------------------------------------------------------------------------------------------------------------------- + // UI + + public void NextEffect() + { + index++; + WrapIndex(); + PlayAtIndex(); + } + + public void PreviousEffect() + { + index--; + WrapIndex(); + PlayAtIndex(); + } + + public void ToggleSlowMo() + { + slowMotion = !slowMotion; + + Time.timeScale = slowMotion ? 0.33f : 1.0f; + + var color = Color.white; + color.a = slowMotion ? 1f : 0.33f; + btnSlowMotion.color = color; + lblSlowMotion.color = color; + } + + public void ToggleCamera() + { + rotateCamera = !rotateCamera; + + var color = Color.white; + color.a = rotateCamera ? 1f : 0.33f; + btnCameraRotation.color = color; + lblCameraRotation.color = color; + } + + public void ToggleGround() + { + showGround = !showGround; + + ground.SetActive(showGround); + + var color = Color.white; + color.a = showGround ? 1f : 0.33f; + btnShowGround.color = color; + lblShowGround.color = color; + } + + public void ToggleCameraShake() + { + CFXR_Effect.GlobalDisableCameraShake = !CFXR_Effect.GlobalDisableCameraShake; + + var color = Color.white; + color.a = CFXR_Effect.GlobalDisableCameraShake ? 0.33f : 1.0f; + btnCamShake.color = color; + lblCamShake.color = color; + } + + public void ToggleEffectsLights() + { + CFXR_Effect.GlobalDisableLights = !CFXR_Effect.GlobalDisableLights; + + var color = Color.white; + color.a = CFXR_Effect.GlobalDisableLights ? 0.33f : 1.0f; + btnLights.color = color; + lblLights.color = color; + } + + public void ToggleBloom() + { + bloom.enabled = !bloom.enabled; + + var color = Color.white; + color.a = !bloom.enabled ? 0.33f : 1.0f; + btnBloom.color = color; + lblBloom.color = color; + } + + public void ResetCam() + { + Camera.main.transform.position = camInitialPosition; + Camera.main.transform.rotation = camInitialRotation; + } + + //---------------------------------------------------------------------------------------------------------------------------- + + public Image btnSlowMotion; + public Text lblSlowMotion; + public Image btnCameraRotation; + public Text lblCameraRotation; + public Image btnShowGround; + public Text lblShowGround; + public Image btnCamShake; + public Text lblCamShake; + public Image btnLights; + public Text lblLights; + public Image btnBloom; + public Text lblBloom; + [Space] + public Text labelEffect; + public Text labelIndex; + [Space] + public GameObject ground; + public Collider groundCollider; + public Transform demoCamera; + public MonoBehaviour bloom; + public float rotationSpeed = 10f; + public float zoomFactor = 1f; + + bool slowMotion = false; + bool rotateCamera = false; + bool showGround = true; + + //---------------------------------------------------------------------------------------------------------------------------- + + [System.NonSerialized] public GameObject currentEffect; + GameObject[] effectsList; + int index = 0; + + Vector3 camInitialPosition; + Quaternion camInitialRotation; + + void Awake() + { + camInitialPosition = Camera.main.transform.position; + camInitialRotation = Camera.main.transform.rotation; + + var list = new List(); + for (int i = 0; i < this.transform.childCount; i++) + { + var effect = this.transform.GetChild(i).gameObject; + list.Add(effect); + + var cfxrEffect= effect.GetComponent(); + if (cfxrEffect != null) cfxrEffect.clearBehavior = CFXR_Effect.ClearBehavior.Disable; + } + effectsList = list.ToArray(); + + PlayAtIndex(); + UpdateLabels(); + } + + void Update() + { + if (rotateCamera) + { + demoCamera.RotateAround(Vector3.zero, Vector3.up, rotationSpeed * Time.deltaTime); + } + + if (Input.GetKeyDown(KeyCode.Space)) + { + if (currentEffect != null) + { + var ps = currentEffect.GetComponent(); + if (ps.isEmitting) + { + ps.Stop(true); + } + else + { + if (!currentEffect.gameObject.activeSelf) + { + currentEffect.SetActive(true); + } + else + { + ps.Play(true); + var cfxrEffects = currentEffect.GetComponentsInChildren(); + foreach (var cfxr in cfxrEffects) + { + cfxr.ResetState(); + } + } + } + } + } + + if (Input.GetKeyDown(KeyCode.Delete) || Input.GetKeyDown(KeyCode.Backspace)) + { + if (currentEffect != null) + { + currentEffect.SetActive(false); + currentEffect.SetActive(true); + } + } + + if (Input.GetKeyDown(KeyCode.LeftArrow)) + { + PreviousEffect(); + } + + if (Input.GetKeyDown(KeyCode.RightArrow)) + { + NextEffect(); + } + + if (Input.GetMouseButtonDown(0)) + { + var ray = demoCamera.GetComponent().ScreenPointToRay(Input.mousePosition); + if (Physics.Raycast(ray)) + { + if (currentEffect != null) + { + currentEffect.SetActive(false); + currentEffect.SetActive(true); + } + } + } + + if (Input.GetMouseButtonDown(1) || Input.GetMouseButtonDown(2)) + { + ResetCam(); + } + + float scroll = Input.GetAxis("Mouse ScrollWheel"); + if (scroll != 0f) + { + Camera.main.transform.Translate(Vector3.forward * (scroll < 0f ? -1f : 1f) * zoomFactor, Space.Self); + } + } + + public void PlayAtIndex() + { + if (currentEffect != null) + { + currentEffect.SetActive(false); + } + + currentEffect = effectsList[index]; + currentEffect.SetActive(true); + + UpdateLabels(); + } + + void WrapIndex() + { + if (index < 0) index = effectsList.Length - 1; + if (index >= effectsList.Length) index = 0; + } + + void UpdateLabels() + { + labelEffect.text = currentEffect.name; + labelIndex.text = string.Format("{0}/{1}", (index+1), effectsList.Length); + } + } } \ No newline at end of file diff --git a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/CFXR_Demo_Rotate.cs b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/CFXR_Demo_Rotate.cs index 27a4cad..a2326b9 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/CFXR_Demo_Rotate.cs +++ b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/CFXR_Demo_Rotate.cs @@ -1,21 +1,21 @@ -//-------------------------------------------------------------------------------------------------------------------------------- -// Cartoon FX -// (c) 2012-2020 Jean Moreno -//-------------------------------------------------------------------------------------------------------------------------------- - -using UnityEngine; - -namespace CartoonFX -{ - public class CFXR_Demo_Rotate : MonoBehaviour - { - public Vector3 axis = new Vector3(0,1,0); - public Vector3 center; - public float speed = 1.0f; - - void Update() - { - this.transform.RotateAround(center, axis, speed * Time.deltaTime); - } - } +//-------------------------------------------------------------------------------------------------------------------------------- +// Cartoon FX +// (c) 2012-2020 Jean Moreno +//-------------------------------------------------------------------------------------------------------------------------------- + +using UnityEngine; + +namespace CartoonFX +{ + public class CFXR_Demo_Rotate : MonoBehaviour + { + public Vector3 axis = new Vector3(0,1,0); + public Vector3 center; + public float speed = 1.0f; + + void Update() + { + this.transform.RotateAround(center, axis, speed * Time.deltaTime); + } + } } \ No newline at end of file diff --git a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/CFXR_Demo_Translate.cs b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/CFXR_Demo_Translate.cs index c3d6caf..e6bb186 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/CFXR_Demo_Translate.cs +++ b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/CFXR_Demo_Translate.cs @@ -1,42 +1,42 @@ -//-------------------------------------------------------------------------------------------------------------------------------- -// Cartoon FX -// (c) 2012-2020 Jean Moreno -//-------------------------------------------------------------------------------------------------------------------------------- - -using UnityEngine; - -namespace CartoonFX -{ - public class CFXR_Demo_Translate : MonoBehaviour - { - public Vector3 direction = new Vector3(0,1,0); - public bool randomRotation; - - - bool initialized; - Vector3 initialPosition; - - void Awake() - { - if (!initialized) - { - initialized = true; - initialPosition = this.transform.position; - } - } - - void OnEnable() - { - this.transform.position = initialPosition; - if (randomRotation) - { - this.transform.eulerAngles = Vector3.Lerp(Vector3.zero, Vector3.up * 360, Random.value); - } - } - - void Update() - { - this.transform.Translate(direction * Time.deltaTime); - } - } +//-------------------------------------------------------------------------------------------------------------------------------- +// Cartoon FX +// (c) 2012-2020 Jean Moreno +//-------------------------------------------------------------------------------------------------------------------------------- + +using UnityEngine; + +namespace CartoonFX +{ + public class CFXR_Demo_Translate : MonoBehaviour + { + public Vector3 direction = new Vector3(0,1,0); + public bool randomRotation; + + + bool initialized; + Vector3 initialPosition; + + void Awake() + { + if (!initialized) + { + initialized = true; + initialPosition = this.transform.position; + } + } + + void OnEnable() + { + this.transform.position = initialPosition; + if (randomRotation) + { + this.transform.eulerAngles = Vector3.Lerp(Vector3.zero, Vector3.up * 360, Random.value); + } + } + + void Update() + { + this.transform.Translate(direction * Time.deltaTime); + } + } } \ No newline at end of file diff --git a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Bloom.cs b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Bloom.cs index 23fad68..1bbde5e 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Bloom.cs +++ b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Bloom.cs @@ -1,272 +1,272 @@ -// -// Kino/Bloom v2 - Bloom filter for Unity -// -// Copyright (C) 2015, 2016 Keijiro Takahashi -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// - -// Modified by Jean Moreno for Cartoon FX Remaster Demo -// - effect previews in SceneView -// - disabled a code warning - -using UnityEngine; - -namespace Kino -{ - [ExecuteInEditMode] - [RequireComponent(typeof(Camera))] - [ImageEffectAllowedInSceneView] - public class Bloom : MonoBehaviour - { - #region Public Properties - - /// Prefilter threshold (gamma-encoded) - /// Filters out pixels under this level of brightness. - public float thresholdGamma - { - get { return Mathf.Max(_threshold, 0); } - set { _threshold = value; } - } - - /// Prefilter threshold (linearly-encoded) - /// Filters out pixels under this level of brightness. - public float thresholdLinear - { - get { return GammaToLinear(thresholdGamma); } - set { _threshold = LinearToGamma(value); } - } - - [SerializeField] - [Tooltip("Filters out pixels under this level of brightness.")] - float _threshold = 0.8f; - - /// Soft-knee coefficient - /// Makes transition between under/over-threshold gradual. - public float softKnee - { - get { return _softKnee; } - set { _softKnee = value; } - } - - [SerializeField, Range(0, 1)] - [Tooltip("Makes transition between under/over-threshold gradual.")] - float _softKnee = 0.5f; - - /// Bloom radius - /// Changes extent of veiling effects in a screen - /// resolution-independent fashion. - public float radius - { - get { return _radius; } - set { _radius = value; } - } - - [SerializeField, Range(1, 7)] - [Tooltip("Changes extent of veiling effects\n" + - "in a screen resolution-independent fashion.")] - float _radius = 2.5f; - - /// Bloom intensity - /// Blend factor of the result image. - public float intensity - { - get { return Mathf.Max(_intensity, 0); } - set { _intensity = value; } - } - - [SerializeField] - [Tooltip("Blend factor of the result image.")] - float _intensity = 0.8f; - - /// High quality mode - /// Controls filter quality and buffer resolution. - public bool highQuality - { - get { return _highQuality; } - set { _highQuality = value; } - } - - [SerializeField] - [Tooltip("Controls filter quality and buffer resolution.")] - bool _highQuality = true; - - /// Anti-flicker filter - /// Reduces flashing noise with an additional filter. - [SerializeField] - [Tooltip("Reduces flashing noise with an additional filter.")] - bool _antiFlicker = true; - - public bool antiFlicker - { - get { return _antiFlicker; } - set { _antiFlicker = value; } - } - - #endregion - - #region Private Members - -#pragma warning disable 0649 - [SerializeField, HideInInspector] - Shader _shader; -#pragma warning restore 0649 - - Material _material; - - const int kMaxIterations = 16; - RenderTexture[] _blurBuffer1 = new RenderTexture[kMaxIterations]; - RenderTexture[] _blurBuffer2 = new RenderTexture[kMaxIterations]; - - float LinearToGamma(float x) - { -#if UNITY_5_3_OR_NEWER - return Mathf.LinearToGammaSpace(x); -#else - if (x <= 0.0031308f) - return 12.92f * x; - else - return 1.055f * Mathf.Pow(x, 1 / 2.4f) - 0.055f; -#endif - } - - float GammaToLinear(float x) - { -#if UNITY_5_3_OR_NEWER - return Mathf.GammaToLinearSpace(x); -#else - if (x <= 0.04045f) - return x / 12.92f; - else - return Mathf.Pow((x + 0.055f) / 1.055f, 2.4f); -#endif - } - - #endregion - - #region MonoBehaviour Functions - - void OnEnable() - { - var shader = _shader ? _shader : Shader.Find("Hidden/Kino/Bloom"); - _material = new Material(shader); - _material.hideFlags = HideFlags.DontSave; - } - - void OnDisable() - { - DestroyImmediate(_material); - } - - void OnRenderImage(RenderTexture source, RenderTexture destination) - { - var useRGBM = Application.isMobilePlatform; - - // source texture size - var tw = source.width; - var th = source.height; - - // halve the texture size for the low quality mode - if (!_highQuality) - { - tw /= 2; - th /= 2; - } - - // blur buffer format - var rtFormat = useRGBM ? - RenderTextureFormat.Default : RenderTextureFormat.DefaultHDR; - - // determine the iteration count - var logh = Mathf.Log(th, 2) + _radius - 8; - var logh_i = (int)logh; - var iterations = Mathf.Clamp(logh_i, 1, kMaxIterations); - - // update the shader properties - var lthresh = thresholdLinear; - _material.SetFloat("_Threshold", lthresh); - - var knee = lthresh * _softKnee + 1e-5f; - var curve = new Vector3(lthresh - knee, knee * 2, 0.25f / knee); - _material.SetVector("_Curve", curve); - - var pfo = !_highQuality && _antiFlicker; - _material.SetFloat("_PrefilterOffs", pfo ? -0.5f : 0.0f); - - _material.SetFloat("_SampleScale", 0.5f + logh - logh_i); - _material.SetFloat("_Intensity", intensity); - - // prefilter pass - var prefiltered = RenderTexture.GetTemporary(tw, th, 0, rtFormat); - var pass = _antiFlicker ? 1 : 0; - Graphics.Blit(source, prefiltered, _material, pass); - - // construct a mip pyramid - var last = prefiltered; - for (var level = 0; level < iterations; level++) - { - _blurBuffer1[level] = RenderTexture.GetTemporary( - last.width / 2, last.height / 2, 0, rtFormat - ); - - pass = (level == 0) ? (_antiFlicker ? 3 : 2) : 4; - Graphics.Blit(last, _blurBuffer1[level], _material, pass); - - last = _blurBuffer1[level]; - } - - // upsample and combine loop - for (var level = iterations - 2; level >= 0; level--) - { - var basetex = _blurBuffer1[level]; - _material.SetTexture("_BaseTex", basetex); - - _blurBuffer2[level] = RenderTexture.GetTemporary( - basetex.width, basetex.height, 0, rtFormat - ); - - pass = _highQuality ? 6 : 5; - Graphics.Blit(last, _blurBuffer2[level], _material, pass); - last = _blurBuffer2[level]; - } - - // finish process - _material.SetTexture("_BaseTex", source); - pass = _highQuality ? 8 : 7; - Graphics.Blit(last, destination, _material, pass); - - // release the temporary buffers - for (var i = 0; i < kMaxIterations; i++) - { - if (_blurBuffer1[i] != null) - RenderTexture.ReleaseTemporary(_blurBuffer1[i]); - - if (_blurBuffer2[i] != null) - RenderTexture.ReleaseTemporary(_blurBuffer2[i]); - - _blurBuffer1[i] = null; - _blurBuffer2[i] = null; - } - - RenderTexture.ReleaseTemporary(prefiltered); - } - - #endregion - } -} +// +// Kino/Bloom v2 - Bloom filter for Unity +// +// Copyright (C) 2015, 2016 Keijiro Takahashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +// Modified by Jean Moreno for Cartoon FX Remaster Demo +// - effect previews in SceneView +// - disabled a code warning + +using UnityEngine; + +namespace Kino +{ + [ExecuteInEditMode] + [RequireComponent(typeof(Camera))] + [ImageEffectAllowedInSceneView] + public class Bloom : MonoBehaviour + { + #region Public Properties + + /// Prefilter threshold (gamma-encoded) + /// Filters out pixels under this level of brightness. + public float thresholdGamma + { + get { return Mathf.Max(_threshold, 0); } + set { _threshold = value; } + } + + /// Prefilter threshold (linearly-encoded) + /// Filters out pixels under this level of brightness. + public float thresholdLinear + { + get { return GammaToLinear(thresholdGamma); } + set { _threshold = LinearToGamma(value); } + } + + [SerializeField] + [Tooltip("Filters out pixels under this level of brightness.")] + float _threshold = 0.8f; + + /// Soft-knee coefficient + /// Makes transition between under/over-threshold gradual. + public float softKnee + { + get { return _softKnee; } + set { _softKnee = value; } + } + + [SerializeField, Range(0, 1)] + [Tooltip("Makes transition between under/over-threshold gradual.")] + float _softKnee = 0.5f; + + /// Bloom radius + /// Changes extent of veiling effects in a screen + /// resolution-independent fashion. + public float radius + { + get { return _radius; } + set { _radius = value; } + } + + [SerializeField, Range(1, 7)] + [Tooltip("Changes extent of veiling effects\n" + + "in a screen resolution-independent fashion.")] + float _radius = 2.5f; + + /// Bloom intensity + /// Blend factor of the result image. + public float intensity + { + get { return Mathf.Max(_intensity, 0); } + set { _intensity = value; } + } + + [SerializeField] + [Tooltip("Blend factor of the result image.")] + float _intensity = 0.8f; + + /// High quality mode + /// Controls filter quality and buffer resolution. + public bool highQuality + { + get { return _highQuality; } + set { _highQuality = value; } + } + + [SerializeField] + [Tooltip("Controls filter quality and buffer resolution.")] + bool _highQuality = true; + + /// Anti-flicker filter + /// Reduces flashing noise with an additional filter. + [SerializeField] + [Tooltip("Reduces flashing noise with an additional filter.")] + bool _antiFlicker = true; + + public bool antiFlicker + { + get { return _antiFlicker; } + set { _antiFlicker = value; } + } + + #endregion + + #region Private Members + +#pragma warning disable 0649 + [SerializeField, HideInInspector] + Shader _shader; +#pragma warning restore 0649 + + Material _material; + + const int kMaxIterations = 16; + RenderTexture[] _blurBuffer1 = new RenderTexture[kMaxIterations]; + RenderTexture[] _blurBuffer2 = new RenderTexture[kMaxIterations]; + + float LinearToGamma(float x) + { +#if UNITY_5_3_OR_NEWER + return Mathf.LinearToGammaSpace(x); +#else + if (x <= 0.0031308f) + return 12.92f * x; + else + return 1.055f * Mathf.Pow(x, 1 / 2.4f) - 0.055f; +#endif + } + + float GammaToLinear(float x) + { +#if UNITY_5_3_OR_NEWER + return Mathf.GammaToLinearSpace(x); +#else + if (x <= 0.04045f) + return x / 12.92f; + else + return Mathf.Pow((x + 0.055f) / 1.055f, 2.4f); +#endif + } + + #endregion + + #region MonoBehaviour Functions + + void OnEnable() + { + var shader = _shader ? _shader : Shader.Find("Hidden/Kino/Bloom"); + _material = new Material(shader); + _material.hideFlags = HideFlags.DontSave; + } + + void OnDisable() + { + DestroyImmediate(_material); + } + + void OnRenderImage(RenderTexture source, RenderTexture destination) + { + var useRGBM = Application.isMobilePlatform; + + // source texture size + var tw = source.width; + var th = source.height; + + // halve the texture size for the low quality mode + if (!_highQuality) + { + tw /= 2; + th /= 2; + } + + // blur buffer format + var rtFormat = useRGBM ? + RenderTextureFormat.Default : RenderTextureFormat.DefaultHDR; + + // determine the iteration count + var logh = Mathf.Log(th, 2) + _radius - 8; + var logh_i = (int)logh; + var iterations = Mathf.Clamp(logh_i, 1, kMaxIterations); + + // update the shader properties + var lthresh = thresholdLinear; + _material.SetFloat("_Threshold", lthresh); + + var knee = lthresh * _softKnee + 1e-5f; + var curve = new Vector3(lthresh - knee, knee * 2, 0.25f / knee); + _material.SetVector("_Curve", curve); + + var pfo = !_highQuality && _antiFlicker; + _material.SetFloat("_PrefilterOffs", pfo ? -0.5f : 0.0f); + + _material.SetFloat("_SampleScale", 0.5f + logh - logh_i); + _material.SetFloat("_Intensity", intensity); + + // prefilter pass + var prefiltered = RenderTexture.GetTemporary(tw, th, 0, rtFormat); + var pass = _antiFlicker ? 1 : 0; + Graphics.Blit(source, prefiltered, _material, pass); + + // construct a mip pyramid + var last = prefiltered; + for (var level = 0; level < iterations; level++) + { + _blurBuffer1[level] = RenderTexture.GetTemporary( + last.width / 2, last.height / 2, 0, rtFormat + ); + + pass = (level == 0) ? (_antiFlicker ? 3 : 2) : 4; + Graphics.Blit(last, _blurBuffer1[level], _material, pass); + + last = _blurBuffer1[level]; + } + + // upsample and combine loop + for (var level = iterations - 2; level >= 0; level--) + { + var basetex = _blurBuffer1[level]; + _material.SetTexture("_BaseTex", basetex); + + _blurBuffer2[level] = RenderTexture.GetTemporary( + basetex.width, basetex.height, 0, rtFormat + ); + + pass = _highQuality ? 6 : 5; + Graphics.Blit(last, _blurBuffer2[level], _material, pass); + last = _blurBuffer2[level]; + } + + // finish process + _material.SetTexture("_BaseTex", source); + pass = _highQuality ? 8 : 7; + Graphics.Blit(last, destination, _material, pass); + + // release the temporary buffers + for (var i = 0; i < kMaxIterations; i++) + { + if (_blurBuffer1[i] != null) + RenderTexture.ReleaseTemporary(_blurBuffer1[i]); + + if (_blurBuffer2[i] != null) + RenderTexture.ReleaseTemporary(_blurBuffer2[i]); + + _blurBuffer1[i] = null; + _blurBuffer2[i] = null; + } + + RenderTexture.ReleaseTemporary(prefiltered); + } + + #endregion + } +} diff --git a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Bloom.cs.meta b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Bloom.cs.meta index a65d48b..caded34 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Bloom.cs.meta +++ b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Bloom.cs.meta @@ -1,13 +1,13 @@ -fileFormatVersion: 2 -guid: 6363bba448bf64e60a763433f9ddf81b -timeCreated: 1445671165 -licenseType: Store -MonoImporter: - serializedVersion: 2 - defaultReferences: - - _shader: {fileID: 4800000, guid: 5a711a01011934ebcb58ef5ad52159d6, type: 3} - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: +fileFormatVersion: 2 +guid: 6363bba448bf64e60a763433f9ddf81b +timeCreated: 1445671165 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: + - _shader: {fileID: 4800000, guid: 5a711a01011934ebcb58ef5ad52159d6, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Editor.meta b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Editor.meta index 8fc86af..0a42a86 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Editor.meta +++ b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Editor.meta @@ -1,9 +1,9 @@ -fileFormatVersion: 2 -guid: 0e7e3e77db40c4cba83bb3a6ab440084 -folderAsset: yes -timeCreated: 1445666764 -licenseType: Store -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: +fileFormatVersion: 2 +guid: 0e7e3e77db40c4cba83bb3a6ab440084 +folderAsset: yes +timeCreated: 1445666764 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Editor/BloomEditor.cs b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Editor/BloomEditor.cs index 85edfc9..54bcf0f 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Editor/BloomEditor.cs +++ b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Editor/BloomEditor.cs @@ -1,76 +1,76 @@ -// -// Kino/Bloom v2 - Bloom filter for Unity -// -// Copyright (C) 2015, 2016 Keijiro Takahashi -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -using UnityEngine; -using UnityEditor; - -namespace Kino -{ - [CanEditMultipleObjects] - [CustomEditor(typeof(Bloom))] - public class BloomEditor : Editor - { - BloomGraphDrawer _graph; - - SerializedProperty _threshold; - SerializedProperty _softKnee; - SerializedProperty _radius; - SerializedProperty _intensity; - SerializedProperty _highQuality; - SerializedProperty _antiFlicker; - - static GUIContent _textThreshold = new GUIContent("Threshold (gamma)"); - - void OnEnable() - { - _graph = new BloomGraphDrawer(); - _threshold = serializedObject.FindProperty("_threshold"); - _softKnee = serializedObject.FindProperty("_softKnee"); - _radius = serializedObject.FindProperty("_radius"); - _intensity = serializedObject.FindProperty("_intensity"); - _highQuality = serializedObject.FindProperty("_highQuality"); - _antiFlicker = serializedObject.FindProperty("_antiFlicker"); - } - - public override void OnInspectorGUI() - { - serializedObject.Update(); - - if (!serializedObject.isEditingMultipleObjects) { - EditorGUILayout.Space(); - _graph.Prepare((Bloom)target); - _graph.DrawGraph(); - EditorGUILayout.Space(); - } - - EditorGUILayout.PropertyField(_threshold, _textThreshold); - EditorGUILayout.PropertyField(_softKnee); - EditorGUILayout.PropertyField(_intensity); - EditorGUILayout.PropertyField(_radius); - EditorGUILayout.PropertyField(_highQuality); - EditorGUILayout.PropertyField(_antiFlicker); - - serializedObject.ApplyModifiedProperties(); - } - } -} +// +// Kino/Bloom v2 - Bloom filter for Unity +// +// Copyright (C) 2015, 2016 Keijiro Takahashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +using UnityEngine; +using UnityEditor; + +namespace Kino +{ + [CanEditMultipleObjects] + [CustomEditor(typeof(Bloom))] + public class BloomEditor : Editor + { + BloomGraphDrawer _graph; + + SerializedProperty _threshold; + SerializedProperty _softKnee; + SerializedProperty _radius; + SerializedProperty _intensity; + SerializedProperty _highQuality; + SerializedProperty _antiFlicker; + + static GUIContent _textThreshold = new GUIContent("Threshold (gamma)"); + + void OnEnable() + { + _graph = new BloomGraphDrawer(); + _threshold = serializedObject.FindProperty("_threshold"); + _softKnee = serializedObject.FindProperty("_softKnee"); + _radius = serializedObject.FindProperty("_radius"); + _intensity = serializedObject.FindProperty("_intensity"); + _highQuality = serializedObject.FindProperty("_highQuality"); + _antiFlicker = serializedObject.FindProperty("_antiFlicker"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + if (!serializedObject.isEditingMultipleObjects) { + EditorGUILayout.Space(); + _graph.Prepare((Bloom)target); + _graph.DrawGraph(); + EditorGUILayout.Space(); + } + + EditorGUILayout.PropertyField(_threshold, _textThreshold); + EditorGUILayout.PropertyField(_softKnee); + EditorGUILayout.PropertyField(_intensity); + EditorGUILayout.PropertyField(_radius); + EditorGUILayout.PropertyField(_highQuality); + EditorGUILayout.PropertyField(_antiFlicker); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Editor/BloomEditor.cs.meta b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Editor/BloomEditor.cs.meta index 354710a..7a61dc5 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Editor/BloomEditor.cs.meta +++ b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Editor/BloomEditor.cs.meta @@ -1,12 +1,12 @@ -fileFormatVersion: 2 -guid: 036bc30d96c3349ce86bfc8d95667da7 -timeCreated: 1435816745 -licenseType: Store -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: +fileFormatVersion: 2 +guid: 036bc30d96c3349ce86bfc8d95667da7 +timeCreated: 1435816745 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Editor/BloomGraphDrawer.cs b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Editor/BloomGraphDrawer.cs index 7a45915..d2fabb6 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Editor/BloomGraphDrawer.cs +++ b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Editor/BloomGraphDrawer.cs @@ -1,183 +1,183 @@ -// -// Kino/Bloom v2 - Bloom filter for Unity -// -// Copyright (C) 2015, 2016 Keijiro Takahashi -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -using UnityEngine; -using UnityEditor; - -namespace Kino -{ - // Class used for drawing the brightness response curve - public class BloomGraphDrawer - { - #region Public Methods - - // Update internal state with a given bloom instance. - public void Prepare(Bloom bloom) - { - #if UNITY_5_6_OR_NEWER - if (bloom.GetComponent().allowHDR) - #else - if (bloom.GetComponent().hdr) - #endif - { - _rangeX = 6; - _rangeY = 1.5f; - } - else - { - _rangeX = 1; - _rangeY = 1; - } - - _threshold = bloom.thresholdLinear; - _knee = bloom.softKnee * _threshold + 1e-5f; - - // Intensity is capped to prevent sampling errors. - _intensity = Mathf.Min(bloom.intensity, 10); - } - - // Draw the graph at the current position. - public void DrawGraph() - { - _rectGraph = GUILayoutUtility.GetRect(128, 80); - - // Background - DrawRect(0, 0, _rangeX, _rangeY, 0.1f, 0.4f); - - // Soft-knee range - DrawRect(_threshold - _knee, 0, _threshold + _knee, _rangeY, 0.25f, -1); - - // Horizontal lines - for (var i = 1; i < _rangeY; i++) - DrawLine(0, i, _rangeX, i, 0.4f); - - // Vertical lines - for (var i = 1; i < _rangeX; i++) - DrawLine(i, 0, i, _rangeY, 0.4f); - - // Label - Handles.Label( - PointInRect(0, _rangeY) + Vector3.right, - "Brightness Response (linear)", EditorStyles.miniLabel - ); - - // Threshold line - DrawLine(_threshold, 0, _threshold, _rangeY, 0.6f); - - // Response curve - var vcount = 0; - while (vcount < _curveResolution) - { - var x = _rangeX * vcount / (_curveResolution - 1); - var y = ResponseFunction(x); - if (y < _rangeY) - { - _curveVertices[vcount++] = PointInRect(x, y); - } - else - { - if (vcount > 1) - { - // Extend the last segment to the top edge of the rect. - var v1 = _curveVertices[vcount - 2]; - var v2 = _curveVertices[vcount - 1]; - var clip = (_rectGraph.y - v1.y) / (v2.y - v1.y); - _curveVertices[vcount - 1] = v1 + (v2 - v1) * clip; - } - break; - } - } - - if (vcount > 1) - { - Handles.color = Color.white * 0.9f; - Handles.DrawAAPolyLine(2.0f, vcount, _curveVertices); - } - } - - #endregion - - #region Response Function - - float _threshold; - float _knee; - float _intensity; - - float ResponseFunction(float x) - { - var rq = Mathf.Clamp(x - _threshold + _knee, 0, _knee * 2); - rq = rq * rq * 0.25f / _knee; - return Mathf.Max(rq, x - _threshold) * _intensity; - } - - #endregion - - #region Graph Functions - - // Number of vertices in curve - const int _curveResolution = 96; - - // Vertex buffers - Vector3[] _rectVertices = new Vector3[4]; - Vector3[] _lineVertices = new Vector3[2]; - Vector3[] _curveVertices = new Vector3[_curveResolution]; - - Rect _rectGraph; - float _rangeX; - float _rangeY; - - // Transform a point into the graph rect. - Vector3 PointInRect(float x, float y) - { - x = Mathf.Lerp(_rectGraph.x, _rectGraph.xMax, x / _rangeX); - y = Mathf.Lerp(_rectGraph.yMax, _rectGraph.y, y / _rangeY); - return new Vector3(x, y, 0); - } - - // Draw a line in the graph rect. - void DrawLine(float x1, float y1, float x2, float y2, float grayscale) - { - _lineVertices[0] = PointInRect(x1, y1); - _lineVertices[1] = PointInRect(x2, y2); - Handles.color = Color.white * grayscale; - Handles.DrawAAPolyLine(2.0f, _lineVertices); - } - - // Draw a rect in the graph rect. - void DrawRect(float x1, float y1, float x2, float y2, float fill, float line) - { - _rectVertices[0] = PointInRect(x1, y1); - _rectVertices[1] = PointInRect(x2, y1); - _rectVertices[2] = PointInRect(x2, y2); - _rectVertices[3] = PointInRect(x1, y2); - - Handles.DrawSolidRectangleWithOutline( - _rectVertices, - fill < 0 ? Color.clear : Color.white * fill, - line < 0 ? Color.clear : Color.white * line - ); - } - - #endregion - } -} +// +// Kino/Bloom v2 - Bloom filter for Unity +// +// Copyright (C) 2015, 2016 Keijiro Takahashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +using UnityEngine; +using UnityEditor; + +namespace Kino +{ + // Class used for drawing the brightness response curve + public class BloomGraphDrawer + { + #region Public Methods + + // Update internal state with a given bloom instance. + public void Prepare(Bloom bloom) + { + #if UNITY_5_6_OR_NEWER + if (bloom.GetComponent().allowHDR) + #else + if (bloom.GetComponent().hdr) + #endif + { + _rangeX = 6; + _rangeY = 1.5f; + } + else + { + _rangeX = 1; + _rangeY = 1; + } + + _threshold = bloom.thresholdLinear; + _knee = bloom.softKnee * _threshold + 1e-5f; + + // Intensity is capped to prevent sampling errors. + _intensity = Mathf.Min(bloom.intensity, 10); + } + + // Draw the graph at the current position. + public void DrawGraph() + { + _rectGraph = GUILayoutUtility.GetRect(128, 80); + + // Background + DrawRect(0, 0, _rangeX, _rangeY, 0.1f, 0.4f); + + // Soft-knee range + DrawRect(_threshold - _knee, 0, _threshold + _knee, _rangeY, 0.25f, -1); + + // Horizontal lines + for (var i = 1; i < _rangeY; i++) + DrawLine(0, i, _rangeX, i, 0.4f); + + // Vertical lines + for (var i = 1; i < _rangeX; i++) + DrawLine(i, 0, i, _rangeY, 0.4f); + + // Label + Handles.Label( + PointInRect(0, _rangeY) + Vector3.right, + "Brightness Response (linear)", EditorStyles.miniLabel + ); + + // Threshold line + DrawLine(_threshold, 0, _threshold, _rangeY, 0.6f); + + // Response curve + var vcount = 0; + while (vcount < _curveResolution) + { + var x = _rangeX * vcount / (_curveResolution - 1); + var y = ResponseFunction(x); + if (y < _rangeY) + { + _curveVertices[vcount++] = PointInRect(x, y); + } + else + { + if (vcount > 1) + { + // Extend the last segment to the top edge of the rect. + var v1 = _curveVertices[vcount - 2]; + var v2 = _curveVertices[vcount - 1]; + var clip = (_rectGraph.y - v1.y) / (v2.y - v1.y); + _curveVertices[vcount - 1] = v1 + (v2 - v1) * clip; + } + break; + } + } + + if (vcount > 1) + { + Handles.color = Color.white * 0.9f; + Handles.DrawAAPolyLine(2.0f, vcount, _curveVertices); + } + } + + #endregion + + #region Response Function + + float _threshold; + float _knee; + float _intensity; + + float ResponseFunction(float x) + { + var rq = Mathf.Clamp(x - _threshold + _knee, 0, _knee * 2); + rq = rq * rq * 0.25f / _knee; + return Mathf.Max(rq, x - _threshold) * _intensity; + } + + #endregion + + #region Graph Functions + + // Number of vertices in curve + const int _curveResolution = 96; + + // Vertex buffers + Vector3[] _rectVertices = new Vector3[4]; + Vector3[] _lineVertices = new Vector3[2]; + Vector3[] _curveVertices = new Vector3[_curveResolution]; + + Rect _rectGraph; + float _rangeX; + float _rangeY; + + // Transform a point into the graph rect. + Vector3 PointInRect(float x, float y) + { + x = Mathf.Lerp(_rectGraph.x, _rectGraph.xMax, x / _rangeX); + y = Mathf.Lerp(_rectGraph.yMax, _rectGraph.y, y / _rangeY); + return new Vector3(x, y, 0); + } + + // Draw a line in the graph rect. + void DrawLine(float x1, float y1, float x2, float y2, float grayscale) + { + _lineVertices[0] = PointInRect(x1, y1); + _lineVertices[1] = PointInRect(x2, y2); + Handles.color = Color.white * grayscale; + Handles.DrawAAPolyLine(2.0f, _lineVertices); + } + + // Draw a rect in the graph rect. + void DrawRect(float x1, float y1, float x2, float y2, float fill, float line) + { + _rectVertices[0] = PointInRect(x1, y1); + _rectVertices[1] = PointInRect(x2, y1); + _rectVertices[2] = PointInRect(x2, y2); + _rectVertices[3] = PointInRect(x1, y2); + + Handles.DrawSolidRectangleWithOutline( + _rectVertices, + fill < 0 ? Color.clear : Color.white * fill, + line < 0 ? Color.clear : Color.white * line + ); + } + + #endregion + } +} diff --git a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Editor/BloomGraphDrawer.cs.meta b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Editor/BloomGraphDrawer.cs.meta index 21c8d8a..387d2aa 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Editor/BloomGraphDrawer.cs.meta +++ b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Editor/BloomGraphDrawer.cs.meta @@ -1,12 +1,12 @@ -fileFormatVersion: 2 -guid: 4afcb2949e7fb42679b587b8848b7e02 -timeCreated: 1457674915 -licenseType: Store -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: +fileFormatVersion: 2 +guid: 4afcb2949e7fb42679b587b8848b7e02 +timeCreated: 1457674915 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Kino Bloom License.txt b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Kino Bloom License.txt index 6b6f501..02cad0e 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Kino Bloom License.txt +++ b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Kino Bloom License.txt @@ -1,13 +1,13 @@ -Bloom Post Effect by Keijiro Takahashi -https://github.com/keijiro/KinoBloom ---------------------------------------- - -MIT License - -Copyright (c) 2015-2017 Keijiro Takahashi - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +Bloom Post Effect by Keijiro Takahashi +https://github.com/keijiro/KinoBloom +--------------------------------------- + +MIT License + +Copyright (c) 2015-2017 Keijiro Takahashi + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Shader.meta b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Shader.meta index 8f00277..72430ed 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Shader.meta +++ b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Shader.meta @@ -1,9 +1,9 @@ -fileFormatVersion: 2 -guid: f44dd1607e93a4131a4003b39c363e93 -folderAsset: yes -timeCreated: 1445666764 -licenseType: Store -DefaultImporter: - userData: - assetBundleName: - assetBundleVariant: +fileFormatVersion: 2 +guid: f44dd1607e93a4131a4003b39c363e93 +folderAsset: yes +timeCreated: 1445666764 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Shader/Bloom.cginc b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Shader/Bloom.cginc index a50c1e3..4ffdf08 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Shader/Bloom.cginc +++ b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Shader/Bloom.cginc @@ -1,251 +1,251 @@ -// -// Kino/Bloom v2 - Bloom filter for Unity -// -// Copyright (C) 2015, 2016 Keijiro Takahashi -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// - -#include "UnityCG.cginc" - -// Mobile: use RGBM instead of float/half RGB -#define USE_RGBM defined(SHADER_API_MOBILE) - -sampler2D _MainTex; -sampler2D _BaseTex; -float2 _MainTex_TexelSize; -float2 _BaseTex_TexelSize; -half4 _MainTex_ST; -half4 _BaseTex_ST; - -float _PrefilterOffs; -half _Threshold; -half3 _Curve; -float _SampleScale; -half _Intensity; - -// Brightness function -half Brightness(half3 c) -{ - return max(max(c.r, c.g), c.b); -} - -// 3-tap median filter -half3 Median(half3 a, half3 b, half3 c) -{ - return a + b + c - min(min(a, b), c) - max(max(a, b), c); -} - -// Clamp HDR value within a safe range -half3 SafeHDR(half3 c) { return min(c, 65000); } -half4 SafeHDR(half4 c) { return min(c, 65000); } - -// RGBM encoding/decoding -half4 EncodeHDR(float3 rgb) -{ -#if USE_RGBM - rgb *= 1.0 / 8; - float m = max(max(rgb.r, rgb.g), max(rgb.b, 1e-6)); - m = ceil(m * 255) / 255; - return half4(rgb / m, m); -#else - return half4(rgb, 0); -#endif -} - -float3 DecodeHDR(half4 rgba) -{ -#if USE_RGBM - return rgba.rgb * rgba.a * 8; -#else - return rgba.rgb; -#endif -} - -// Downsample with a 4x4 box filter -half3 DownsampleFilter(float2 uv) -{ - float4 d = _MainTex_TexelSize.xyxy * float4(-1, -1, +1, +1); - - half3 s; - s = DecodeHDR(tex2D(_MainTex, uv + d.xy)); - s += DecodeHDR(tex2D(_MainTex, uv + d.zy)); - s += DecodeHDR(tex2D(_MainTex, uv + d.xw)); - s += DecodeHDR(tex2D(_MainTex, uv + d.zw)); - - return s * (1.0 / 4); -} - -// Downsample with a 4x4 box filter + anti-flicker filter -half3 DownsampleAntiFlickerFilter(float2 uv) -{ - float4 d = _MainTex_TexelSize.xyxy * float4(-1, -1, +1, +1); - - half3 s1 = DecodeHDR(tex2D(_MainTex, uv + d.xy)); - half3 s2 = DecodeHDR(tex2D(_MainTex, uv + d.zy)); - half3 s3 = DecodeHDR(tex2D(_MainTex, uv + d.xw)); - half3 s4 = DecodeHDR(tex2D(_MainTex, uv + d.zw)); - - // Karis's luma weighted average (using brightness instead of luma) - half s1w = 1 / (Brightness(s1) + 1); - half s2w = 1 / (Brightness(s2) + 1); - half s3w = 1 / (Brightness(s3) + 1); - half s4w = 1 / (Brightness(s4) + 1); - half one_div_wsum = 1 / (s1w + s2w + s3w + s4w); - - return (s1 * s1w + s2 * s2w + s3 * s3w + s4 * s4w) * one_div_wsum; -} - -half3 UpsampleFilter(float2 uv) -{ -#if HIGH_QUALITY - // 9-tap bilinear upsampler (tent filter) - float4 d = _MainTex_TexelSize.xyxy * float4(1, 1, -1, 0) * _SampleScale; - - half3 s; - s = DecodeHDR(tex2D(_MainTex, uv - d.xy)); - s += DecodeHDR(tex2D(_MainTex, uv - d.wy)) * 2; - s += DecodeHDR(tex2D(_MainTex, uv - d.zy)); - - s += DecodeHDR(tex2D(_MainTex, uv + d.zw)) * 2; - s += DecodeHDR(tex2D(_MainTex, uv )) * 4; - s += DecodeHDR(tex2D(_MainTex, uv + d.xw)) * 2; - - s += DecodeHDR(tex2D(_MainTex, uv + d.zy)); - s += DecodeHDR(tex2D(_MainTex, uv + d.wy)) * 2; - s += DecodeHDR(tex2D(_MainTex, uv + d.xy)); - - return s * (1.0 / 16); -#else - // 4-tap bilinear upsampler - float4 d = _MainTex_TexelSize.xyxy * float4(-1, -1, +1, +1) * (_SampleScale * 0.5); - - half3 s; - s = DecodeHDR(tex2D(_MainTex, uv + d.xy)); - s += DecodeHDR(tex2D(_MainTex, uv + d.zy)); - s += DecodeHDR(tex2D(_MainTex, uv + d.xw)); - s += DecodeHDR(tex2D(_MainTex, uv + d.zw)); - - return s * (1.0 / 4); -#endif -} - -// -// Vertex shader -// - -v2f_img vert(appdata_img v) -{ - v2f_img o; - o.pos = UnityObjectToClipPos(v.vertex); - o.uv = UnityStereoScreenSpaceUVAdjust(v.texcoord, _MainTex_ST); - return o; -} - -struct v2f_multitex -{ - float4 pos : SV_POSITION; - float2 uvMain : TEXCOORD0; - float2 uvBase : TEXCOORD1; -}; - -v2f_multitex vert_multitex(appdata_img v) -{ - v2f_multitex o; - o.pos = UnityObjectToClipPos(v.vertex); - o.uvMain = UnityStereoScreenSpaceUVAdjust(v.texcoord, _MainTex_ST); - o.uvBase = UnityStereoScreenSpaceUVAdjust(v.texcoord, _BaseTex_ST); -#if UNITY_UV_STARTS_AT_TOP - if (_BaseTex_TexelSize.y < 0.0) - o.uvBase.y = 1.0 - v.texcoord.y; -#endif - return o; -} - -// -// fragment shader -// - -half4 frag_prefilter(v2f_img i) : SV_Target -{ - float2 uv = i.uv + _MainTex_TexelSize.xy * _PrefilterOffs; - -#if ANTI_FLICKER - float3 d = _MainTex_TexelSize.xyx * float3(1, 1, 0); - half4 s0 = SafeHDR(tex2D(_MainTex, uv)); - half3 s1 = SafeHDR(tex2D(_MainTex, uv - d.xz).rgb); - half3 s2 = SafeHDR(tex2D(_MainTex, uv + d.xz).rgb); - half3 s3 = SafeHDR(tex2D(_MainTex, uv - d.zy).rgb); - half3 s4 = SafeHDR(tex2D(_MainTex, uv + d.zy).rgb); - half3 m = Median(Median(s0.rgb, s1, s2), s3, s4); -#else - half4 s0 = SafeHDR(tex2D(_MainTex, uv)); - half3 m = s0.rgb; -#endif - -#if UNITY_COLORSPACE_GAMMA - m = GammaToLinearSpace(m); -#endif - // Pixel brightness - half br = Brightness(m); - - // Under-threshold part: quadratic curve - half rq = clamp(br - _Curve.x, 0, _Curve.y); - rq = _Curve.z * rq * rq; - - // Combine and apply the brightness response curve. - m *= max(rq, br - _Threshold) / max(br, 1e-5); - - return EncodeHDR(m); -} - -half4 frag_downsample1(v2f_img i) : SV_Target -{ -#if ANTI_FLICKER - return EncodeHDR(DownsampleAntiFlickerFilter(i.uv)); -#else - return EncodeHDR(DownsampleFilter(i.uv)); -#endif -} - -half4 frag_downsample2(v2f_img i) : SV_Target -{ - return EncodeHDR(DownsampleFilter(i.uv)); -} - -half4 frag_upsample(v2f_multitex i) : SV_Target -{ - half3 base = DecodeHDR(tex2D(_BaseTex, i.uvBase)); - half3 blur = UpsampleFilter(i.uvMain); - return EncodeHDR(base + blur); -} - -half4 frag_upsample_final(v2f_multitex i) : SV_Target -{ - half4 base = tex2D(_BaseTex, i.uvBase); - half3 blur = UpsampleFilter(i.uvMain); -#if UNITY_COLORSPACE_GAMMA - base.rgb = GammaToLinearSpace(base.rgb); -#endif - half3 cout = base.rgb + blur * _Intensity; -#if UNITY_COLORSPACE_GAMMA - cout = LinearToGammaSpace(cout); -#endif - return half4(cout, base.a); -} +// +// Kino/Bloom v2 - Bloom filter for Unity +// +// Copyright (C) 2015, 2016 Keijiro Takahashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +#include "UnityCG.cginc" + +// Mobile: use RGBM instead of float/half RGB +#define USE_RGBM defined(SHADER_API_MOBILE) + +sampler2D _MainTex; +sampler2D _BaseTex; +float2 _MainTex_TexelSize; +float2 _BaseTex_TexelSize; +half4 _MainTex_ST; +half4 _BaseTex_ST; + +float _PrefilterOffs; +half _Threshold; +half3 _Curve; +float _SampleScale; +half _Intensity; + +// Brightness function +half Brightness(half3 c) +{ + return max(max(c.r, c.g), c.b); +} + +// 3-tap median filter +half3 Median(half3 a, half3 b, half3 c) +{ + return a + b + c - min(min(a, b), c) - max(max(a, b), c); +} + +// Clamp HDR value within a safe range +half3 SafeHDR(half3 c) { return min(c, 65000); } +half4 SafeHDR(half4 c) { return min(c, 65000); } + +// RGBM encoding/decoding +half4 EncodeHDR(float3 rgb) +{ +#if USE_RGBM + rgb *= 1.0 / 8; + float m = max(max(rgb.r, rgb.g), max(rgb.b, 1e-6)); + m = ceil(m * 255) / 255; + return half4(rgb / m, m); +#else + return half4(rgb, 0); +#endif +} + +float3 DecodeHDR(half4 rgba) +{ +#if USE_RGBM + return rgba.rgb * rgba.a * 8; +#else + return rgba.rgb; +#endif +} + +// Downsample with a 4x4 box filter +half3 DownsampleFilter(float2 uv) +{ + float4 d = _MainTex_TexelSize.xyxy * float4(-1, -1, +1, +1); + + half3 s; + s = DecodeHDR(tex2D(_MainTex, uv + d.xy)); + s += DecodeHDR(tex2D(_MainTex, uv + d.zy)); + s += DecodeHDR(tex2D(_MainTex, uv + d.xw)); + s += DecodeHDR(tex2D(_MainTex, uv + d.zw)); + + return s * (1.0 / 4); +} + +// Downsample with a 4x4 box filter + anti-flicker filter +half3 DownsampleAntiFlickerFilter(float2 uv) +{ + float4 d = _MainTex_TexelSize.xyxy * float4(-1, -1, +1, +1); + + half3 s1 = DecodeHDR(tex2D(_MainTex, uv + d.xy)); + half3 s2 = DecodeHDR(tex2D(_MainTex, uv + d.zy)); + half3 s3 = DecodeHDR(tex2D(_MainTex, uv + d.xw)); + half3 s4 = DecodeHDR(tex2D(_MainTex, uv + d.zw)); + + // Karis's luma weighted average (using brightness instead of luma) + half s1w = 1 / (Brightness(s1) + 1); + half s2w = 1 / (Brightness(s2) + 1); + half s3w = 1 / (Brightness(s3) + 1); + half s4w = 1 / (Brightness(s4) + 1); + half one_div_wsum = 1 / (s1w + s2w + s3w + s4w); + + return (s1 * s1w + s2 * s2w + s3 * s3w + s4 * s4w) * one_div_wsum; +} + +half3 UpsampleFilter(float2 uv) +{ +#if HIGH_QUALITY + // 9-tap bilinear upsampler (tent filter) + float4 d = _MainTex_TexelSize.xyxy * float4(1, 1, -1, 0) * _SampleScale; + + half3 s; + s = DecodeHDR(tex2D(_MainTex, uv - d.xy)); + s += DecodeHDR(tex2D(_MainTex, uv - d.wy)) * 2; + s += DecodeHDR(tex2D(_MainTex, uv - d.zy)); + + s += DecodeHDR(tex2D(_MainTex, uv + d.zw)) * 2; + s += DecodeHDR(tex2D(_MainTex, uv )) * 4; + s += DecodeHDR(tex2D(_MainTex, uv + d.xw)) * 2; + + s += DecodeHDR(tex2D(_MainTex, uv + d.zy)); + s += DecodeHDR(tex2D(_MainTex, uv + d.wy)) * 2; + s += DecodeHDR(tex2D(_MainTex, uv + d.xy)); + + return s * (1.0 / 16); +#else + // 4-tap bilinear upsampler + float4 d = _MainTex_TexelSize.xyxy * float4(-1, -1, +1, +1) * (_SampleScale * 0.5); + + half3 s; + s = DecodeHDR(tex2D(_MainTex, uv + d.xy)); + s += DecodeHDR(tex2D(_MainTex, uv + d.zy)); + s += DecodeHDR(tex2D(_MainTex, uv + d.xw)); + s += DecodeHDR(tex2D(_MainTex, uv + d.zw)); + + return s * (1.0 / 4); +#endif +} + +// +// Vertex shader +// + +v2f_img vert(appdata_img v) +{ + v2f_img o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = UnityStereoScreenSpaceUVAdjust(v.texcoord, _MainTex_ST); + return o; +} + +struct v2f_multitex +{ + float4 pos : SV_POSITION; + float2 uvMain : TEXCOORD0; + float2 uvBase : TEXCOORD1; +}; + +v2f_multitex vert_multitex(appdata_img v) +{ + v2f_multitex o; + o.pos = UnityObjectToClipPos(v.vertex); + o.uvMain = UnityStereoScreenSpaceUVAdjust(v.texcoord, _MainTex_ST); + o.uvBase = UnityStereoScreenSpaceUVAdjust(v.texcoord, _BaseTex_ST); +#if UNITY_UV_STARTS_AT_TOP + if (_BaseTex_TexelSize.y < 0.0) + o.uvBase.y = 1.0 - v.texcoord.y; +#endif + return o; +} + +// +// fragment shader +// + +half4 frag_prefilter(v2f_img i) : SV_Target +{ + float2 uv = i.uv + _MainTex_TexelSize.xy * _PrefilterOffs; + +#if ANTI_FLICKER + float3 d = _MainTex_TexelSize.xyx * float3(1, 1, 0); + half4 s0 = SafeHDR(tex2D(_MainTex, uv)); + half3 s1 = SafeHDR(tex2D(_MainTex, uv - d.xz).rgb); + half3 s2 = SafeHDR(tex2D(_MainTex, uv + d.xz).rgb); + half3 s3 = SafeHDR(tex2D(_MainTex, uv - d.zy).rgb); + half3 s4 = SafeHDR(tex2D(_MainTex, uv + d.zy).rgb); + half3 m = Median(Median(s0.rgb, s1, s2), s3, s4); +#else + half4 s0 = SafeHDR(tex2D(_MainTex, uv)); + half3 m = s0.rgb; +#endif + +#if UNITY_COLORSPACE_GAMMA + m = GammaToLinearSpace(m); +#endif + // Pixel brightness + half br = Brightness(m); + + // Under-threshold part: quadratic curve + half rq = clamp(br - _Curve.x, 0, _Curve.y); + rq = _Curve.z * rq * rq; + + // Combine and apply the brightness response curve. + m *= max(rq, br - _Threshold) / max(br, 1e-5); + + return EncodeHDR(m); +} + +half4 frag_downsample1(v2f_img i) : SV_Target +{ +#if ANTI_FLICKER + return EncodeHDR(DownsampleAntiFlickerFilter(i.uv)); +#else + return EncodeHDR(DownsampleFilter(i.uv)); +#endif +} + +half4 frag_downsample2(v2f_img i) : SV_Target +{ + return EncodeHDR(DownsampleFilter(i.uv)); +} + +half4 frag_upsample(v2f_multitex i) : SV_Target +{ + half3 base = DecodeHDR(tex2D(_BaseTex, i.uvBase)); + half3 blur = UpsampleFilter(i.uvMain); + return EncodeHDR(base + blur); +} + +half4 frag_upsample_final(v2f_multitex i) : SV_Target +{ + half4 base = tex2D(_BaseTex, i.uvBase); + half3 blur = UpsampleFilter(i.uvMain); +#if UNITY_COLORSPACE_GAMMA + base.rgb = GammaToLinearSpace(base.rgb); +#endif + half3 cout = base.rgb + blur * _Intensity; +#if UNITY_COLORSPACE_GAMMA + cout = LinearToGammaSpace(cout); +#endif + return half4(cout, base.a); +} diff --git a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Shader/Bloom.cginc.meta b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Shader/Bloom.cginc.meta index 58e2a8e..7f12c60 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Shader/Bloom.cginc.meta +++ b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Shader/Bloom.cginc.meta @@ -1,9 +1,9 @@ -fileFormatVersion: 2 -guid: 1b8325918052c4c5492831d116e3ed27 -timeCreated: 1463470294 -licenseType: Store -ShaderImporter: - defaultTextures: [] - userData: - assetBundleName: - assetBundleVariant: +fileFormatVersion: 2 +guid: 1b8325918052c4c5492831d116e3ed27 +timeCreated: 1463470294 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Shader/Bloom.shader b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Shader/Bloom.shader index 92841e3..594d6fe 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Shader/Bloom.shader +++ b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Shader/Bloom.shader @@ -1,141 +1,141 @@ -// -// Kino/Bloom v2 - Bloom filter for Unity -// -// Copyright (C) 2015, 2016 Keijiro Takahashi -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -Shader "Hidden/Kino/Bloom" -{ - Properties - { - _MainTex("", 2D) = "" {} - _BaseTex("", 2D) = "" {} - } - SubShader - { - // 0: Prefilter - Pass - { - ZTest Always Cull Off ZWrite Off - CGPROGRAM - #pragma multi_compile _ UNITY_COLORSPACE_GAMMA - #include "Bloom.cginc" - #pragma vertex vert - #pragma fragment frag_prefilter - #pragma target 3.0 - ENDCG - } - // 1: Prefilter with anti-flicker - Pass - { - ZTest Always Cull Off ZWrite Off - CGPROGRAM - #define ANTI_FLICKER 1 - #pragma multi_compile _ UNITY_COLORSPACE_GAMMA - #include "Bloom.cginc" - #pragma vertex vert - #pragma fragment frag_prefilter - #pragma target 3.0 - ENDCG - } - // 2: First level downsampler - Pass - { - ZTest Always Cull Off ZWrite Off - CGPROGRAM - #include "Bloom.cginc" - #pragma vertex vert - #pragma fragment frag_downsample1 - #pragma target 3.0 - ENDCG - } - // 3: First level downsampler with anti-flicker - Pass - { - ZTest Always Cull Off ZWrite Off - CGPROGRAM - #define ANTI_FLICKER 1 - #include "Bloom.cginc" - #pragma vertex vert - #pragma fragment frag_downsample1 - #pragma target 3.0 - ENDCG - } - // 4: Second level downsampler - Pass - { - ZTest Always Cull Off ZWrite Off - CGPROGRAM - #include "Bloom.cginc" - #pragma vertex vert - #pragma fragment frag_downsample2 - #pragma target 3.0 - ENDCG - } - // 5: Upsampler - Pass - { - ZTest Always Cull Off ZWrite Off - CGPROGRAM - #include "Bloom.cginc" - #pragma vertex vert_multitex - #pragma fragment frag_upsample - #pragma target 3.0 - ENDCG - } - // 6: High quality upsampler - Pass - { - ZTest Always Cull Off ZWrite Off - CGPROGRAM - #define HIGH_QUALITY 1 - #include "Bloom.cginc" - #pragma vertex vert_multitex - #pragma fragment frag_upsample - #pragma target 3.0 - ENDCG - } - // 7: Combiner - Pass - { - ZTest Always Cull Off ZWrite Off - CGPROGRAM - #pragma multi_compile _ UNITY_COLORSPACE_GAMMA - #include "Bloom.cginc" - #pragma vertex vert_multitex - #pragma fragment frag_upsample_final - #pragma target 3.0 - ENDCG - } - // 8: High quality combiner - Pass - { - ZTest Always Cull Off ZWrite Off - CGPROGRAM - #define HIGH_QUALITY 1 - #pragma multi_compile _ UNITY_COLORSPACE_GAMMA - #include "Bloom.cginc" - #pragma vertex vert_multitex - #pragma fragment frag_upsample_final - #pragma target 3.0 - ENDCG - } - } -} +// +// Kino/Bloom v2 - Bloom filter for Unity +// +// Copyright (C) 2015, 2016 Keijiro Takahashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +Shader "Hidden/Kino/Bloom" +{ + Properties + { + _MainTex("", 2D) = "" {} + _BaseTex("", 2D) = "" {} + } + SubShader + { + // 0: Prefilter + Pass + { + ZTest Always Cull Off ZWrite Off + CGPROGRAM + #pragma multi_compile _ UNITY_COLORSPACE_GAMMA + #include "Bloom.cginc" + #pragma vertex vert + #pragma fragment frag_prefilter + #pragma target 3.0 + ENDCG + } + // 1: Prefilter with anti-flicker + Pass + { + ZTest Always Cull Off ZWrite Off + CGPROGRAM + #define ANTI_FLICKER 1 + #pragma multi_compile _ UNITY_COLORSPACE_GAMMA + #include "Bloom.cginc" + #pragma vertex vert + #pragma fragment frag_prefilter + #pragma target 3.0 + ENDCG + } + // 2: First level downsampler + Pass + { + ZTest Always Cull Off ZWrite Off + CGPROGRAM + #include "Bloom.cginc" + #pragma vertex vert + #pragma fragment frag_downsample1 + #pragma target 3.0 + ENDCG + } + // 3: First level downsampler with anti-flicker + Pass + { + ZTest Always Cull Off ZWrite Off + CGPROGRAM + #define ANTI_FLICKER 1 + #include "Bloom.cginc" + #pragma vertex vert + #pragma fragment frag_downsample1 + #pragma target 3.0 + ENDCG + } + // 4: Second level downsampler + Pass + { + ZTest Always Cull Off ZWrite Off + CGPROGRAM + #include "Bloom.cginc" + #pragma vertex vert + #pragma fragment frag_downsample2 + #pragma target 3.0 + ENDCG + } + // 5: Upsampler + Pass + { + ZTest Always Cull Off ZWrite Off + CGPROGRAM + #include "Bloom.cginc" + #pragma vertex vert_multitex + #pragma fragment frag_upsample + #pragma target 3.0 + ENDCG + } + // 6: High quality upsampler + Pass + { + ZTest Always Cull Off ZWrite Off + CGPROGRAM + #define HIGH_QUALITY 1 + #include "Bloom.cginc" + #pragma vertex vert_multitex + #pragma fragment frag_upsample + #pragma target 3.0 + ENDCG + } + // 7: Combiner + Pass + { + ZTest Always Cull Off ZWrite Off + CGPROGRAM + #pragma multi_compile _ UNITY_COLORSPACE_GAMMA + #include "Bloom.cginc" + #pragma vertex vert_multitex + #pragma fragment frag_upsample_final + #pragma target 3.0 + ENDCG + } + // 8: High quality combiner + Pass + { + ZTest Always Cull Off ZWrite Off + CGPROGRAM + #define HIGH_QUALITY 1 + #pragma multi_compile _ UNITY_COLORSPACE_GAMMA + #include "Bloom.cginc" + #pragma vertex vert_multitex + #pragma fragment frag_upsample_final + #pragma target 3.0 + ENDCG + } + } +} diff --git a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Shader/Bloom.shader.meta b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Shader/Bloom.shader.meta index 3811cbb..0362def 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Shader/Bloom.shader.meta +++ b/Assets/JMO Assets/Cartoon FX Remaster/Demo Assets/Kino Bloom/Shader/Bloom.shader.meta @@ -1,9 +1,9 @@ -fileFormatVersion: 2 -guid: 5a711a01011934ebcb58ef5ad52159d6 -timeCreated: 1435809878 -licenseType: Store -ShaderImporter: - defaultTextures: [] - userData: - assetBundleName: - assetBundleVariant: +fileFormatVersion: 2 +guid: 5a711a01011934ebcb58ef5ad52159d6 +timeCreated: 1435809878 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/JMO Assets/Cartoon FX Remaster/Readme Cartoon FX Remaster FREE.txt b/Assets/JMO Assets/Cartoon FX Remaster/Readme Cartoon FX Remaster FREE.txt index 48507df..7099435 100644 --- a/Assets/JMO Assets/Cartoon FX Remaster/Readme Cartoon FX Remaster FREE.txt +++ b/Assets/JMO Assets/Cartoon FX Remaster/Readme Cartoon FX Remaster FREE.txt @@ -1,101 +1,101 @@ -Cartoon FX Remaster FREE, version R 1.0 -2023/05/08 -© 2012-2023 - Jean Moreno -======================================= - -! NOTE ABOUT URP ! ------------------- -If almost all effects don't show in URP, it probably is because the Depth Texture is disabled. -This texture is needed for soft particles to work, and they are enabled by default. -You can either: -- enable the Depth Texture in the URP asset -- disable soft particles globally by uncommenting the relevant line in the CFXR_Settings.cginc file - - -ABOUT ------ -"Cartoon FX Remaster" is an update to the old "Cartoon FX Pack" assets. -All effects have been remade from scratch using: -- new shaders with special effects such as dissolve animation, UV distortion, edge fading, HDR colors, single channel textures for reduced memory usage, shadow casting and dithering -- optimized meshes where relevant to reduce overdraw/fill-rate issues -- high-resolution hand-drawn textures -- specialized shader to draw perfect circles and rings while reducing overdraw (using a ring mesh instead of a quad) - -This is the free version containing a sample of effects taken from the four commercial packs. -The license is the same as the commercial packs, including commercial use of the effects in games and apps. -The full license can be found here: https://unity.com/legal/as-terms (Appendix 1, EULA) - -"Cartoon FX Remaster" supports the built-in render pipeline and URP. - - -PREFABS -------- -Particle Systems prefabs are located in "Cartoon FX Remaster/CFXR Prefabs" folder. -All prefabs and their assets have a CFXR_ prefix to easily recognize them. - - -LEGACY EFFECTS --------------- -All the old effects from "Cartoon FX Free" are still available in the "Cartoon FX (legacy)" folder. - - -MOBILE OPTIMIZED PREFABS? -------------------------- -Unlike the Legacy effects, "Cartoon FX Remaster" doesn't include mobile-specific prefabs. -This is because: -- mobile devices are much more powerful compared to Cartoon FX Pack 1's initial release in 2012 -- prefabs are all already optimized and use a relatively small number of particles each - - -TROUBLESHOOTING ---------------- - -* Almost all prefabs have the CFXR_Effect script attached: it handles auto-destruction or deactivation of the GameObject once an effect has finished playing, as well as camera shake and light animation where relevant -* If you don't want the camera shake and/or the lights, you can globally disable them in the CFXR_Effect.cs script: look for the global defines at the top of the file and uncomment them. -* Effects were authored using Linear Color Space; use that for the best results (in Player settings). -* If you have problems with z-sorting (transparent objects appearing in front of other when their position is actually behind), try changing the values in the Particle System -> Renderer -> Sorting Fudge; as long as the relative order is respected between the different particle systems of a same prefab, it should work ok. -* You can change the global HDR scale in the "CFXR_SETTINGS.cginc" file, if you need to adjust the effects for your bloom parameters for example. -* You can entirely disable Soft Particles in "CFXR_SETTINGS.cginc" too by uncommenting the '#define GLOBAL_DISABLE_SOFT_PARTICLES' line at the top. -* URP: If your particles don't render in the Game View or in a build, it could be because "Depth Texture" is disabled: either enable it in the URP asset for Soft Particles to work, or disable Soft Particles entirely (see above). - - -PLEASE LEAVE A REVIEW OR RATE THE PACKAGE IF YOU FIND IT USEFUL! -It helps a lot! :) - - -Enjoy! :) - - -CONTACT -------- -Questions, suggestions, help needed? -Contact me at: - -jean.moreno.public+unity@gmail.com - -I'd be happy to see any effects used in your project, so feel free to drop me a line about that! :) - - -RELEASE NOTES -------------- - -R 1.0.5 -- Removed mentions of the "Cartoon FX Easy Editor" in the readme files as it is not included with the free version of Cartoon FX Remaster - -R 1.0.4 -- Reorganized the shader code in a separate file to avoid a 'multi_compile' hack, which will hopefully fix issues with Asset Bundles/Addressables - -R 1.0.3 -- Improved CFXR_ParticleText usability when toggling the "is Dynamic" flag on an existing text effect -- Disabled mesh GPU instancing in the shaders because it was causing too many issues (even when using Unity's default particle shader) - -R 1.0.2 -- Removed GPU instancing support on the "CFXR Procedural Ring" shader, because it visually breaks it -- Fixed compilation error related to 'projPos' in the "CFXR Particle Glow" shader - -R 1.0.1 -- Added support for GPU instancing in the shaders -- Fixed possible build error when adding a text effect in a prefab due to HideFlags - -R 1.0.0 -- First release of "Cartoon FX Remaster FREE" with new free effects taken from all four Remaster packs +Cartoon FX Remaster FREE, version R 1.0 +2023/05/08 +© 2012-2023 - Jean Moreno +======================================= + +! NOTE ABOUT URP ! +------------------ +If almost all effects don't show in URP, it probably is because the Depth Texture is disabled. +This texture is needed for soft particles to work, and they are enabled by default. +You can either: +- enable the Depth Texture in the URP asset +- disable soft particles globally by uncommenting the relevant line in the CFXR_Settings.cginc file + + +ABOUT +----- +"Cartoon FX Remaster" is an update to the old "Cartoon FX Pack" assets. +All effects have been remade from scratch using: +- new shaders with special effects such as dissolve animation, UV distortion, edge fading, HDR colors, single channel textures for reduced memory usage, shadow casting and dithering +- optimized meshes where relevant to reduce overdraw/fill-rate issues +- high-resolution hand-drawn textures +- specialized shader to draw perfect circles and rings while reducing overdraw (using a ring mesh instead of a quad) + +This is the free version containing a sample of effects taken from the four commercial packs. +The license is the same as the commercial packs, including commercial use of the effects in games and apps. +The full license can be found here: https://unity.com/legal/as-terms (Appendix 1, EULA) + +"Cartoon FX Remaster" supports the built-in render pipeline and URP. + + +PREFABS +------- +Particle Systems prefabs are located in "Cartoon FX Remaster/CFXR Prefabs" folder. +All prefabs and their assets have a CFXR_ prefix to easily recognize them. + + +LEGACY EFFECTS +-------------- +All the old effects from "Cartoon FX Free" are still available in the "Cartoon FX (legacy)" folder. + + +MOBILE OPTIMIZED PREFABS? +------------------------- +Unlike the Legacy effects, "Cartoon FX Remaster" doesn't include mobile-specific prefabs. +This is because: +- mobile devices are much more powerful compared to Cartoon FX Pack 1's initial release in 2012 +- prefabs are all already optimized and use a relatively small number of particles each + + +TROUBLESHOOTING +--------------- + +* Almost all prefabs have the CFXR_Effect script attached: it handles auto-destruction or deactivation of the GameObject once an effect has finished playing, as well as camera shake and light animation where relevant +* If you don't want the camera shake and/or the lights, you can globally disable them in the CFXR_Effect.cs script: look for the global defines at the top of the file and uncomment them. +* Effects were authored using Linear Color Space; use that for the best results (in Player settings). +* If you have problems with z-sorting (transparent objects appearing in front of other when their position is actually behind), try changing the values in the Particle System -> Renderer -> Sorting Fudge; as long as the relative order is respected between the different particle systems of a same prefab, it should work ok. +* You can change the global HDR scale in the "CFXR_SETTINGS.cginc" file, if you need to adjust the effects for your bloom parameters for example. +* You can entirely disable Soft Particles in "CFXR_SETTINGS.cginc" too by uncommenting the '#define GLOBAL_DISABLE_SOFT_PARTICLES' line at the top. +* URP: If your particles don't render in the Game View or in a build, it could be because "Depth Texture" is disabled: either enable it in the URP asset for Soft Particles to work, or disable Soft Particles entirely (see above). + + +PLEASE LEAVE A REVIEW OR RATE THE PACKAGE IF YOU FIND IT USEFUL! +It helps a lot! :) + + +Enjoy! :) + + +CONTACT +------- +Questions, suggestions, help needed? +Contact me at: + +jean.moreno.public+unity@gmail.com + +I'd be happy to see any effects used in your project, so feel free to drop me a line about that! :) + + +RELEASE NOTES +------------- + +R 1.0.5 +- Removed mentions of the "Cartoon FX Easy Editor" in the readme files as it is not included with the free version of Cartoon FX Remaster + +R 1.0.4 +- Reorganized the shader code in a separate file to avoid a 'multi_compile' hack, which will hopefully fix issues with Asset Bundles/Addressables + +R 1.0.3 +- Improved CFXR_ParticleText usability when toggling the "is Dynamic" flag on an existing text effect +- Disabled mesh GPU instancing in the shaders because it was causing too many issues (even when using Unity's default particle shader) + +R 1.0.2 +- Removed GPU instancing support on the "CFXR Procedural Ring" shader, because it visually breaks it +- Fixed compilation error related to 'projPos' in the "CFXR Particle Glow" shader + +R 1.0.1 +- Added support for GPU instancing in the shaders +- Fixed possible build error when adding a text effect in a prefab due to HideFlags + +R 1.0.0 +- First release of "Cartoon FX Remaster FREE" with new free effects taken from all four Remaster packs diff --git a/Assets/JsonDotNet/Assemblies/AOT/Newtonsoft.Json.XML b/Assets/JsonDotNet/Assemblies/AOT/Newtonsoft.Json.XML index 9a914af..2b72b8e 100644 --- a/Assets/JsonDotNet/Assemblies/AOT/Newtonsoft.Json.XML +++ b/Assets/JsonDotNet/Assemblies/AOT/Newtonsoft.Json.XML @@ -1,8015 +1,8015 @@ - - - - Newtonsoft.Json - - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. - - - true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. - - - - - Gets or sets a value indicating whether the root object will be read as a JSON array. - - - true if the root object will be read as a JSON array; otherwise, false. - - - - - Gets or sets the used when reading values from BSON. - - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The stream. - - - - Initializes a new instance of the class. - - The reader. - - - - Initializes a new instance of the class. - - The stream. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The reader. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Changes the to Closed. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the used when writing values to BSON. - When set to no conversion will occur. - - The used when writing values to BSON. - - - - Initializes a new instance of the class. - - The stream. - - - - Initializes a new instance of the class. - - The writer. - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Writes the end. - - The token. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes the beginning of a JSON array. - - - - - Writes the beginning of a JSON object. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Closes this stream and the underlying stream. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value that represents a BSON object id. - - The Object ID value to write. - - - - Writes a BSON regex. - - The regex pattern. - The regex options. - - - - Represents a BSON Oid (object id). - - - - - Gets or sets the value of the Oid. - - The value of the Oid. - - - - Initializes a new instance of the class. - - The Oid value. - - - - Converts a binary value to and from a base 64 string value. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Create a custom object - - The object type to convert. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Creates an object which will then be populated by the serializer. - - Type of the object. - The created object. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can write JSON. - - - true if this can write JSON; otherwise, false. - - - - - Provides a base class for converting a to and from JSON. - - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - - - - - - - - - - - - - - - - - - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an to and from its name string value. - - - - - Gets or sets a value indicating whether the written enum text should be camel case. - - true if the written enum text will be camel case; otherwise, false. - - - - Gets or sets a value indicating whether integer values are allowed. - - true if integers are allowed; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - true if the written enum text will be camel case; otherwise, false. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Json Converter for Vector2, Vector3 and Vector4. Only serializes x, y, (z) and (w) properties. - - - - - Default Constructor - All Vector types enabled by default - - - - - Selectively enable Vector types - - Use for Vector2 objects - Use for Vector3 objects - Use for Vector4 objects - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Converts a to and from a string (e.g. "1.2.3.4"). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). - - - - - Gets or sets the date time styles used when converting a date to and from JSON. - - The date time styles used when converting a date to and from JSON. - - - - Gets or sets the date time format used when converting a date to and from JSON. - - The date time format used when converting a date to and from JSON. - - - - Gets or sets the culture used when converting a date to and from JSON. - - The culture used when converting a date to and from JSON. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Converts XML to and from JSON. - - - - - Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. - - The name of the deserialize root element. - - - - Gets or sets a flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - true if the array attibute is written to the XML; otherwise, false. - - - - Gets or sets a value indicating whether to write the root JSON object. - - true if the JSON root object is omitted; otherwise, false. - - - - Writes the JSON representation of the object. - - The to write to. - The calling serializer. - The value. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Checks if the attributeName is a namespace attribute. - - Attribute name to test. - The attribute name prefix if it has one, otherwise an empty string. - True if attribute name is for a namespace attribute, otherwise false. - - - - Determines whether this instance can convert the specified value type. - - Type of the value. - - true if this instance can convert the specified value type; otherwise, false. - - - - - Specifies how constructors are used when initializing objects during deserialization by the . - - - - - First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. - - - - - Json.NET will use a non-public default constructor before falling back to a paramatized constructor. - - - - - Specifies how dates are formatted when writing JSON text. - - - - - Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". - - - - - Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". - - - - - Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. - - - - - Date formatted strings are not parsed to a date type and are read as strings. - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Specifies how to treat the time value when converting between string and . - - - - - Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. - - - - - Treat as a UTC. If the object represents a local time, it is converted to a UTC. - - - - - Treat as a local time if a is being converted to a string. - If a string is being converted to , convert to a local time if a time zone is specified. - - - - - Time zone information should be preserved when converting. - - - - - Specifies float format handling options when writing special floating point numbers, e.g. , - and with . - - - - - Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". - - - - - Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. - Note that this will produce non-valid JSON. - - - - - Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a property. - - - - - Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Floating point numbers are parsed to . - - - - - Floating point numbers are parsed to . - - - - - Specifies formatting options for the . - - - - - No special formatting is applied. This is the default. - - - - - Causes child objects to be indented according to the and settings. - - - - - Provides an interface for using pooled arrays. - - The array type content. - - - - Rent a array from the pool. This array must be returned when it is no longer needed. - - The minimum required length of the array. The returned array may be longer. - The rented array from the pool. This array must be returned when it is no longer needed. - - - - Return an array to the pool. - - The array that is being returned. - - - - Instructs the to use the specified constructor when deserializing that object. - - - - - Instructs the how to serialize the collection. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Instructs the to deserialize properties with no matching class member into the specified collection - and write values during serialization. - - - - - Gets or sets a value that indicates whether to write extension data when serializing the object. - - - true to write extension data when serializing the object; otherwise, false. The default is true. - - - - - Gets or sets a value that indicates whether to read extension data when deserializing the object. - - - true to read extension data when deserializing the object; otherwise, false. The default is true. - - - - - Initializes a new instance of the class. - - - - - Instructs the to always serialize the member, and require the member has a value. - - - - - Specifies how JSON comments are handled when loading JSON. - - - - - Ignore comments. - - - - - Load comments as a with type . - - - - - Specifies how line information is handled when loading JSON. - - - - - Ignore line information. - - - - - Load line information. - - - - - Represents a view of a . - - - - - Initializes a new instance of the class. - - The name. - - - - When overridden in a derived class, returns whether resetting an object changes its value. - - - true if resetting the component changes its value; otherwise, false. - - The component to test for reset capability. - - - - - When overridden in a derived class, gets the current value of the property on a component. - - - The value of a property for a given component. - - The component with the property for which to retrieve the value. - - - - - When overridden in a derived class, resets the value for this property of the component to the default value. - - The component with the property value that is to be reset to the default value. - - - - - When overridden in a derived class, sets the value of the component to a different value. - - The component with the property value that is to be set. - The new value. - - - - - When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. - - - true if the property should be persisted; otherwise, false. - - The component with the property to be examined for persistence. - - - - - When overridden in a derived class, gets the type of the component this property is bound to. - - - A that represents the type of component this property is bound to. When the or methods are invoked, the object specified might be an instance of this type. - - - - - When overridden in a derived class, gets a value indicating whether this property is read-only. - - - true if the property is read-only; otherwise, false. - - - - - When overridden in a derived class, gets the type of the property. - - - A that represents the type of the property. - - - - - Gets the hash code for the name of the member. - - - - The hash code for the name of the member. - - - - - Specifies the settings used when loading JSON. - - - - - Gets or sets how JSON comments are handled when loading JSON. - - The JSON comment handling. - - - - Gets or sets how JSON line info is handled when loading JSON. - - The JSON line info handling. - - - - Specifies the settings used when merging JSON. - - - - - Gets or sets the method used when merging JSON arrays. - - The method used when merging JSON arrays. - - - - Gets or sets how how null value properties are merged. - - How null value properties are merged. - - - - Specifies how JSON arrays are merged together. - - - - Concatenate arrays. - - - Union arrays, skipping items that already exist. - - - Replace all array items. - - - Merge array items together, matched by index. - - - - Specifies how null value properties are merged. - - - - - The content's null value properties will be ignored during merging. - - - - - The content's null value properties will be merged. - - - - - Represents a raw JSON string. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class. - - The raw json. - - - - Creates an instance of with the content of the reader's current token. - - The reader. - An instance of with the content of the reader's current token. - - - - Represents a collection of objects. - - The type of token - - - - Gets the with the specified key. - - - - - - Compares tokens to determine whether they are equal. - - - - - Determines whether the specified objects are equal. - - The first object of type to compare. - The second object of type to compare. - - true if the specified objects are equal; otherwise, false. - - - - - Returns a hash code for the specified object. - - The for which a hash code is to be returned. - A hash code for the specified object. - The type of is a reference type and is null. - - - - Contains the LINQ to JSON extension methods. - - - - - Returns a collection of tokens that contains the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the descendants of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, and the descendants of every token in the source collection. - - - - Returns a collection of child properties of every object in the source collection. - - An of that contains the source collection. - An of that contains the properties of every object in the source collection. - - - - Returns a collection of child values of every object in the source collection with the given key. - - An of that contains the source collection. - The token key. - An of that contains the values of every token in the source collection with the given key. - - - - Returns a collection of child values of every object in the source collection. - - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child values of every object in the source collection with the given key. - - The type to convert the values to. - An of that contains the source collection. - The token key. - An that contains the converted values of every token in the source collection with the given key. - - - - Returns a collection of converted child values of every object in the source collection. - - The type to convert the values to. - An of that contains the source collection. - An that contains the converted values of every token in the source collection. - - - - Converts the value. - - The type to convert the value to. - A cast as a of . - A converted value. - - - - Converts the value. - - The source collection type. - The type to convert the value to. - A cast as a of . - A converted value. - - - - Returns a collection of child tokens of every array in the source collection. - - The source collection type. - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child tokens of every array in the source collection. - - An of that contains the source collection. - The type to convert the values to. - The source collection type. - An that contains the converted values of every token in the source collection. - - - - Returns the input typed as . - - An of that contains the source collection. - The input typed as . - - - - Returns the input typed as . - - The source collection type. - An of that contains the source collection. - The input typed as . - - - - Represents a JSON constructor. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets or sets the name of this constructor. - - The constructor name. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name. - - The constructor name. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Represents a token that can contain other tokens. - - - - - Occurs when the list changes or an item in the list changes. - - - - - Occurs before an item is added to the collection. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Raises the event. - - The instance containing the event data. - - - - Raises the event. - - The instance containing the event data. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Get the first child token of this token. - - - A containing the first child token of the . - - - - - Get the last child token of this token. - - - A containing the last child token of the . - - - - - Returns a collection of the child tokens of this token, in document order. - - - An of containing the child tokens of this , in document order. - - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - - A containing the child values of this , in document order. - - - - - Returns a collection of the descendant tokens for this token in document order. - - An containing the descendant tokens of the . - - - - Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. - - An containing this token, and all the descendant tokens of the . - - - - Adds the specified content as children of this . - - The content to be added. - - - - Adds the specified content as the first children of this . - - The content to be added. - - - - Creates an that can be used to add tokens to the . - - An that is ready to have content written to it. - - - - Replaces the children nodes of this token with the specified content. - - The content. - - - - Removes the child nodes from this token. - - - - - Merge the specified content into this . - - The content to be merged. - - - - Merge the specified content into this using . - - The content to be merged. - The used to merge the content. - - - - Gets the count of child JSON tokens. - - The count of child JSON tokens - - - - Represents a collection of objects. - - The type of token - - - - An empty collection of objects. - - - - - Initializes a new instance of the struct. - - The enumerable. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - - - - Gets the with the specified key. - - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Returns a hash code for this instance. - - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - Represents a JSON object. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Occurs when a property value changes. - - - - - Occurs when a property value is changing. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Gets the node type for this . - - The type. - - - - Gets an of this object's properties. - - An of this object's properties. - - - - Gets a the specified name. - - The property name. - A with the specified name or null. - - - - Gets an of this object's property values. - - An of this object's property values. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the with the specified property name. - - - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified property name. - - Name of the property. - The with the specified property name. - - - - Gets the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - One of the enumeration values that specifies how the strings will be compared. - The with the specified property name. - - - - Tries to get the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - The value. - One of the enumeration values that specifies how the strings will be compared. - true if a value was successfully retrieved; otherwise, false. - - - - Adds the specified property name. - - Name of the property. - The value. - - - - Removes the property with the specified name. - - Name of the property. - true if item was successfully removed; otherwise, false. - - - - Tries the get value. - - Name of the property. - The value. - true if a value was successfully retrieved; otherwise, false. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Raises the event with the provided arguments. - - Name of the property. - - - - Raises the event with the provided arguments. - - Name of the property. - - - - Returns the properties for this instance of a component. - - - A that represents the properties for this component instance. - - - - - Returns the properties for this instance of a component using the attribute array as a filter. - - An array of type that is used as a filter. - - A that represents the filtered properties for this component instance. - - - - - Returns a collection of custom attributes for this instance of a component. - - - An containing the attributes for this object. - - - - - Returns the class name of this instance of a component. - - - The class name of the object, or null if the class does not have a name. - - - - - Returns the name of this instance of a component. - - - The name of the object, or null if the object does not have a name. - - - - - Returns a type converter for this instance of a component. - - - A that is the converter for this object, or null if there is no for this object. - - - - - Returns the default event for this instance of a component. - - - An that represents the default event for this object, or null if this object does not have events. - - - - - Returns the default property for this instance of a component. - - - A that represents the default property for this object, or null if this object does not have properties. - - - - - Returns an editor of the specified type for this instance of a component. - - A that represents the editor for this object. - - An of the specified type that is the editor for this object, or null if the editor cannot be found. - - - - - Returns the events for this instance of a component using the specified attribute array as a filter. - - An array of type that is used as a filter. - - An that represents the filtered events for this component instance. - - - - - Returns the events for this instance of a component. - - - An that represents the events for this component instance. - - - - - Returns an object that contains the property described by the specified property descriptor. - - A that represents the property whose owner is to be found. - - An that represents the owner of the specified property. - - - - - Represents a JSON array. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the at the specified index. - - - - - - Determines the index of a specific item in the . - - The object to locate in the . - - The index of if found in the list; otherwise, -1. - - - - - Inserts an item to the at the specified index. - - The zero-based index at which should be inserted. - The object to insert into the . - - is not a valid index in the . - The is read-only. - - - - Removes the item at the specified index. - - The zero-based index of the item to remove. - - is not a valid index in the . - The is read-only. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Adds an item to the . - - The object to add to the . - The is read-only. - - - - Removes all items from the . - - The is read-only. - - - - Determines whether the contains a specific value. - - The object to locate in the . - - true if is found in the ; otherwise, false. - - - - - Copies to. - - The array. - Index of the array. - - - - Gets a value indicating whether the is read-only. - - true if the is read-only; otherwise, false. - - - - Removes the first occurrence of a specific object from the . - - The object to remove from the . - - true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . - - The is read-only. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets the at the reader's current position. - - - - - Initializes a new instance of the class. - - The token to read from. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Gets the path of the current JSON token. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets the at the writer's current position. - - - - - Gets the token being writen. - - The token being writen. - - - - Initializes a new instance of the class writing to the given . - - The container being written to. - - - - Initializes a new instance of the class. - - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end. - - The token. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Represents an abstract JSON token. - - - - - Gets a comparer that can compare two tokens for value equality. - - A that can compare two nodes for value equality. - - - - Gets or sets the parent. - - The parent. - - - - Gets the root of this . - - The root of this . - - - - Gets the node type for this . - - The type. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Compares the values of two tokens, including the values of all descendant tokens. - - The first to compare. - The second to compare. - true if the tokens are equal; otherwise false. - - - - Gets the next sibling token of this node. - - The that contains the next sibling token. - - - - Gets the previous sibling token of this node. - - The that contains the previous sibling token. - - - - Gets the path of the JSON token. - - - - - Adds the specified content immediately after this token. - - A content object that contains simple content or a collection of content objects to be added after this token. - - - - Adds the specified content immediately before this token. - - A content object that contains simple content or a collection of content objects to be added before this token. - - - - Returns a collection of the ancestor tokens of this token. - - A collection of the ancestor tokens of this token. - - - - Returns a collection of tokens that contain this token, and the ancestors of this token. - - A collection of tokens that contain this token, and the ancestors of this token. - - - - Returns a collection of the sibling tokens after this token, in document order. - - A collection of the sibling tokens after this tokens, in document order. - - - - Returns a collection of the sibling tokens before this token, in document order. - - A collection of the sibling tokens before this token, in document order. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets the with the specified key converted to the specified type. - - The type to convert the token to. - The token key. - The converted token value. - - - - Get the first child token of this token. - - A containing the first child token of the . - - - - Get the last child token of this token. - - A containing the last child token of the . - - - - Returns a collection of the child tokens of this token, in document order. - - An of containing the child tokens of this , in document order. - - - - Returns a collection of the child tokens of this token, in document order, filtered by the specified type. - - The type to filter the child tokens on. - A containing the child tokens of this , in document order. - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - A containing the child values of this , in document order. - - - - Removes this token from its parent. - - - - - Replaces this token with the specified token. - - The value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Returns the indented JSON for this token. - - - The indented JSON for this token. - - - - - Returns the JSON for this token using the given formatting and converters. - - Indicates how the output is formatted. - A collection of which will be used when writing the token. - The JSON for this token using the given formatting and converters. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to []. - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from [] to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Creates an for this token. - - An that can be used to read this token and its descendants. - - - - Creates a from an object. - - The object that will be used to create . - A with the value of the specified object - - - - Creates a from an object using the specified . - - The object that will be used to create . - The that will be used when reading the object. - A with the value of the specified object - - - - Creates the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates a from a . - - An positioned at the token to read into this . - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Selects a using a JPath expression. Selects the token that matches the object path. - - - A that contains a JPath expression. - - A , or null. - - - - Selects a using a JPath expression. Selects the token that matches the object path. - - - A that contains a JPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - A . - - - - Selects a collection of elements using a JPath expression. - - - A that contains a JPath expression. - - An that contains the selected elements. - - - - Selects a collection of elements using a JPath expression. - - - A that contains a JPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - An that contains the selected elements. - - - - Creates a new instance of the . All child tokens are recursively cloned. - - A new instance of the . - - - - Adds an object to the annotation list of this . - - The annotation to add. - - - - Get the first annotation object of the specified type from this . - - The type of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets the first annotation object of the specified type from this . - - The of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets a collection of annotations of the specified type for this . - - The type of the annotations to retrieve. - An that contains the annotations for this . - - - - Gets a collection of annotations of the specified type for this . - - The of the annotations to retrieve. - An of that contains the annotations that match the specified type for this . - - - - Removes the annotations of the specified type from this . - - The type of annotations to remove. - - - - Removes the annotations of the specified type from this . - - The of annotations to remove. - - - - Represents a JSON property. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the property name. - - The property name. - - - - Gets or sets the property value. - - The property value. - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Specifies the type of token. - - - - - No token type has been set. - - - - - A JSON object. - - - - - A JSON array. - - - - - A JSON constructor. - - - - - A JSON object property. - - - - - A comment. - - - - - An integer value. - - - - - A float value. - - - - - A string value. - - - - - A boolean value. - - - - - A null value. - - - - - An undefined value. - - - - - A date value. - - - - - A raw JSON value. - - - - - A collection of bytes value. - - - - - A Guid value. - - - - - A Uri value. - - - - - A TimeSpan value. - - - - - Represents a value in JSON (string, integer, date, etc). - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Creates a comment with the given value. - - The value. - A comment with the given value. - - - - Creates a string with the given value. - - The value. - A string with the given value. - - - - Creates a null value. - - A null value. - - - - Creates a undefined value. - - A undefined value. - - - - Gets the node type for this . - - The type. - - - - Gets or sets the underlying token value. - - The underlying token value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Indicates whether the current object is equal to another object of the same type. - - - true if the current object is equal to the parameter; otherwise, false. - - An object to compare with this object. - - - - Determines whether the specified is equal to the current . - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - The parameter is null. - - - - - Serves as a hash function for a particular type. - - - A hash code for the current . - - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format provider. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - The format provider. - - A that represents this instance. - - - - - Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. - - An object to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: - Value - Meaning - Less than zero - This instance is less than . - Zero - This instance is equal to . - Greater than zero - This instance is greater than . - - - is not the same type as this instance. - - - - - Specifies metadata property handling options for the . - - - - - Read metadata properties located at the start of a JSON object. - - - - - Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. - - - - - Do not try to read metadata properties. - - - - - Represents a trace writer that writes to the application's instances. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - - The that will be used to filter the trace messages passed to the writer. - - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Provides methods to get attributes. - - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Represents a trace writer. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - The that will be used to filter the trace messages passed to the writer. - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Contract details for a used by the . - - - - - Gets or sets the default collection items . - - The converter. - - - - Gets or sets a value indicating whether the collection items preserve object references. - - true if collection items preserve object references; otherwise, false. - - - - Gets or sets the collection item reference loop handling. - - The reference loop handling. - - - - Gets or sets the collection item type name handling. - - The type name handling. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Represents a trace writer that writes to memory. When the trace message limit is - reached then old trace messages will be removed as new messages are added. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - - The that will be used to filter the trace messages passed to the writer. - - - - - Initializes a new instance of the class. - - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Returns an enumeration of the most recent trace messages. - - An enumeration of the most recent trace messages. - - - - Returns a of the most recent trace messages. - - - A of the most recent trace messages. - - - - - Provides methods to get attributes from a , , or . - - - - - Initializes a new instance of the class. - - The instance to get attributes for. This parameter should be a , , or . - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Contract details for a used by the . - - - - - Gets or sets the ISerializable object constructor. - - The ISerializable object constructor. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Provides data for the Error event. - - - - - Gets the current object the error event is being raised against. - - The current object the error event is being raised against. - - - - Gets the error context. - - The error context. - - - - Initializes a new instance of the class. - - The current object. - The error context. - - - - Resolves member mappings for a type, camel casing property names. - - - - - Initializes a new instance of the class. - - - - - Resolves the name of the property. - - Name of the property. - The property name camel cased. - - - - Used by to resolves a for a given . - - - - - Gets a value indicating whether members are being get and set using dynamic code generation. - This value is determined by the runtime permissions available. - - - true if using dynamic code generation; otherwise, false. - - - - - Gets or sets the default members search flags. - - The default members search flags. - - - - Gets or sets a value indicating whether compiler generated members should be serialized. - - - true if serialized compiler generated members; otherwise, false. - - - - - Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. - - - true if the interface will be ignored when serializing and deserializing types; otherwise, false. - - - - - Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. - - - true if the attribute will be ignored when serializing and deserializing types; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - If set to true the will use a cached shared with other resolvers of the same type. - Sharing the cache will significantly improve performance with multiple resolver instances because expensive reflection will only - happen once. This setting can cause unexpected behavior if different instances of the resolver are suppose to produce different - results. When set to false it is highly recommended to reuse instances with the . - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Gets the serializable members for the type. - - The type to get serializable members for. - The serializable members for the type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates the constructor parameters. - - The constructor to create properties for. - The type's member properties. - Properties for the given . - - - - Creates a for the given . - - The matching member property. - The constructor parameter. - A created for the given . - - - - Resolves the default for the contract. - - Type of the object. - The contract's default . - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Determines which contract type is created for the given type. - - Type of the object. - A for the given type. - - - - Creates properties for the given . - - The type to create properties for. - /// The member serialization mode for the type. - Properties for the given . - - - - Creates the used by the serializer to get and set values from a member. - - The member. - The used by the serializer to get and set values from a member. - - - - Creates a for the given . - - The member's parent . - The member to create a for. - A created for the given . - - - - Resolves the name of the property. - - Name of the property. - Resolved name of the property. - - - - Resolves the key of the dictionary. By default is used to resolve dictionary keys. - - Key of the dictionary. - Resolved key of the dictionary. - - - - Gets the resolved name of the property. - - Name of the property. - Name of the property. - - - - The default serialization binder used when resolving and loading classes from type names. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - The type of the object the formatter creates a new instance of. - - - - - Provides information surrounding an error. - - - - - Gets the error. - - The error. - - - - Gets the original object that caused the error. - - The original object that caused the error. - - - - Gets the member that caused the error. - - The member that caused the error. - - - - Gets the path of the JSON location where the error occurred. - - The path of the JSON location where the error occurred. - - - - Gets or sets a value indicating whether this is handled. - - true if handled; otherwise, false. - - - - Used by to resolves a for a given . - - - - - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Provides methods to get and set values. - - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Contract details for a used by the . - - - - - Gets the of the collection items. - - The of the collection items. - - - - Gets a value indicating whether the collection type is a multidimensional array. - - true if the collection type is a multidimensional array; otherwise, false. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the collection values. - - true if the creator has a parameter with the collection values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Handles serialization callback events. - - The object that raised the callback event. - The streaming context. - - - - Handles serialization error callback events. - - The object that raised the callback event. - The streaming context. - The error context. - - - - Sets extension data for an object during deserialization. - - The object to set extension data on. - The extension data key. - The extension data value. - - - - Gets extension data for an object during serialization. - - The object to set extension data on. - - - - Contract details for a used by the . - - - - - Gets the underlying type for the contract. - - The underlying type for the contract. - - - - Gets or sets the type created during deserialization. - - The type created during deserialization. - - - - Gets or sets whether this type contract is serialized as a reference. - - Whether this type contract is serialized as a reference. - - - - Gets or sets the default for this contract. - - The converter. - - - - Gets or sets all methods called immediately after deserialization of the object. - - The methods called immediately after deserialization of the object. - - - - Gets or sets all methods called during deserialization of the object. - - The methods called during deserialization of the object. - - - - Gets or sets all methods called after serialization of the object graph. - - The methods called after serialization of the object graph. - - - - Gets or sets all methods called before serialization of the object. - - The methods called before serialization of the object. - - - - Gets or sets all method called when an error is thrown during the serialization of the object. - - The methods called when an error is thrown during the serialization of the object. - - - - Gets or sets the method called immediately after deserialization of the object. - - The method called immediately after deserialization of the object. - - - - Gets or sets the method called during deserialization of the object. - - The method called during deserialization of the object. - - - - Gets or sets the method called after serialization of the object graph. - - The method called after serialization of the object graph. - - - - Gets or sets the method called before serialization of the object. - - The method called before serialization of the object. - - - - Gets or sets the method called when an error is thrown during the serialization of the object. - - The method called when an error is thrown during the serialization of the object. - - - - Gets or sets the default creator method used to create the object. - - The default creator method used to create the object. - - - - Gets or sets a value indicating whether the default creator is non public. - - true if the default object creator is non-public; otherwise, false. - - - - Contract details for a used by the . - - - - - Gets or sets the property name resolver. - - The property name resolver. - - - - Gets or sets the dictionary key resolver. - - The dictionary key resolver. - - - - Gets the of the dictionary keys. - - The of the dictionary keys. - - - - Gets the of the dictionary values. - - The of the dictionary values. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the dictionary values. - - true if the creator has a parameter with the dictionary values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Maps a JSON property to a .NET member or constructor parameter. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the type that declared this property. - - The type that declared this property. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets the name of the underlying member or parameter. - - The name of the underlying member or parameter. - - - - Gets the that will get and set the during serialization. - - The that will get and set the during serialization. - - - - Gets or sets the for this property. - - The for this property. - - - - Gets or sets the type of the property. - - The type of the property. - - - - Gets or sets the for the property. - If set this converter takes presidence over the contract converter for the property type. - - The converter. - - - - Gets or sets the member converter. - - The member converter. - - - - Gets or sets a value indicating whether this is ignored. - - true if ignored; otherwise, false. - - - - Gets or sets a value indicating whether this is readable. - - true if readable; otherwise, false. - - - - Gets or sets a value indicating whether this is writable. - - true if writable; otherwise, false. - - - - Gets or sets a value indicating whether this has a member attribute. - - true if has a member attribute; otherwise, false. - - - - Gets the default value. - - The default value. - - - - Gets or sets a value indicating whether this is required. - - A value indicating whether this is required. - - - - Gets or sets a value indicating whether this property preserves object references. - - - true if this instance is reference; otherwise, false. - - - - - Gets or sets the property null value handling. - - The null value handling. - - - - Gets or sets the property default value handling. - - The default value handling. - - - - Gets or sets the property reference loop handling. - - The reference loop handling. - - - - Gets or sets the property object creation handling. - - The object creation handling. - - - - Gets or sets or sets the type name handling. - - The type name handling. - - - - Gets or sets a predicate used to determine whether the property should be serialize. - - A predicate used to determine whether the property should be serialize. - - - - Gets or sets a predicate used to determine whether the property should be deserialized. - - A predicate used to determine whether the property should be deserialized. - - - - Gets or sets a predicate used to determine whether the property should be serialized. - - A predicate used to determine whether the property should be serialized. - - - - Gets or sets an action used to set whether the property has been deserialized. - - An action used to set whether the property has been deserialized. - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Gets or sets the the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets the the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - A collection of objects. - - - - - Initializes a new instance of the class. - - The type. - - - - When implemented in a derived class, extracts the key from the specified element. - - The element from which to extract the key. - The key for the specified element. - - - - Adds a object. - - The property to add to the collection. - - - - Gets the closest matching object. - First attempts to get an exact case match of propertyName and then - a case insensitive match. - - Name of the property. - A matching property if found. - - - - Gets a property by property name. - - The name of the property to get. - Type property name string comparison. - A matching property if found. - - - - Used to resolve references when serializing and deserializing JSON by the . - - - - - Resolves a reference to its object. - - The serialization context. - The reference to resolve. - The object that - - - - Gets the reference for the sepecified object. - - The serialization context. - The object to get a reference for. - The reference to the object. - - - - Determines whether the specified object is referenced. - - The serialization context. - The object to test for a reference. - - true if the specified object is referenced; otherwise, false. - - - - - Adds a reference to the specified object. - - The serialization context. - The reference. - The object to reference. - - - - Contract details for a used by the . - - - - - Gets or sets the object member serialization. - - The member object serialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Gets the object's properties. - - The object's properties. - - - - Gets the constructor parameters required for any non-default constructor - - - - - Gets a collection of instances that define the parameters used with . - - - - - Gets or sets the override constructor used to create the object. - This is set when a constructor is marked up using the - JsonConstructor attribute. - - The override constructor. - - - - Gets or sets the parametrized constructor used to create the object. - - The parametrized constructor. - - - - Gets or sets the function used to create the object. When set this function will override . - This function is called with a collection of arguments which are defined by the collection. - - The function used to create the object. - - - - Gets or sets the extension data setter. - - - - - Gets or sets the extension data getter. - - - - - Gets or sets the extension data value type. - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Lookup and create an instance of the JsonConverter type described by the argument. - - The JsonConverter type to create. - Optional arguments to pass to an initializing constructor of the JsonConverter. - If null, the default constructor is used. - - - - Create a factory function that can be used to create instances of a JsonConverter described by the - argument type. The returned function can then be used to either invoke the converter's default ctor, or any - parameterized constructors by way of an object array. - - - - - Get and set values for a using reflection. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - When applied to a method, specifies that the method is called when an error occurs serializing an object. - - - - - Represents a method that constructs an object. - - The object type to create. - - - - Specifies how strings are escaped when writing JSON text. - - - - - Only control characters (e.g. newline) are escaped. - - - - - All non-ASCII and control characters (e.g. newline) are escaped. - - - - - HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. - - - - - Converts the value to the specified type. If the value is unable to be converted, the - value is checked whether it assignable to the specified type. - - The value to convert. - The culture to use when converting. - The type to convert or cast the value to. - - The converted type. If conversion was unsuccessful, the initial value - is returned if assignable to the target type. - - - - - Gets a dictionary of the names and values of an Enum type. - - - - - - Gets a dictionary of the names and values of an Enum type. - - The enum type to get names and values for. - - - - - Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. - - - - - Determines whether the collection is null or empty. - - The collection. - - true if the collection is null or empty; otherwise, false. - - - - - Adds the elements of the specified collection to the specified generic IList. - - The list to add to. - The collection of elements to add. - - - - Gets the type of the typed collection's items. - - The type. - The type of the typed collection's items. - - - - Gets the member's underlying type. - - The member. - The underlying type of the member. - - - - Determines whether the member is an indexed property. - - The member. - - true if the member is an indexed property; otherwise, false. - - - - - Determines whether the property is an indexed property. - - The property. - - true if the property is an indexed property; otherwise, false. - - - - - Gets the member's value on the object. - - The member. - The target object. - The member's value on the object. - - - - Sets the member's value on the target object. - - The member. - The target. - The value. - - - - Determines whether the specified MemberInfo can be read. - - The MemberInfo to determine whether can be read. - /// if set to true then allow the member to be gotten non-publicly. - - true if the specified MemberInfo can be read; otherwise, false. - - - - - Determines whether the specified MemberInfo can be set. - - The MemberInfo to determine whether can be set. - if set to true then allow the member to be set non-publicly. - if set to true then allow the member to be set if read-only. - - true if the specified MemberInfo can be set; otherwise, false. - - - - - Determines whether the string is all white space. Empty string will return false. - - The string to test whether it is all white space. - - true if the string is all white space; otherwise, false. - - - - - Nulls an empty string. - - The string. - Null if the string was null, otherwise the string unchanged. - - - - Indicating whether a property is required. - - - - - The property is not required. The default state. - - - - - The property must be defined in JSON but can be a null value. - - - - - The property must be defined in JSON and cannot be a null value. - - - - - The property is not required but it cannot be a null value. - - - - - Specifies reference handling options for the . - Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement ISerializable. - - - - - - - - Do not preserve references when serializing types. - - - - - Preserve references when serializing into a JSON object structure. - - - - - Preserve references when serializing into a JSON array structure. - - - - - Preserve references when serializing. - - - - - Provides an interface to enable a class to return line and position information. - - - - - Gets a value indicating whether the class can return line information. - - - true if LineNumber and LinePosition can be provided; otherwise, false. - - - - - Gets the current line number. - - The current line number or 0 if no line information is available (for example, HasLineInfo returns false). - - - - Gets the current line position. - - The current line position or 0 if no line information is available (for example, HasLineInfo returns false). - - - - Instructs the how to serialize the collection. - - - - - Gets or sets a value indicating whether null items are allowed in the collection. - - true if null items are allowed in the collection; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a flag indicating whether the array can contain null items - - A flag indicating whether the array can contain null items. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Instructs the how to serialize the object. - - - - - Gets or sets the id. - - The id. - - - - Gets or sets the title. - - The title. - - - - Gets or sets the description. - - The description. - - - - Gets the collection's items converter. - - The collection's items converter. - - - - The parameter list to use when constructing the JsonConverter described by ItemConverterType. - If null, the default constructor is used. - When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, - order, and type of these parameters. - - - [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - Gets or sets a value that indicates whether to preserve object references. - - - true to keep object reference; otherwise, false. The default is false. - - - - - Gets or sets a value that indicates whether to preserve collection's items references. - - - true to keep collection's items object references; otherwise, false. The default is false. - - - - - Gets or sets the reference loop handling used when serializing the collection's items. - - The reference loop handling. - - - - Gets or sets the type name handling used when serializing the collection's items. - - The type name handling. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Specifies default value handling options for the . - - - - - - - - - Include members where the member value is the same as the member's default value when serializing objects. - Included members are written to JSON. Has no effect when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - so that is is not written to JSON. - This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, - decimals and floating point numbers; and false for booleans). The default value ignored can be changed by - placing the on the property. - - - - - Members with a default value but no JSON will be set to their default value when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - and sets members to their default value when deserializing. - - - - - Instructs the to use the specified when serializing the member or class. - - - - - Gets the of the converter. - - The of the converter. - - - - The parameter list to use when constructing the JsonConverter described by ConverterType. - If null, the default constructor is used. - - - - - Initializes a new instance of the class. - - Type of the converter. - - - - Initializes a new instance of the class. - - Type of the converter. - Parameter list to use when constructing the JsonConverter. Can be null. - - - - Instructs the how to serialize the object. - - - - - Gets or sets the member serialization. - - The member serialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified member serialization. - - The member serialization. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Specifies the settings on a object. - - - - - Gets or sets how reference loops (e.g. a class referencing itself) is handled. - - Reference loop handling. - - - - Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - - Missing member handling. - - - - Gets or sets how objects are created during deserialization. - - The object creation handling. - - - - Gets or sets how null values are handled during serialization and deserialization. - - Null value handling. - - - - Gets or sets how null default are handled during serialization and deserialization. - - The default value handling. - - - - Gets or sets a collection that will be used during serialization. - - The converters. - - - - Gets or sets how object references are preserved by the serializer. - - The preserve references handling. - - - - Gets or sets how type name writing and reading is handled by the serializer. - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - The type name handling. - - - - Gets or sets how metadata properties are used during deserialization. - - The metadata properties handling. - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - - The type name assembly format. - - - - Gets or sets how constructors are used during deserialization. - - The constructor handling. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - The contract resolver. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets the used by the serializer when resolving references. - - The reference resolver. - - - - Gets or sets a function that creates the used by the serializer when resolving references. - - A function that creates the used by the serializer when resolving references. - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the used by the serializer when resolving type names. - - The binder. - - - - Gets or sets the error handler called during serialization and deserialization. - - The error handler called during serialization and deserialization. - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling during serialization and deserialization. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written as JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Gets a value indicating whether there will be a check for additional content after deserializing an object. - - - true if there will be a check for additional content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Specifies the member serialization options for the . - - - - - All public members are serialized by default. Members can be excluded using or . - This is the default member serialization mode. - - - - - Only members marked with or are serialized. - This member serialization mode can also be set by marking the class with . - - - - - All public and private fields are serialized. Members can be excluded using or . - This member serialization mode can also be set by marking the class with - and setting IgnoreSerializableAttribute on to false. - - - - - Specifies how object creation is handled by the . - - - - - Reuse existing objects, create new objects when needed. - - - - - Only reuse existing objects. - - - - - Always create new objects. - - - - - Represents a reader that provides fast, non-cached, forward-only access to JSON text data. - - - - - Initializes a new instance of the class with the specified . - - The TextReader containing the XML data to read. - - - - Gets or sets the reader's character buffer pool. - - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a []. - - A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Changes the state to closed. - - - - - Gets a value indicating whether the class can return line information. - - - true if LineNumber and LinePosition can be provided; otherwise, false. - - - - - Gets the current line number. - - - The current line number or 0 if no line information is available (for example, HasLineInfo returns false). - - - - - Gets the current line position. - - - The current line position or 0 if no line information is available (for example, HasLineInfo returns false). - - - - - Instructs the to always serialize the member with the specified name. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - The parameter list to use when constructing the JsonConverter described by ItemConverterType. - If null, the default constructor is used. - When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, - order, and type of these parameters. - - - [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - Gets or sets the null value handling used when serializing this property. - - The null value handling. - - - - Gets or sets the default value handling used when serializing this property. - - The default value handling. - - - - Gets or sets the reference loop handling used when serializing this property. - - The reference loop handling. - - - - Gets or sets the object creation handling used when deserializing this property. - - The object creation handling. - - - - Gets or sets the type name handling used when serializing this property. - - The type name handling. - - - - Gets or sets whether this property's value is serialized as a reference. - - Whether this property's value is serialized as a reference. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets a value indicating whether this property is required. - - - A value indicating whether this property is required. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - Gets or sets the the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified name. - - Name of the property. - - - - Instructs the not to serialize the public field or public read/write property value. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the writer's character array pool. - - - - - Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. - - - - - Gets or sets which character to use to quote attribute values. - - - - - Gets or sets which character to use for indenting when is set to Formatting.Indented. - - - - - Gets or sets a value indicating whether object names will be surrounded with quotes. - - - - - Creates an instance of the JsonWriter class using the specified . - - The TextWriter to write to. - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the specified end token. - - The end token to write. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes out the given white space. - - The string of white space characters. - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Converts an object to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can read JSON. - - true if this can read JSON; otherwise, false. - - - - Gets a value indicating whether this can write JSON. - - true if this can write JSON; otherwise, false. - - - - Represents a collection of . - - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Specifies the state of the reader. - - - - - The Read method has not been called. - - - - - The end of the file has been reached successfully. - - - - - Reader is at a property. - - - - - Reader is at the start of an object. - - - - - Reader is in an object. - - - - - Reader is at the start of an array. - - - - - Reader is in an array. - - - - - The Close method has been called. - - - - - Reader has just read a value. - - - - - Reader is at the start of a constructor. - - - - - Reader in a constructor. - - - - - An error occurred that prevents the read operation from continuing. - - - - - The end of the file has been reached successfully. - - - - - Gets the current reader state. - - The current reader state. - - - - Gets or sets a value indicating whether the underlying stream or - should be closed when the reader is closed. - - - true to close the underlying stream or when - the reader is closed; otherwise false. The default is true. - - - - - Gets or sets a value indicating whether multiple pieces of JSON content can - be read from a continuous stream without erroring. - - - true to support reading multiple pieces of JSON content; otherwise false. The default is false. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - Get or set how time zones are handling when reading JSON. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how custom date formatted strings are parsed when reading JSON. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets the type of the current JSON token. - - - - - Gets the text value of the current JSON token. - - - - - Gets The Common Language Runtime (CLR) type for the current JSON token. - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Initializes a new instance of the class with the specified . - - - - - Reads the next JSON token from the stream. - - true if the next token was read successfully; false if there are no more tokens to read. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a []. - - A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Skips the children of the current token. - - - - - Sets the current token. - - The new token. - - - - Sets the current token and value. - - The new token. - The value. - - - - Sets the state based on current token type. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Changes the to Closed. - - - - - Provides methods for converting between common language runtime types and JSON types. - - - - - - - - Gets or sets a function that creates default . - Default settings are automatically used by serialization methods on , - and and on . - To serialize without using any default settings create a with - . - - - - - Represents JavaScript's boolean value true as a string. This field is read-only. - - - - - Represents JavaScript's boolean value false as a string. This field is read-only. - - - - - Represents JavaScript's null as a string. This field is read-only. - - - - - Represents JavaScript's undefined as a string. This field is read-only. - - - - - Represents JavaScript's positive infinity as a string. This field is read-only. - - - - - Represents JavaScript's negative infinity as a string. This field is read-only. - - - - - Represents JavaScript's NaN as a string. This field is read-only. - - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - The time zone handling when the date is converted to a string. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - The string escape handling. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Serializes the specified object to a JSON string. - - The object to serialize. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting. - - The object to serialize. - Indicates how the output is formatted. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a collection of . - - The object to serialize. - A collection converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting and a collection of . - - The object to serialize. - Indicates how the output is formatted. - A collection converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using formatting and . - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - A JSON string representation of the object. - - - - - Deserializes the JSON to a .NET object. - - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to a .NET object using . - - The JSON to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The JSON to deserialize. - The of object being deserialized. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The type of the object to deserialize to. - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the given anonymous type. - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be infered from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the given anonymous type using . - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be infered from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The type of the object to deserialize to. - The JSON to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The type of the object to deserialize to. - The object to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The JSON to deserialize. - The type of the object to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The JSON to deserialize. - The type of the object to deserialize to. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Populates the object with values from the JSON string. - - The JSON to populate values from. - The target object to populate values onto. - - - - Populates the object with values from the JSON string using . - - The JSON to populate values from. - The target object to populate values onto. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - - - Serializes the XML node to a JSON string. - - The node to serialize. - A JSON string of the XmlNode. - - - - Serializes the XML node to a JSON string using formatting. - - The node to serialize. - Indicates how the output is formatted. - A JSON string of the XmlNode. - - - - Serializes the XML node to a JSON string using formatting and omits the root object if is true. - - The node to serialize. - Indicates how the output is formatted. - Omits writing the root object. - A JSON string of the XmlNode. - - - - Deserializes the XmlNode from a JSON string. - - The JSON string. - The deserialized XmlNode - - - - Deserializes the XmlNode from a JSON string nested in a root elment specified by . - - The JSON string. - The name of the root element to append when deserializing. - The deserialized XmlNode - - - - Deserializes the XmlNode from a JSON string nested in a root elment specified by - and writes a .NET array attribute for collections. - - The JSON string. - The name of the root element to append when deserializing. - - A flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - The deserialized XmlNode - - - - Serializes the to a JSON string. - - The node to convert to JSON. - A JSON string of the XNode. - - - - Serializes the to a JSON string using formatting. - - The node to convert to JSON. - Indicates how the output is formatted. - A JSON string of the XNode. - - - - Serializes the to a JSON string using formatting and omits the root object if is true. - - The node to serialize. - Indicates how the output is formatted. - Omits writing the root object. - A JSON string of the XNode. - - - - Deserializes the from a JSON string. - - The JSON string. - The deserialized XNode - - - - Deserializes the from a JSON string nested in a root elment specified by . - - The JSON string. - The name of the root element to append when deserializing. - The deserialized XNode - - - - Deserializes the from a JSON string nested in a root elment specified by - and writes a .NET array attribute for collections. - - The JSON string. - The name of the root element to append when deserializing. - - A flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - The deserialized XNode - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Serializes and deserializes objects into and from the JSON format. - The enables you to control how objects are encoded into JSON. - - - - - Occurs when the errors during serialization and deserialization. - - - - - Gets or sets the used by the serializer when resolving references. - - - - - Gets or sets the used by the serializer when resolving type names. - - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets how type name writing and reading is handled by the serializer. - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - - The type name assembly format. - - - - Gets or sets how object references are preserved by the serializer. - - - - - Get or set how reference loops (e.g. a class referencing itself) is handled. - - - - - Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - - - - - Get or set how null values are handled during serialization and deserialization. - - - - - Get or set how null default are handled during serialization and deserialization. - - - - - Gets or sets how objects are created during deserialization. - - The object creation handling. - - - - Gets or sets how constructors are used during deserialization. - - The constructor handling. - - - - Gets or sets how metadata properties are used during deserialization. - - The metadata properties handling. - - - - Gets a collection that will be used during serialization. - - Collection that will be used during serialization. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling during serialization and deserialization. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written as JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. - - - true if there will be a check for additional JSON content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Creates a new instance. - The will not use default settings - from . - - - A new instance. - The will not use default settings - from . - - - - - Creates a new instance using the specified . - The will not use default settings - from . - - The settings to be applied to the . - - A new instance using the specified . - The will not use default settings - from . - - - - - Creates a new instance. - The will use default settings - from . - - - A new instance. - The will use default settings - from . - - - - - Creates a new instance using the specified . - The will use default settings - from as well as the specified . - - The settings to be applied to the . - - A new instance using the specified . - The will use default settings - from as well as the specified . - - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to reader values from. - The target object to populate values onto. - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to reader values from. - The target object to populate values onto. - - - - Deserializes the JSON structure contained by the specified . - - The that contains the JSON structure to deserialize. - The being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The type of the object to deserialize. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Specifies missing member handling options for the . - - - - - Ignore a missing member and do not attempt to deserialize it. - - - - - Throw a when a missing member is encountered during deserialization. - - - - - Specifies null value handling options for the . - - - - - - - - - Include null values when serializing and deserializing objects. - - - - - Ignore null values when serializing and deserializing objects. - - - - - Specifies reference loop handling options for the . - - - - - Throw a when a loop is encountered. - - - - - Ignore loop references and do not serialize. - - - - - Serialize loop references. - - - - - Specifies type name handling options for the . - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - - - - Do not include the .NET type name when serializing types. - - - - - Include the .NET type name when serializing into a JSON object structure. - - - - - Include the .NET type name when serializing into a JSON array structure. - - - - - Always include the .NET type name when serializing. - - - - - Include the .NET type name when the type of the object being serialized is not the same as its declared type. - - - - - Specifies the type of JSON token. - - - - - This is returned by the if a method has not been called. - - - - - An object start token. - - - - - An array start token. - - - - - A constructor start token. - - - - - An object property name. - - - - - A comment. - - - - - Raw JSON. - - - - - An integer. - - - - - A float. - - - - - A string. - - - - - A boolean. - - - - - A null token. - - - - - An undefined token. - - - - - An object end token. - - - - - An array end token. - - - - - A constructor end token. - - - - - A Date. - - - - - Byte data. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets a value indicating whether the underlying stream or - should be closed when the writer is closed. - - - true to close the underlying stream or when - the writer is closed; otherwise false. The default is true. - - - - - Gets the top. - - The top. - - - - Gets the state of the writer. - - - - - Gets the path of the writer. - - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling when writing JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written to JSON text. - - - - - Get or set how and values are formatting when writing JSON text. - - - - - Gets or sets the culture used when writing JSON. Defaults to . - - - - - Creates an instance of the JsonWriter class. - - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the end of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the end of an array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end constructor. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes the end of the current JSON object or array. - - - - - Writes the current token and its children. - - The to read the token from. - - - - Writes the current token. - - The to read the token from. - A flag indicating whether the current token's children should be written. - - - - Writes the token and its value. - - The to write. - - The value to write. - A value is only required for tokens that have an associated value, e.g. the property name for . - A null value can be passed to the method for token's that don't have a value, e.g. . - - - - Writes the token. - - The to write. - - - - Writes the specified end token. - - The end token to write. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON without changing the writer's state. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes out the given white space. - - The string of white space characters. - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Sets the state of the JsonWriter, - - The JsonToken being written. - The value being written. - - - - Specifies the state of the . - - - - - An exception has been thrown, which has left the in an invalid state. - You may call the method to put the in the Closed state. - Any other method calls results in an being thrown. - - - - - The method has been called. - - - - - An object is being written. - - - - - A array is being written. - - - - - A constructor is being written. - - - - - A property is being written. - - - - - A write method has not been called. - - - - + + + + Newtonsoft.Json + + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The stream. + + + + Initializes a new instance of the class. + + The reader. + + + + Initializes a new instance of the class. + + The stream. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The reader. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the stream. + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the to Closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The stream. + + + + Initializes a new instance of the class. + + The writer. + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this stream and the underlying stream. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Create a custom object + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + + + + + + + + + + + + + + + + + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets a value indicating whether integer values are allowed. + + true if integers are allowed; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Json Converter for Vector2, Vector3 and Vector4. Only serializes x, y, (z) and (w) properties. + + + + + Default Constructor - All Vector types enabled by default + + + + + Selectively enable Vector types + + Use for Vector2 objects + Use for Vector3 objects + Use for Vector4 objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. + + The name of the deserialize root element. + + + + Gets or sets a flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attibute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the attributeName is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + True if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a paramatized constructor. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent a array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the to always serialize the member, and require the member has a value. + + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. When the or methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + Specifies the settings used when loading JSON. + + + + + Gets or sets how JSON comments are handled when loading JSON. + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + + The JSON line info handling. + + + + Specifies the settings used when merging JSON. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how how null value properties are merged. + + How null value properties are merged. + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Represents a raw JSON string. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Represents a collection of objects. + + The type of token + + + + Gets the with the specified key. + + + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a JSON constructor. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates an that can be used to add tokens to the . + + An that is ready to have content written to it. + + + + Replaces the children nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens + + + + Represents a collection of objects. + + The type of token + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Gets the with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of this object's properties. + + An of this object's properties. + + + + Gets a the specified name. + + The property name. + A with the specified name or null. + + + + Gets an of this object's property values. + + An of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries the get value. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the properties for this instance of a component. + + + A that represents the properties for this component instance. + + + + + Returns the properties for this instance of a component using the attribute array as a filter. + + An array of type that is used as a filter. + + A that represents the filtered properties for this component instance. + + + + + Returns a collection of custom attributes for this instance of a component. + + + An containing the attributes for this object. + + + + + Returns the class name of this instance of a component. + + + The class name of the object, or null if the class does not have a name. + + + + + Returns the name of this instance of a component. + + + The name of the object, or null if the object does not have a name. + + + + + Returns a type converter for this instance of a component. + + + A that is the converter for this object, or null if there is no for this object. + + + + + Returns the default event for this instance of a component. + + + An that represents the default event for this object, or null if this object does not have events. + + + + + Returns the default property for this instance of a component. + + + A that represents the default property for this object, or null if this object does not have properties. + + + + + Returns an editor of the specified type for this instance of a component. + + A that represents the editor for this object. + + An of the specified type that is the editor for this object, or null if the editor cannot be found. + + + + + Returns the events for this instance of a component using the specified attribute array as a filter. + + An array of type that is used as a filter. + + An that represents the filtered events for this component instance. + + + + + Returns the events for this instance of a component. + + + An that represents the events for this component instance. + + + + + Returns an object that contains the property described by the specified property descriptor. + + A that represents the property whose owner is to be found. + + An that represents the owner of the specified property. + + + + + Represents a JSON array. + + + + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + The is read-only. + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + The is read-only. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + The is read-only. + + + + Removes all items from the . + + The is read-only. + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + The is read-only. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Reads the next JSON token from the stream. + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being writen. + + The token being writen. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Closes this stream and the underlying stream. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents an abstract JSON token. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output is formatted. + A collection of which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Creates an for this token. + + An that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object + + + + Creates the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + An positioned at the token to read into this . + + An that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + An that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + An that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + + An that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A , or null. + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + An that contains the selected elements. + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An that contains the selected elements. + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Represents a JSON property. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + The parameter is null. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not the same type as this instance. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Represents a trace writer that writes to the application's instances. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of Info will exclude Verbose messages and include Info, + Warning and Error messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of Info will exclude Verbose messages and include Info, + Warning and Error messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of Info will exclude Verbose messages and include Info, + Warning and Error messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Contract details for a used by the . + + + + + Gets or sets the ISerializable object constructor. + + The ISerializable object constructor. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the name of the property. + + Name of the property. + The property name camel cased. + + + + Used by to resolves a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + If set to true the will use a cached shared with other resolvers of the same type. + Sharing the cache will significantly improve performance with multiple resolver instances because expensive reflection will only + happen once. This setting can cause unexpected behavior if different instances of the resolver are suppose to produce different + results. When set to false it is highly recommended to reuse instances with the . + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Used by to resolves a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the method called immediately after deserialization of the object. + + The method called immediately after deserialization of the object. + + + + Gets or sets the method called during deserialization of the object. + + The method called during deserialization of the object. + + + + Gets or sets the method called after serialization of the object graph. + + The method called after serialization of the object graph. + + + + Gets or sets the method called before serialization of the object. + + The method called before serialization of the object. + + + + Gets or sets the method called when an error is thrown during the serialization of the object. + + The method called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes presidence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialize. + + A predicate used to determine whether the property should be serialize. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of propertyName and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that + + + + Gets the reference for the sepecified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets the object's properties. + + The object's properties. + + + + Gets the constructor parameters required for any non-default constructor + + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the override constructor used to create the object. + This is set when a constructor is marked up using the + JsonConstructor attribute. + + The override constructor. + + + + Gets or sets the parametrized constructor used to create the object. + + The parametrized constructor. + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the JsonConverter type described by the argument. + + The JsonConverter type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + Create a factory function that can be used to create instances of a JsonConverter described by the + argument type. The returned function can then be used to either invoke the converter's default ctor, or any + parameterized constructors by way of an object array. + + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Represents a method that constructs an object. + + The object type to create. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Gets a dictionary of the names and values of an Enum type. + + + + + + Gets a dictionary of the names and values of an Enum type. + + The enum type to get names and values for. + + + + + Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic IList. + + The list to add to. + The collection of elements to add. + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the member is an indexed property. + + The member. + + true if the member is an indexed property; otherwise, false. + + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Nulls an empty string. + + The string. + Null if the string was null, otherwise the string unchanged. + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement ISerializable. + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if LineNumber and LinePosition can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, HasLineInfo returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, HasLineInfo returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the JsonConverter described by ItemConverterType. + If null, the default constructor is used. + When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, + order, and type of these parameters. + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that is is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and sets members to their default value when deserializing. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the converter. + + The of the converter. + + + + The parameter list to use when constructing the JsonConverter described by ConverterType. + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the converter. + + + + Initializes a new instance of the class. + + Type of the converter. + Parameter list to use when constructing the JsonConverter. Can be null. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + + Null value handling. + + + + Gets or sets how null default are handled during serialization and deserialization. + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than TypeNameHandling.None. + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Indicates how JSON text output is formatted. + + + + + Get or set how dates are written to JSON text. + + + + + Get or set how time zones are handling during serialization and deserialization. + + + + + Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Get or set how special floating point numbers, e.g. , + and , + are written as JSON. + + + + + Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Get or set how strings are escaped when writing JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Initializes a new instance of the class with the specified . + + The TextReader containing the XML data to read. + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the stream. + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a []. + + A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Changes the state to closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if LineNumber and LinePosition can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, HasLineInfo returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, HasLineInfo returns false). + + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + The parameter list to use when constructing the JsonConverter described by ItemConverterType. + If null, the default constructor is used. + When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, + order, and type of these parameters. + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to Formatting.Indented. + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Creates an instance of the JsonWriter class using the specified . + + The TextWriter to write to. + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Closes this stream and the underlying stream. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes out the given white space. + + The string of white space characters. + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Represents a collection of . + + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Specifies the state of the reader. + + + + + The Read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The Close method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the underlying stream or + should be closed when the reader is closed. + + + true to close the underlying stream or when + the reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Get or set how time zones are handling when reading JSON. + + + + + Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Get or set how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets The Common Language Runtime (CLR) type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class with the specified . + + + + + Reads the next JSON token from the stream. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a []. + + A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the state based on current token type. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the to Closed. + + + + + Provides methods for converting between common language runtime types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output is formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output is formatted. + A collection converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifing the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output is formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output is formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifing the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be infered from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be infered from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the XML node to a JSON string. + + The node to serialize. + A JSON string of the XmlNode. + + + + Serializes the XML node to a JSON string using formatting. + + The node to serialize. + Indicates how the output is formatted. + A JSON string of the XmlNode. + + + + Serializes the XML node to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output is formatted. + Omits writing the root object. + A JSON string of the XmlNode. + + + + Deserializes the XmlNode from a JSON string. + + The JSON string. + The deserialized XmlNode + + + + Deserializes the XmlNode from a JSON string nested in a root elment specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized XmlNode + + + + Deserializes the XmlNode from a JSON string nested in a root elment specified by + and writes a .NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized XmlNode + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the XNode. + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output is formatted. + A JSON string of the XNode. + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output is formatted. + Omits writing the root object. + A JSON string of the XNode. + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized XNode + + + + Deserializes the from a JSON string nested in a root elment specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized XNode + + + + Deserializes the from a JSON string nested in a root elment specified by + and writes a .NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized XNode + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than TypeNameHandling.None. + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + + + + + Get or set how reference loops (e.g. a class referencing itself) is handled. + + + + + Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + + + + Get or set how null values are handled during serialization and deserialization. + + + + + Get or set how null default are handled during serialization and deserialization. + + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + + + + + Get or set how dates are written to JSON text. + + + + + Get or set how time zones are handling during serialization and deserialization. + + + + + Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Get or set how special floating point numbers, e.g. , + and , + are written as JSON text. + + + + + Get or set how strings are escaped when writing JSON text. + + + + + Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + to a Stream using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + to a Stream using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifing the type is optional. + + + + + Serializes the specified and writes the JSON structure + to a Stream using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifing the type is optional. + + + + + Serializes the specified and writes the JSON structure + to a Stream using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than TypeNameHandling.None. + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + + + + + Specifies the type of JSON token. + + + + + This is returned by the if a method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets or sets a value indicating whether the underlying stream or + should be closed when the writer is closed. + + + true to close the underlying stream or when + the writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Indicates how JSON text output is formatted. + + + + + Get or set how dates are written to JSON text. + + + + + Get or set how time zones are handling when writing JSON text. + + + + + Get or set how strings are escaped when writing JSON text. + + + + + Get or set how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Get or set how and values are formatting when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Creates an instance of the JsonWriter class. + + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Closes this stream and the underlying stream. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + A null value can be passed to the method for token's that don't have a value, e.g. . + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes out the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the JsonWriter, + + The JsonToken being written. + The value being written. + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls results in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + A array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + diff --git a/Assets/JsonDotNet/Assemblies/Standalone/Newtonsoft.Json.XML b/Assets/JsonDotNet/Assemblies/Standalone/Newtonsoft.Json.XML index 4dbcd9e..f5a5a04 100644 --- a/Assets/JsonDotNet/Assemblies/Standalone/Newtonsoft.Json.XML +++ b/Assets/JsonDotNet/Assemblies/Standalone/Newtonsoft.Json.XML @@ -1,8040 +1,8040 @@ - - - - Newtonsoft.Json - - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. - - - true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. - - - - - Gets or sets a value indicating whether the root object will be read as a JSON array. - - - true if the root object will be read as a JSON array; otherwise, false. - - - - - Gets or sets the used when reading values from BSON. - - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The stream. - - - - Initializes a new instance of the class. - - The reader. - - - - Initializes a new instance of the class. - - The stream. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The reader. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Changes the to Closed. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the used when writing values to BSON. - When set to no conversion will occur. - - The used when writing values to BSON. - - - - Initializes a new instance of the class. - - The stream. - - - - Initializes a new instance of the class. - - The writer. - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Writes the end. - - The token. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes the beginning of a JSON array. - - - - - Writes the beginning of a JSON object. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Closes this stream and the underlying stream. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value that represents a BSON object id. - - The Object ID value to write. - - - - Writes a BSON regex. - - The regex pattern. - The regex options. - - - - Represents a BSON Oid (object id). - - - - - Gets or sets the value of the Oid. - - The value of the Oid. - - - - Initializes a new instance of the class. - - The Oid value. - - - - Converts a binary value to and from a base 64 string value. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Create a custom object - - The object type to convert. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Creates an object which will then be populated by the serializer. - - Type of the object. - The created object. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can write JSON. - - - true if this can write JSON; otherwise, false. - - - - - Provides a base class for converting a to and from JSON. - - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - - - - - - - - - - - - - - - - - - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an to and from its name string value. - - - - - Gets or sets a value indicating whether the written enum text should be camel case. - - true if the written enum text will be camel case; otherwise, false. - - - - Gets or sets a value indicating whether integer values are allowed. - - true if integers are allowed; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - true if the written enum text will be camel case; otherwise, false. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Json Converter for Vector2, Vector3 and Vector4. Only serializes x, y, (z) and (w) properties. - - - - - Default Constructor - All Vector types enabled by default - - - - - Selectively enable Vector types - - Use for Vector2 objects - Use for Vector3 objects - Use for Vector4 objects - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Converts a to and from a string (e.g. "1.2.3.4"). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). - - - - - Gets or sets the date time styles used when converting a date to and from JSON. - - The date time styles used when converting a date to and from JSON. - - - - Gets or sets the date time format used when converting a date to and from JSON. - - The date time format used when converting a date to and from JSON. - - - - Gets or sets the culture used when converting a date to and from JSON. - - The culture used when converting a date to and from JSON. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Converts XML to and from JSON. - - - - - Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. - - The name of the deserialize root element. - - - - Gets or sets a flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - true if the array attibute is written to the XML; otherwise, false. - - - - Gets or sets a value indicating whether to write the root JSON object. - - true if the JSON root object is omitted; otherwise, false. - - - - Writes the JSON representation of the object. - - The to write to. - The calling serializer. - The value. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Checks if the attributeName is a namespace attribute. - - Attribute name to test. - The attribute name prefix if it has one, otherwise an empty string. - True if attribute name is for a namespace attribute, otherwise false. - - - - Determines whether this instance can convert the specified value type. - - Type of the value. - - true if this instance can convert the specified value type; otherwise, false. - - - - - Specifies how constructors are used when initializing objects during deserialization by the . - - - - - First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. - - - - - Json.NET will use a non-public default constructor before falling back to a paramatized constructor. - - - - - Specifies how dates are formatted when writing JSON text. - - - - - Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". - - - - - Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". - - - - - Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. - - - - - Date formatted strings are not parsed to a date type and are read as strings. - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Specifies how to treat the time value when converting between string and . - - - - - Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. - - - - - Treat as a UTC. If the object represents a local time, it is converted to a UTC. - - - - - Treat as a local time if a is being converted to a string. - If a string is being converted to , convert to a local time if a time zone is specified. - - - - - Time zone information should be preserved when converting. - - - - - Specifies float format handling options when writing special floating point numbers, e.g. , - and with . - - - - - Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". - - - - - Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. - Note that this will produce non-valid JSON. - - - - - Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a property. - - - - - Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Floating point numbers are parsed to . - - - - - Floating point numbers are parsed to . - - - - - Specifies formatting options for the . - - - - - No special formatting is applied. This is the default. - - - - - Causes child objects to be indented according to the and settings. - - - - - Provides an interface for using pooled arrays. - - The array type content. - - - - Rent a array from the pool. This array must be returned when it is no longer needed. - - The minimum required length of the array. The returned array may be longer. - The rented array from the pool. This array must be returned when it is no longer needed. - - - - Return an array to the pool. - - The array that is being returned. - - - - Instructs the to use the specified constructor when deserializing that object. - - - - - Instructs the how to serialize the collection. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Instructs the to deserialize properties with no matching class member into the specified collection - and write values during serialization. - - - - - Gets or sets a value that indicates whether to write extension data when serializing the object. - - - true to write extension data when serializing the object; otherwise, false. The default is true. - - - - - Gets or sets a value that indicates whether to read extension data when deserializing the object. - - - true to read extension data when deserializing the object; otherwise, false. The default is true. - - - - - Initializes a new instance of the class. - - - - - Instructs the to always serialize the member, and require the member has a value. - - - - - Specifies how JSON comments are handled when loading JSON. - - - - - Ignore comments. - - - - - Load comments as a with type . - - - - - Specifies how line information is handled when loading JSON. - - - - - Ignore line information. - - - - - Load line information. - - - - - Represents a view of a . - - - - - Initializes a new instance of the class. - - The name. - - - - When overridden in a derived class, returns whether resetting an object changes its value. - - - true if resetting the component changes its value; otherwise, false. - - The component to test for reset capability. - - - - - When overridden in a derived class, gets the current value of the property on a component. - - - The value of a property for a given component. - - The component with the property for which to retrieve the value. - - - - - When overridden in a derived class, resets the value for this property of the component to the default value. - - The component with the property value that is to be reset to the default value. - - - - - When overridden in a derived class, sets the value of the component to a different value. - - The component with the property value that is to be set. - The new value. - - - - - When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. - - - true if the property should be persisted; otherwise, false. - - The component with the property to be examined for persistence. - - - - - When overridden in a derived class, gets the type of the component this property is bound to. - - - A that represents the type of component this property is bound to. When the or methods are invoked, the object specified might be an instance of this type. - - - - - When overridden in a derived class, gets a value indicating whether this property is read-only. - - - true if the property is read-only; otherwise, false. - - - - - When overridden in a derived class, gets the type of the property. - - - A that represents the type of the property. - - - - - Gets the hash code for the name of the member. - - - - The hash code for the name of the member. - - - - - Specifies the settings used when loading JSON. - - - - - Gets or sets how JSON comments are handled when loading JSON. - - The JSON comment handling. - - - - Gets or sets how JSON line info is handled when loading JSON. - - The JSON line info handling. - - - - Specifies the settings used when merging JSON. - - - - - Gets or sets the method used when merging JSON arrays. - - The method used when merging JSON arrays. - - - - Gets or sets how how null value properties are merged. - - How null value properties are merged. - - - - Specifies how JSON arrays are merged together. - - - - Concatenate arrays. - - - Union arrays, skipping items that already exist. - - - Replace all array items. - - - Merge array items together, matched by index. - - - - Specifies how null value properties are merged. - - - - - The content's null value properties will be ignored during merging. - - - - - The content's null value properties will be merged. - - - - - Represents a raw JSON string. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class. - - The raw json. - - - - Creates an instance of with the content of the reader's current token. - - The reader. - An instance of with the content of the reader's current token. - - - - Represents a collection of objects. - - The type of token - - - - Gets the with the specified key. - - - - - - Compares tokens to determine whether they are equal. - - - - - Determines whether the specified objects are equal. - - The first object of type to compare. - The second object of type to compare. - - true if the specified objects are equal; otherwise, false. - - - - - Returns a hash code for the specified object. - - The for which a hash code is to be returned. - A hash code for the specified object. - The type of is a reference type and is null. - - - - Contains the LINQ to JSON extension methods. - - - - - Returns a collection of tokens that contains the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the descendants of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, and the descendants of every token in the source collection. - - - - Returns a collection of child properties of every object in the source collection. - - An of that contains the source collection. - An of that contains the properties of every object in the source collection. - - - - Returns a collection of child values of every object in the source collection with the given key. - - An of that contains the source collection. - The token key. - An of that contains the values of every token in the source collection with the given key. - - - - Returns a collection of child values of every object in the source collection. - - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child values of every object in the source collection with the given key. - - The type to convert the values to. - An of that contains the source collection. - The token key. - An that contains the converted values of every token in the source collection with the given key. - - - - Returns a collection of converted child values of every object in the source collection. - - The type to convert the values to. - An of that contains the source collection. - An that contains the converted values of every token in the source collection. - - - - Converts the value. - - The type to convert the value to. - A cast as a of . - A converted value. - - - - Converts the value. - - The source collection type. - The type to convert the value to. - A cast as a of . - A converted value. - - - - Returns a collection of child tokens of every array in the source collection. - - The source collection type. - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child tokens of every array in the source collection. - - An of that contains the source collection. - The type to convert the values to. - The source collection type. - An that contains the converted values of every token in the source collection. - - - - Returns the input typed as . - - An of that contains the source collection. - The input typed as . - - - - Returns the input typed as . - - The source collection type. - An of that contains the source collection. - The input typed as . - - - - Represents a JSON constructor. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets or sets the name of this constructor. - - The constructor name. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name. - - The constructor name. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Represents a token that can contain other tokens. - - - - - Occurs when the list changes or an item in the list changes. - - - - - Occurs before an item is added to the collection. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Raises the event. - - The instance containing the event data. - - - - Raises the event. - - The instance containing the event data. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Get the first child token of this token. - - - A containing the first child token of the . - - - - - Get the last child token of this token. - - - A containing the last child token of the . - - - - - Returns a collection of the child tokens of this token, in document order. - - - An of containing the child tokens of this , in document order. - - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - - A containing the child values of this , in document order. - - - - - Returns a collection of the descendant tokens for this token in document order. - - An containing the descendant tokens of the . - - - - Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. - - An containing this token, and all the descendant tokens of the . - - - - Adds the specified content as children of this . - - The content to be added. - - - - Adds the specified content as the first children of this . - - The content to be added. - - - - Creates an that can be used to add tokens to the . - - An that is ready to have content written to it. - - - - Replaces the children nodes of this token with the specified content. - - The content. - - - - Removes the child nodes from this token. - - - - - Merge the specified content into this . - - The content to be merged. - - - - Merge the specified content into this using . - - The content to be merged. - The used to merge the content. - - - - Gets the count of child JSON tokens. - - The count of child JSON tokens - - - - Represents a collection of objects. - - The type of token - - - - An empty collection of objects. - - - - - Initializes a new instance of the struct. - - The enumerable. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - - - - Gets the with the specified key. - - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Returns a hash code for this instance. - - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - Represents a JSON object. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Occurs when a property value changes. - - - - - Occurs when a property value is changing. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Gets the node type for this . - - The type. - - - - Gets an of this object's properties. - - An of this object's properties. - - - - Gets a the specified name. - - The property name. - A with the specified name or null. - - - - Gets an of this object's property values. - - An of this object's property values. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the with the specified property name. - - - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified property name. - - Name of the property. - The with the specified property name. - - - - Gets the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - One of the enumeration values that specifies how the strings will be compared. - The with the specified property name. - - - - Tries to get the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - The value. - One of the enumeration values that specifies how the strings will be compared. - true if a value was successfully retrieved; otherwise, false. - - - - Adds the specified property name. - - Name of the property. - The value. - - - - Removes the property with the specified name. - - Name of the property. - true if item was successfully removed; otherwise, false. - - - - Tries the get value. - - Name of the property. - The value. - true if a value was successfully retrieved; otherwise, false. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Raises the event with the provided arguments. - - Name of the property. - - - - Raises the event with the provided arguments. - - Name of the property. - - - - Returns the properties for this instance of a component. - - - A that represents the properties for this component instance. - - - - - Returns the properties for this instance of a component using the attribute array as a filter. - - An array of type that is used as a filter. - - A that represents the filtered properties for this component instance. - - - - - Returns a collection of custom attributes for this instance of a component. - - - An containing the attributes for this object. - - - - - Returns the class name of this instance of a component. - - - The class name of the object, or null if the class does not have a name. - - - - - Returns the name of this instance of a component. - - - The name of the object, or null if the object does not have a name. - - - - - Returns a type converter for this instance of a component. - - - A that is the converter for this object, or null if there is no for this object. - - - - - Returns the default event for this instance of a component. - - - An that represents the default event for this object, or null if this object does not have events. - - - - - Returns the default property for this instance of a component. - - - A that represents the default property for this object, or null if this object does not have properties. - - - - - Returns an editor of the specified type for this instance of a component. - - A that represents the editor for this object. - - An of the specified type that is the editor for this object, or null if the editor cannot be found. - - - - - Returns the events for this instance of a component using the specified attribute array as a filter. - - An array of type that is used as a filter. - - An that represents the filtered events for this component instance. - - - - - Returns the events for this instance of a component. - - - An that represents the events for this component instance. - - - - - Returns an object that contains the property described by the specified property descriptor. - - A that represents the property whose owner is to be found. - - An that represents the owner of the specified property. - - - - - Represents a JSON array. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the at the specified index. - - - - - - Determines the index of a specific item in the . - - The object to locate in the . - - The index of if found in the list; otherwise, -1. - - - - - Inserts an item to the at the specified index. - - The zero-based index at which should be inserted. - The object to insert into the . - - is not a valid index in the . - The is read-only. - - - - Removes the item at the specified index. - - The zero-based index of the item to remove. - - is not a valid index in the . - The is read-only. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Adds an item to the . - - The object to add to the . - The is read-only. - - - - Removes all items from the . - - The is read-only. - - - - Determines whether the contains a specific value. - - The object to locate in the . - - true if is found in the ; otherwise, false. - - - - - Copies to. - - The array. - Index of the array. - - - - Gets a value indicating whether the is read-only. - - true if the is read-only; otherwise, false. - - - - Removes the first occurrence of a specific object from the . - - The object to remove from the . - - true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . - - The is read-only. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets the at the reader's current position. - - - - - Initializes a new instance of the class. - - The token to read from. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Gets the path of the current JSON token. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets the at the writer's current position. - - - - - Gets the token being writen. - - The token being writen. - - - - Initializes a new instance of the class writing to the given . - - The container being written to. - - - - Initializes a new instance of the class. - - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end. - - The token. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Represents an abstract JSON token. - - - - - Gets a comparer that can compare two tokens for value equality. - - A that can compare two nodes for value equality. - - - - Gets or sets the parent. - - The parent. - - - - Gets the root of this . - - The root of this . - - - - Gets the node type for this . - - The type. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Compares the values of two tokens, including the values of all descendant tokens. - - The first to compare. - The second to compare. - true if the tokens are equal; otherwise false. - - - - Gets the next sibling token of this node. - - The that contains the next sibling token. - - - - Gets the previous sibling token of this node. - - The that contains the previous sibling token. - - - - Gets the path of the JSON token. - - - - - Adds the specified content immediately after this token. - - A content object that contains simple content or a collection of content objects to be added after this token. - - - - Adds the specified content immediately before this token. - - A content object that contains simple content or a collection of content objects to be added before this token. - - - - Returns a collection of the ancestor tokens of this token. - - A collection of the ancestor tokens of this token. - - - - Returns a collection of tokens that contain this token, and the ancestors of this token. - - A collection of tokens that contain this token, and the ancestors of this token. - - - - Returns a collection of the sibling tokens after this token, in document order. - - A collection of the sibling tokens after this tokens, in document order. - - - - Returns a collection of the sibling tokens before this token, in document order. - - A collection of the sibling tokens before this token, in document order. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets the with the specified key converted to the specified type. - - The type to convert the token to. - The token key. - The converted token value. - - - - Get the first child token of this token. - - A containing the first child token of the . - - - - Get the last child token of this token. - - A containing the last child token of the . - - - - Returns a collection of the child tokens of this token, in document order. - - An of containing the child tokens of this , in document order. - - - - Returns a collection of the child tokens of this token, in document order, filtered by the specified type. - - The type to filter the child tokens on. - A containing the child tokens of this , in document order. - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - A containing the child values of this , in document order. - - - - Removes this token from its parent. - - - - - Replaces this token with the specified token. - - The value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Returns the indented JSON for this token. - - - The indented JSON for this token. - - - - - Returns the JSON for this token using the given formatting and converters. - - Indicates how the output is formatted. - A collection of which will be used when writing the token. - The JSON for this token using the given formatting and converters. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to []. - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from [] to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Creates an for this token. - - An that can be used to read this token and its descendants. - - - - Creates a from an object. - - The object that will be used to create . - A with the value of the specified object - - - - Creates a from an object using the specified . - - The object that will be used to create . - The that will be used when reading the object. - A with the value of the specified object - - - - Creates the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates a from a . - - An positioned at the token to read into this . - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Selects a using a JPath expression. Selects the token that matches the object path. - - - A that contains a JPath expression. - - A , or null. - - - - Selects a using a JPath expression. Selects the token that matches the object path. - - - A that contains a JPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - A . - - - - Selects a collection of elements using a JPath expression. - - - A that contains a JPath expression. - - An that contains the selected elements. - - - - Selects a collection of elements using a JPath expression. - - - A that contains a JPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - An that contains the selected elements. - - - - Creates a new instance of the . All child tokens are recursively cloned. - - A new instance of the . - - - - Adds an object to the annotation list of this . - - The annotation to add. - - - - Get the first annotation object of the specified type from this . - - The type of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets the first annotation object of the specified type from this . - - The of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets a collection of annotations of the specified type for this . - - The type of the annotations to retrieve. - An that contains the annotations for this . - - - - Gets a collection of annotations of the specified type for this . - - The of the annotations to retrieve. - An of that contains the annotations that match the specified type for this . - - - - Removes the annotations of the specified type from this . - - The type of annotations to remove. - - - - Removes the annotations of the specified type from this . - - The of annotations to remove. - - - - Represents a JSON property. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the property name. - - The property name. - - - - Gets or sets the property value. - - The property value. - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Specifies the type of token. - - - - - No token type has been set. - - - - - A JSON object. - - - - - A JSON array. - - - - - A JSON constructor. - - - - - A JSON object property. - - - - - A comment. - - - - - An integer value. - - - - - A float value. - - - - - A string value. - - - - - A boolean value. - - - - - A null value. - - - - - An undefined value. - - - - - A date value. - - - - - A raw JSON value. - - - - - A collection of bytes value. - - - - - A Guid value. - - - - - A Uri value. - - - - - A TimeSpan value. - - - - - Represents a value in JSON (string, integer, date, etc). - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Creates a comment with the given value. - - The value. - A comment with the given value. - - - - Creates a string with the given value. - - The value. - A string with the given value. - - - - Creates a null value. - - A null value. - - - - Creates a undefined value. - - A undefined value. - - - - Gets the node type for this . - - The type. - - - - Gets or sets the underlying token value. - - The underlying token value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Indicates whether the current object is equal to another object of the same type. - - - true if the current object is equal to the parameter; otherwise, false. - - An object to compare with this object. - - - - Determines whether the specified is equal to the current . - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - The parameter is null. - - - - - Serves as a hash function for a particular type. - - - A hash code for the current . - - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format provider. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - The format provider. - - A that represents this instance. - - - - - Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. - - An object to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: - Value - Meaning - Less than zero - This instance is less than . - Zero - This instance is equal to . - Greater than zero - This instance is greater than . - - - is not the same type as this instance. - - - - - Specifies metadata property handling options for the . - - - - - Read metadata properties located at the start of a JSON object. - - - - - Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. - - - - - Do not try to read metadata properties. - - - - - Represents a trace writer that writes to the application's instances. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - - The that will be used to filter the trace messages passed to the writer. - - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Provides methods to get attributes. - - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Represents a trace writer. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - The that will be used to filter the trace messages passed to the writer. - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Contract details for a used by the . - - - - - Gets or sets the default collection items . - - The converter. - - - - Gets or sets a value indicating whether the collection items preserve object references. - - true if collection items preserve object references; otherwise, false. - - - - Gets or sets the collection item reference loop handling. - - The reference loop handling. - - - - Gets or sets the collection item type name handling. - - The type name handling. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Represents a trace writer that writes to memory. When the trace message limit is - reached then old trace messages will be removed as new messages are added. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - - The that will be used to filter the trace messages passed to the writer. - - - - - Initializes a new instance of the class. - - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Returns an enumeration of the most recent trace messages. - - An enumeration of the most recent trace messages. - - - - Returns a of the most recent trace messages. - - - A of the most recent trace messages. - - - - - Provides methods to get attributes from a , , or . - - - - - Initializes a new instance of the class. - - The instance to get attributes for. This parameter should be a , , or . - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Contract details for a used by the . - - - - - Gets or sets the ISerializable object constructor. - - The ISerializable object constructor. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Get and set values for a using dynamic methods. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Provides data for the Error event. - - - - - Gets the current object the error event is being raised against. - - The current object the error event is being raised against. - - - - Gets the error context. - - The error context. - - - - Initializes a new instance of the class. - - The current object. - The error context. - - - - Resolves member mappings for a type, camel casing property names. - - - - - Initializes a new instance of the class. - - - - - Resolves the name of the property. - - Name of the property. - The property name camel cased. - - - - Used by to resolves a for a given . - - - - - Gets a value indicating whether members are being get and set using dynamic code generation. - This value is determined by the runtime permissions available. - - - true if using dynamic code generation; otherwise, false. - - - - - Gets or sets the default members search flags. - - The default members search flags. - - - - Gets or sets a value indicating whether compiler generated members should be serialized. - - - true if serialized compiler generated members; otherwise, false. - - - - - Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. - - - true if the interface will be ignored when serializing and deserializing types; otherwise, false. - - - - - Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. - - - true if the attribute will be ignored when serializing and deserializing types; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - If set to true the will use a cached shared with other resolvers of the same type. - Sharing the cache will significantly improve performance with multiple resolver instances because expensive reflection will only - happen once. This setting can cause unexpected behavior if different instances of the resolver are suppose to produce different - results. When set to false it is highly recommended to reuse instances with the . - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Gets the serializable members for the type. - - The type to get serializable members for. - The serializable members for the type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates the constructor parameters. - - The constructor to create properties for. - The type's member properties. - Properties for the given . - - - - Creates a for the given . - - The matching member property. - The constructor parameter. - A created for the given . - - - - Resolves the default for the contract. - - Type of the object. - The contract's default . - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Determines which contract type is created for the given type. - - Type of the object. - A for the given type. - - - - Creates properties for the given . - - The type to create properties for. - /// The member serialization mode for the type. - Properties for the given . - - - - Creates the used by the serializer to get and set values from a member. - - The member. - The used by the serializer to get and set values from a member. - - - - Creates a for the given . - - The member's parent . - The member to create a for. - A created for the given . - - - - Resolves the name of the property. - - Name of the property. - Resolved name of the property. - - - - Resolves the key of the dictionary. By default is used to resolve dictionary keys. - - Key of the dictionary. - Resolved key of the dictionary. - - - - Gets the resolved name of the property. - - Name of the property. - Name of the property. - - - - The default serialization binder used when resolving and loading classes from type names. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - The type of the object the formatter creates a new instance of. - - - - - Provides information surrounding an error. - - - - - Gets the error. - - The error. - - - - Gets the original object that caused the error. - - The original object that caused the error. - - - - Gets the member that caused the error. - - The member that caused the error. - - - - Gets the path of the JSON location where the error occurred. - - The path of the JSON location where the error occurred. - - - - Gets or sets a value indicating whether this is handled. - - true if handled; otherwise, false. - - - - Used by to resolves a for a given . - - - - - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Provides methods to get and set values. - - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Contract details for a used by the . - - - - - Gets the of the collection items. - - The of the collection items. - - - - Gets a value indicating whether the collection type is a multidimensional array. - - true if the collection type is a multidimensional array; otherwise, false. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the collection values. - - true if the creator has a parameter with the collection values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Handles serialization callback events. - - The object that raised the callback event. - The streaming context. - - - - Handles serialization error callback events. - - The object that raised the callback event. - The streaming context. - The error context. - - - - Sets extension data for an object during deserialization. - - The object to set extension data on. - The extension data key. - The extension data value. - - - - Gets extension data for an object during serialization. - - The object to set extension data on. - - - - Contract details for a used by the . - - - - - Gets the underlying type for the contract. - - The underlying type for the contract. - - - - Gets or sets the type created during deserialization. - - The type created during deserialization. - - - - Gets or sets whether this type contract is serialized as a reference. - - Whether this type contract is serialized as a reference. - - - - Gets or sets the default for this contract. - - The converter. - - - - Gets or sets all methods called immediately after deserialization of the object. - - The methods called immediately after deserialization of the object. - - - - Gets or sets all methods called during deserialization of the object. - - The methods called during deserialization of the object. - - - - Gets or sets all methods called after serialization of the object graph. - - The methods called after serialization of the object graph. - - - - Gets or sets all methods called before serialization of the object. - - The methods called before serialization of the object. - - - - Gets or sets all method called when an error is thrown during the serialization of the object. - - The methods called when an error is thrown during the serialization of the object. - - - - Gets or sets the method called immediately after deserialization of the object. - - The method called immediately after deserialization of the object. - - - - Gets or sets the method called during deserialization of the object. - - The method called during deserialization of the object. - - - - Gets or sets the method called after serialization of the object graph. - - The method called after serialization of the object graph. - - - - Gets or sets the method called before serialization of the object. - - The method called before serialization of the object. - - - - Gets or sets the method called when an error is thrown during the serialization of the object. - - The method called when an error is thrown during the serialization of the object. - - - - Gets or sets the default creator method used to create the object. - - The default creator method used to create the object. - - - - Gets or sets a value indicating whether the default creator is non public. - - true if the default object creator is non-public; otherwise, false. - - - - Contract details for a used by the . - - - - - Gets or sets the property name resolver. - - The property name resolver. - - - - Gets or sets the dictionary key resolver. - - The dictionary key resolver. - - - - Gets the of the dictionary keys. - - The of the dictionary keys. - - - - Gets the of the dictionary values. - - The of the dictionary values. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the dictionary values. - - true if the creator has a parameter with the dictionary values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Maps a JSON property to a .NET member or constructor parameter. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the type that declared this property. - - The type that declared this property. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets the name of the underlying member or parameter. - - The name of the underlying member or parameter. - - - - Gets the that will get and set the during serialization. - - The that will get and set the during serialization. - - - - Gets or sets the for this property. - - The for this property. - - - - Gets or sets the type of the property. - - The type of the property. - - - - Gets or sets the for the property. - If set this converter takes presidence over the contract converter for the property type. - - The converter. - - - - Gets or sets the member converter. - - The member converter. - - - - Gets or sets a value indicating whether this is ignored. - - true if ignored; otherwise, false. - - - - Gets or sets a value indicating whether this is readable. - - true if readable; otherwise, false. - - - - Gets or sets a value indicating whether this is writable. - - true if writable; otherwise, false. - - - - Gets or sets a value indicating whether this has a member attribute. - - true if has a member attribute; otherwise, false. - - - - Gets the default value. - - The default value. - - - - Gets or sets a value indicating whether this is required. - - A value indicating whether this is required. - - - - Gets or sets a value indicating whether this property preserves object references. - - - true if this instance is reference; otherwise, false. - - - - - Gets or sets the property null value handling. - - The null value handling. - - - - Gets or sets the property default value handling. - - The default value handling. - - - - Gets or sets the property reference loop handling. - - The reference loop handling. - - - - Gets or sets the property object creation handling. - - The object creation handling. - - - - Gets or sets or sets the type name handling. - - The type name handling. - - - - Gets or sets a predicate used to determine whether the property should be serialize. - - A predicate used to determine whether the property should be serialize. - - - - Gets or sets a predicate used to determine whether the property should be deserialized. - - A predicate used to determine whether the property should be deserialized. - - - - Gets or sets a predicate used to determine whether the property should be serialized. - - A predicate used to determine whether the property should be serialized. - - - - Gets or sets an action used to set whether the property has been deserialized. - - An action used to set whether the property has been deserialized. - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Gets or sets the the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets the the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - A collection of objects. - - - - - Initializes a new instance of the class. - - The type. - - - - When implemented in a derived class, extracts the key from the specified element. - - The element from which to extract the key. - The key for the specified element. - - - - Adds a object. - - The property to add to the collection. - - - - Gets the closest matching object. - First attempts to get an exact case match of propertyName and then - a case insensitive match. - - Name of the property. - A matching property if found. - - - - Gets a property by property name. - - The name of the property to get. - Type property name string comparison. - A matching property if found. - - - - Used to resolve references when serializing and deserializing JSON by the . - - - - - Resolves a reference to its object. - - The serialization context. - The reference to resolve. - The object that - - - - Gets the reference for the sepecified object. - - The serialization context. - The object to get a reference for. - The reference to the object. - - - - Determines whether the specified object is referenced. - - The serialization context. - The object to test for a reference. - - true if the specified object is referenced; otherwise, false. - - - - - Adds a reference to the specified object. - - The serialization context. - The reference. - The object to reference. - - - - Contract details for a used by the . - - - - - Gets or sets the object member serialization. - - The member object serialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Gets the object's properties. - - The object's properties. - - - - Gets the constructor parameters required for any non-default constructor - - - - - Gets a collection of instances that define the parameters used with . - - - - - Gets or sets the override constructor used to create the object. - This is set when a constructor is marked up using the - JsonConstructor attribute. - - The override constructor. - - - - Gets or sets the parametrized constructor used to create the object. - - The parametrized constructor. - - - - Gets or sets the function used to create the object. When set this function will override . - This function is called with a collection of arguments which are defined by the collection. - - The function used to create the object. - - - - Gets or sets the extension data setter. - - - - - Gets or sets the extension data getter. - - - - - Gets or sets the extension data value type. - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Lookup and create an instance of the JsonConverter type described by the argument. - - The JsonConverter type to create. - Optional arguments to pass to an initializing constructor of the JsonConverter. - If null, the default constructor is used. - - - - Create a factory function that can be used to create instances of a JsonConverter described by the - argument type. The returned function can then be used to either invoke the converter's default ctor, or any - parameterized constructors by way of an object array. - - - - - Get and set values for a using reflection. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - When applied to a method, specifies that the method is called when an error occurs serializing an object. - - - - - Represents a method that constructs an object. - - The object type to create. - - - - Specifies how strings are escaped when writing JSON text. - - - - - Only control characters (e.g. newline) are escaped. - - - - - All non-ASCII and control characters (e.g. newline) are escaped. - - - - - HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. - - - - - Converts the value to the specified type. If the value is unable to be converted, the - value is checked whether it assignable to the specified type. - - The value to convert. - The culture to use when converting. - The type to convert or cast the value to. - - The converted type. If conversion was unsuccessful, the initial value - is returned if assignable to the target type. - - - - - Gets a dictionary of the names and values of an Enum type. - - - - - - Gets a dictionary of the names and values of an Enum type. - - The enum type to get names and values for. - - - - - Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. - - - - - Determines whether the collection is null or empty. - - The collection. - - true if the collection is null or empty; otherwise, false. - - - - - Adds the elements of the specified collection to the specified generic IList. - - The list to add to. - The collection of elements to add. - - - - Gets the type of the typed collection's items. - - The type. - The type of the typed collection's items. - - - - Gets the member's underlying type. - - The member. - The underlying type of the member. - - - - Determines whether the member is an indexed property. - - The member. - - true if the member is an indexed property; otherwise, false. - - - - - Determines whether the property is an indexed property. - - The property. - - true if the property is an indexed property; otherwise, false. - - - - - Gets the member's value on the object. - - The member. - The target object. - The member's value on the object. - - - - Sets the member's value on the target object. - - The member. - The target. - The value. - - - - Determines whether the specified MemberInfo can be read. - - The MemberInfo to determine whether can be read. - /// if set to true then allow the member to be gotten non-publicly. - - true if the specified MemberInfo can be read; otherwise, false. - - - - - Determines whether the specified MemberInfo can be set. - - The MemberInfo to determine whether can be set. - if set to true then allow the member to be set non-publicly. - if set to true then allow the member to be set if read-only. - - true if the specified MemberInfo can be set; otherwise, false. - - - - - Determines whether the string is all white space. Empty string will return false. - - The string to test whether it is all white space. - - true if the string is all white space; otherwise, false. - - - - - Nulls an empty string. - - The string. - Null if the string was null, otherwise the string unchanged. - - - - Indicating whether a property is required. - - - - - The property is not required. The default state. - - - - - The property must be defined in JSON but can be a null value. - - - - - The property must be defined in JSON and cannot be a null value. - - - - - The property is not required but it cannot be a null value. - - - - - Specifies reference handling options for the . - Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement ISerializable. - - - - - - - - Do not preserve references when serializing types. - - - - - Preserve references when serializing into a JSON object structure. - - - - - Preserve references when serializing into a JSON array structure. - - - - - Preserve references when serializing. - - - - - Provides an interface to enable a class to return line and position information. - - - - - Gets a value indicating whether the class can return line information. - - - true if LineNumber and LinePosition can be provided; otherwise, false. - - - - - Gets the current line number. - - The current line number or 0 if no line information is available (for example, HasLineInfo returns false). - - - - Gets the current line position. - - The current line position or 0 if no line information is available (for example, HasLineInfo returns false). - - - - Instructs the how to serialize the collection. - - - - - Gets or sets a value indicating whether null items are allowed in the collection. - - true if null items are allowed in the collection; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a flag indicating whether the array can contain null items - - A flag indicating whether the array can contain null items. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Instructs the how to serialize the object. - - - - - Gets or sets the id. - - The id. - - - - Gets or sets the title. - - The title. - - - - Gets or sets the description. - - The description. - - - - Gets the collection's items converter. - - The collection's items converter. - - - - The parameter list to use when constructing the JsonConverter described by ItemConverterType. - If null, the default constructor is used. - When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, - order, and type of these parameters. - - - [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - Gets or sets a value that indicates whether to preserve object references. - - - true to keep object reference; otherwise, false. The default is false. - - - - - Gets or sets a value that indicates whether to preserve collection's items references. - - - true to keep collection's items object references; otherwise, false. The default is false. - - - - - Gets or sets the reference loop handling used when serializing the collection's items. - - The reference loop handling. - - - - Gets or sets the type name handling used when serializing the collection's items. - - The type name handling. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Specifies default value handling options for the . - - - - - - - - - Include members where the member value is the same as the member's default value when serializing objects. - Included members are written to JSON. Has no effect when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - so that is is not written to JSON. - This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, - decimals and floating point numbers; and false for booleans). The default value ignored can be changed by - placing the on the property. - - - - - Members with a default value but no JSON will be set to their default value when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - and sets members to their default value when deserializing. - - - - - Instructs the to use the specified when serializing the member or class. - - - - - Gets the of the converter. - - The of the converter. - - - - The parameter list to use when constructing the JsonConverter described by ConverterType. - If null, the default constructor is used. - - - - - Initializes a new instance of the class. - - Type of the converter. - - - - Initializes a new instance of the class. - - Type of the converter. - Parameter list to use when constructing the JsonConverter. Can be null. - - - - Instructs the how to serialize the object. - - - - - Gets or sets the member serialization. - - The member serialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified member serialization. - - The member serialization. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Specifies the settings on a object. - - - - - Gets or sets how reference loops (e.g. a class referencing itself) is handled. - - Reference loop handling. - - - - Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - - Missing member handling. - - - - Gets or sets how objects are created during deserialization. - - The object creation handling. - - - - Gets or sets how null values are handled during serialization and deserialization. - - Null value handling. - - - - Gets or sets how null default are handled during serialization and deserialization. - - The default value handling. - - - - Gets or sets a collection that will be used during serialization. - - The converters. - - - - Gets or sets how object references are preserved by the serializer. - - The preserve references handling. - - - - Gets or sets how type name writing and reading is handled by the serializer. - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - The type name handling. - - - - Gets or sets how metadata properties are used during deserialization. - - The metadata properties handling. - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - - The type name assembly format. - - - - Gets or sets how constructors are used during deserialization. - - The constructor handling. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - The contract resolver. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets the used by the serializer when resolving references. - - The reference resolver. - - - - Gets or sets a function that creates the used by the serializer when resolving references. - - A function that creates the used by the serializer when resolving references. - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the used by the serializer when resolving type names. - - The binder. - - - - Gets or sets the error handler called during serialization and deserialization. - - The error handler called during serialization and deserialization. - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling during serialization and deserialization. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written as JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Gets a value indicating whether there will be a check for additional content after deserializing an object. - - - true if there will be a check for additional content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Specifies the member serialization options for the . - - - - - All public members are serialized by default. Members can be excluded using or . - This is the default member serialization mode. - - - - - Only members marked with or are serialized. - This member serialization mode can also be set by marking the class with . - - - - - All public and private fields are serialized. Members can be excluded using or . - This member serialization mode can also be set by marking the class with - and setting IgnoreSerializableAttribute on to false. - - - - - Specifies how object creation is handled by the . - - - - - Reuse existing objects, create new objects when needed. - - - - - Only reuse existing objects. - - - - - Always create new objects. - - - - - Represents a reader that provides fast, non-cached, forward-only access to JSON text data. - - - - - Initializes a new instance of the class with the specified . - - The TextReader containing the XML data to read. - - - - Gets or sets the reader's character buffer pool. - - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a []. - - A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Changes the state to closed. - - - - - Gets a value indicating whether the class can return line information. - - - true if LineNumber and LinePosition can be provided; otherwise, false. - - - - - Gets the current line number. - - - The current line number or 0 if no line information is available (for example, HasLineInfo returns false). - - - - - Gets the current line position. - - - The current line position or 0 if no line information is available (for example, HasLineInfo returns false). - - - - - Instructs the to always serialize the member with the specified name. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - The parameter list to use when constructing the JsonConverter described by ItemConverterType. - If null, the default constructor is used. - When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, - order, and type of these parameters. - - - [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - Gets or sets the null value handling used when serializing this property. - - The null value handling. - - - - Gets or sets the default value handling used when serializing this property. - - The default value handling. - - - - Gets or sets the reference loop handling used when serializing this property. - - The reference loop handling. - - - - Gets or sets the object creation handling used when deserializing this property. - - The object creation handling. - - - - Gets or sets the type name handling used when serializing this property. - - The type name handling. - - - - Gets or sets whether this property's value is serialized as a reference. - - Whether this property's value is serialized as a reference. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets a value indicating whether this property is required. - - - A value indicating whether this property is required. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - Gets or sets the the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified name. - - Name of the property. - - - - Instructs the not to serialize the public field or public read/write property value. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the writer's character array pool. - - - - - Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. - - - - - Gets or sets which character to use to quote attribute values. - - - - - Gets or sets which character to use for indenting when is set to Formatting.Indented. - - - - - Gets or sets a value indicating whether object names will be surrounded with quotes. - - - - - Creates an instance of the JsonWriter class using the specified . - - The TextWriter to write to. - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the specified end token. - - The end token to write. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes out the given white space. - - The string of white space characters. - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Converts an object to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can read JSON. - - true if this can read JSON; otherwise, false. - - - - Gets a value indicating whether this can write JSON. - - true if this can write JSON; otherwise, false. - - - - Represents a collection of . - - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Specifies the state of the reader. - - - - - The Read method has not been called. - - - - - The end of the file has been reached successfully. - - - - - Reader is at a property. - - - - - Reader is at the start of an object. - - - - - Reader is in an object. - - - - - Reader is at the start of an array. - - - - - Reader is in an array. - - - - - The Close method has been called. - - - - - Reader has just read a value. - - - - - Reader is at the start of a constructor. - - - - - Reader in a constructor. - - - - - An error occurred that prevents the read operation from continuing. - - - - - The end of the file has been reached successfully. - - - - - Gets the current reader state. - - The current reader state. - - - - Gets or sets a value indicating whether the underlying stream or - should be closed when the reader is closed. - - - true to close the underlying stream or when - the reader is closed; otherwise false. The default is true. - - - - - Gets or sets a value indicating whether multiple pieces of JSON content can - be read from a continuous stream without erroring. - - - true to support reading multiple pieces of JSON content; otherwise false. The default is false. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - Get or set how time zones are handling when reading JSON. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how custom date formatted strings are parsed when reading JSON. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets the type of the current JSON token. - - - - - Gets the text value of the current JSON token. - - - - - Gets The Common Language Runtime (CLR) type for the current JSON token. - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Initializes a new instance of the class with the specified . - - - - - Reads the next JSON token from the stream. - - true if the next token was read successfully; false if there are no more tokens to read. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a []. - - A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Skips the children of the current token. - - - - - Sets the current token. - - The new token. - - - - Sets the current token and value. - - The new token. - The value. - - - - Sets the state based on current token type. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Changes the to Closed. - - - - - Provides methods for converting between common language runtime types and JSON types. - - - - - - - - Gets or sets a function that creates default . - Default settings are automatically used by serialization methods on , - and and on . - To serialize without using any default settings create a with - . - - - - - Represents JavaScript's boolean value true as a string. This field is read-only. - - - - - Represents JavaScript's boolean value false as a string. This field is read-only. - - - - - Represents JavaScript's null as a string. This field is read-only. - - - - - Represents JavaScript's undefined as a string. This field is read-only. - - - - - Represents JavaScript's positive infinity as a string. This field is read-only. - - - - - Represents JavaScript's negative infinity as a string. This field is read-only. - - - - - Represents JavaScript's NaN as a string. This field is read-only. - - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - The time zone handling when the date is converted to a string. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - The string escape handling. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Serializes the specified object to a JSON string. - - The object to serialize. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting. - - The object to serialize. - Indicates how the output is formatted. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a collection of . - - The object to serialize. - A collection converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting and a collection of . - - The object to serialize. - Indicates how the output is formatted. - A collection converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using formatting and . - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - A JSON string representation of the object. - - - - - Deserializes the JSON to a .NET object. - - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to a .NET object using . - - The JSON to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The JSON to deserialize. - The of object being deserialized. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The type of the object to deserialize to. - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the given anonymous type. - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be infered from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the given anonymous type using . - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be infered from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The type of the object to deserialize to. - The JSON to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The type of the object to deserialize to. - The object to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The JSON to deserialize. - The type of the object to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The JSON to deserialize. - The type of the object to deserialize to. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Populates the object with values from the JSON string. - - The JSON to populate values from. - The target object to populate values onto. - - - - Populates the object with values from the JSON string using . - - The JSON to populate values from. - The target object to populate values onto. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - - - Serializes the XML node to a JSON string. - - The node to serialize. - A JSON string of the XmlNode. - - - - Serializes the XML node to a JSON string using formatting. - - The node to serialize. - Indicates how the output is formatted. - A JSON string of the XmlNode. - - - - Serializes the XML node to a JSON string using formatting and omits the root object if is true. - - The node to serialize. - Indicates how the output is formatted. - Omits writing the root object. - A JSON string of the XmlNode. - - - - Deserializes the XmlNode from a JSON string. - - The JSON string. - The deserialized XmlNode - - - - Deserializes the XmlNode from a JSON string nested in a root elment specified by . - - The JSON string. - The name of the root element to append when deserializing. - The deserialized XmlNode - - - - Deserializes the XmlNode from a JSON string nested in a root elment specified by - and writes a .NET array attribute for collections. - - The JSON string. - The name of the root element to append when deserializing. - - A flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - The deserialized XmlNode - - - - Serializes the to a JSON string. - - The node to convert to JSON. - A JSON string of the XNode. - - - - Serializes the to a JSON string using formatting. - - The node to convert to JSON. - Indicates how the output is formatted. - A JSON string of the XNode. - - - - Serializes the to a JSON string using formatting and omits the root object if is true. - - The node to serialize. - Indicates how the output is formatted. - Omits writing the root object. - A JSON string of the XNode. - - - - Deserializes the from a JSON string. - - The JSON string. - The deserialized XNode - - - - Deserializes the from a JSON string nested in a root elment specified by . - - The JSON string. - The name of the root element to append when deserializing. - The deserialized XNode - - - - Deserializes the from a JSON string nested in a root elment specified by - and writes a .NET array attribute for collections. - - The JSON string. - The name of the root element to append when deserializing. - - A flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - The deserialized XNode - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Initializes a new instance of the class. - - The that holds the serialized object data about the exception being thrown. - The that contains contextual information about the source or destination. - The parameter is null. - The class name is null or is zero (0). - - - - Serializes and deserializes objects into and from the JSON format. - The enables you to control how objects are encoded into JSON. - - - - - Occurs when the errors during serialization and deserialization. - - - - - Gets or sets the used by the serializer when resolving references. - - - - - Gets or sets the used by the serializer when resolving type names. - - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets how type name writing and reading is handled by the serializer. - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - - The type name assembly format. - - - - Gets or sets how object references are preserved by the serializer. - - - - - Get or set how reference loops (e.g. a class referencing itself) is handled. - - - - - Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - - - - - Get or set how null values are handled during serialization and deserialization. - - - - - Get or set how null default are handled during serialization and deserialization. - - - - - Gets or sets how objects are created during deserialization. - - The object creation handling. - - - - Gets or sets how constructors are used during deserialization. - - The constructor handling. - - - - Gets or sets how metadata properties are used during deserialization. - - The metadata properties handling. - - - - Gets a collection that will be used during serialization. - - Collection that will be used during serialization. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling during serialization and deserialization. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written as JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. - - - true if there will be a check for additional JSON content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Creates a new instance. - The will not use default settings - from . - - - A new instance. - The will not use default settings - from . - - - - - Creates a new instance using the specified . - The will not use default settings - from . - - The settings to be applied to the . - - A new instance using the specified . - The will not use default settings - from . - - - - - Creates a new instance. - The will use default settings - from . - - - A new instance. - The will use default settings - from . - - - - - Creates a new instance using the specified . - The will use default settings - from as well as the specified . - - The settings to be applied to the . - - A new instance using the specified . - The will use default settings - from as well as the specified . - - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to reader values from. - The target object to populate values onto. - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to reader values from. - The target object to populate values onto. - - - - Deserializes the JSON structure contained by the specified . - - The that contains the JSON structure to deserialize. - The being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The type of the object to deserialize. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Specifies missing member handling options for the . - - - - - Ignore a missing member and do not attempt to deserialize it. - - - - - Throw a when a missing member is encountered during deserialization. - - - - - Specifies null value handling options for the . - - - - - - - - - Include null values when serializing and deserializing objects. - - - - - Ignore null values when serializing and deserializing objects. - - - - - Specifies reference loop handling options for the . - - - - - Throw a when a loop is encountered. - - - - - Ignore loop references and do not serialize. - - - - - Serialize loop references. - - - - - Specifies type name handling options for the . - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - - - - Do not include the .NET type name when serializing types. - - - - - Include the .NET type name when serializing into a JSON object structure. - - - - - Include the .NET type name when serializing into a JSON array structure. - - - - - Always include the .NET type name when serializing. - - - - - Include the .NET type name when the type of the object being serialized is not the same as its declared type. - - - - - Specifies the type of JSON token. - - - - - This is returned by the if a method has not been called. - - - - - An object start token. - - - - - An array start token. - - - - - A constructor start token. - - - - - An object property name. - - - - - A comment. - - - - - Raw JSON. - - - - - An integer. - - - - - A float. - - - - - A string. - - - - - A boolean. - - - - - A null token. - - - - - An undefined token. - - - - - An object end token. - - - - - An array end token. - - - - - A constructor end token. - - - - - A Date. - - - - - Byte data. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets a value indicating whether the underlying stream or - should be closed when the writer is closed. - - - true to close the underlying stream or when - the writer is closed; otherwise false. The default is true. - - - - - Gets the top. - - The top. - - - - Gets the state of the writer. - - - - - Gets the path of the writer. - - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling when writing JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written to JSON text. - - - - - Get or set how and values are formatting when writing JSON text. - - - - - Gets or sets the culture used when writing JSON. Defaults to . - - - - - Creates an instance of the JsonWriter class. - - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the end of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the end of an array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end constructor. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes the end of the current JSON object or array. - - - - - Writes the current token and its children. - - The to read the token from. - - - - Writes the current token. - - The to read the token from. - A flag indicating whether the current token's children should be written. - - - - Writes the token and its value. - - The to write. - - The value to write. - A value is only required for tokens that have an associated value, e.g. the property name for . - A null value can be passed to the method for token's that don't have a value, e.g. . - - - - Writes the token. - - The to write. - - - - Writes the specified end token. - - The end token to write. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON without changing the writer's state. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes out the given white space. - - The string of white space characters. - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Sets the state of the JsonWriter, - - The JsonToken being written. - The value being written. - - - - Specifies the state of the . - - - - - An exception has been thrown, which has left the in an invalid state. - You may call the method to put the in the Closed state. - Any other method calls results in an being thrown. - - - - - The method has been called. - - - - - An object is being written. - - - - - A array is being written. - - - - - A constructor is being written. - - - - - A property is being written. - - - - - A write method has not been called. - - - - + + + + Newtonsoft.Json + + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The stream. + + + + Initializes a new instance of the class. + + The reader. + + + + Initializes a new instance of the class. + + The stream. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The reader. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the stream. + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the to Closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The stream. + + + + Initializes a new instance of the class. + + The writer. + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this stream and the underlying stream. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Converts a binary value to and from a base 64 string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Create a custom object + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + + + + + + + + + + + + + + + + + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets a value indicating whether integer values are allowed. + + true if integers are allowed; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Json Converter for Vector2, Vector3 and Vector4. Only serializes x, y, (z) and (w) properties. + + + + + Default Constructor - All Vector types enabled by default + + + + + Selectively enable Vector types + + Use for Vector2 objects + Use for Vector3 objects + Use for Vector4 objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. + + The name of the deserialize root element. + + + + Gets or sets a flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attibute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the attributeName is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + True if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a paramatized constructor. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent a array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the to always serialize the member, and require the member has a value. + + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. When the or methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + Specifies the settings used when loading JSON. + + + + + Gets or sets how JSON comments are handled when loading JSON. + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + + The JSON line info handling. + + + + Specifies the settings used when merging JSON. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how how null value properties are merged. + + How null value properties are merged. + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Represents a raw JSON string. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Represents a collection of objects. + + The type of token + + + + Gets the with the specified key. + + + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a JSON constructor. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates an that can be used to add tokens to the . + + An that is ready to have content written to it. + + + + Replaces the children nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens + + + + Represents a collection of objects. + + The type of token + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Gets the with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of this object's properties. + + An of this object's properties. + + + + Gets a the specified name. + + The property name. + A with the specified name or null. + + + + Gets an of this object's property values. + + An of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries the get value. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the properties for this instance of a component. + + + A that represents the properties for this component instance. + + + + + Returns the properties for this instance of a component using the attribute array as a filter. + + An array of type that is used as a filter. + + A that represents the filtered properties for this component instance. + + + + + Returns a collection of custom attributes for this instance of a component. + + + An containing the attributes for this object. + + + + + Returns the class name of this instance of a component. + + + The class name of the object, or null if the class does not have a name. + + + + + Returns the name of this instance of a component. + + + The name of the object, or null if the object does not have a name. + + + + + Returns a type converter for this instance of a component. + + + A that is the converter for this object, or null if there is no for this object. + + + + + Returns the default event for this instance of a component. + + + An that represents the default event for this object, or null if this object does not have events. + + + + + Returns the default property for this instance of a component. + + + A that represents the default property for this object, or null if this object does not have properties. + + + + + Returns an editor of the specified type for this instance of a component. + + A that represents the editor for this object. + + An of the specified type that is the editor for this object, or null if the editor cannot be found. + + + + + Returns the events for this instance of a component using the specified attribute array as a filter. + + An array of type that is used as a filter. + + An that represents the filtered events for this component instance. + + + + + Returns the events for this instance of a component. + + + An that represents the events for this component instance. + + + + + Returns an object that contains the property described by the specified property descriptor. + + A that represents the property whose owner is to be found. + + An that represents the owner of the specified property. + + + + + Represents a JSON array. + + + + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + The is read-only. + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + The is read-only. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + The is read-only. + + + + Removes all items from the . + + The is read-only. + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + The is read-only. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Reads the next JSON token from the stream. + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being writen. + + The token being writen. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Closes this stream and the underlying stream. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents an abstract JSON token. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output is formatted. + A collection of which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Creates an for this token. + + An that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object + + + + Creates the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + An positioned at the token to read into this . + + An that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + An that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + An that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + + An that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A , or null. + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + An that contains the selected elements. + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An that contains the selected elements. + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Represents a JSON property. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + The parameter is null. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not the same type as this instance. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Represents a trace writer that writes to the application's instances. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of Info will exclude Verbose messages and include Info, + Warning and Error messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of Info will exclude Verbose messages and include Info, + Warning and Error messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of Info will exclude Verbose messages and include Info, + Warning and Error messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Contract details for a used by the . + + + + + Gets or sets the ISerializable object constructor. + + The ISerializable object constructor. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the name of the property. + + Name of the property. + The property name camel cased. + + + + Used by to resolves a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + If set to true the will use a cached shared with other resolvers of the same type. + Sharing the cache will significantly improve performance with multiple resolver instances because expensive reflection will only + happen once. This setting can cause unexpected behavior if different instances of the resolver are suppose to produce different + results. When set to false it is highly recommended to reuse instances with the . + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Used by to resolves a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the method called immediately after deserialization of the object. + + The method called immediately after deserialization of the object. + + + + Gets or sets the method called during deserialization of the object. + + The method called during deserialization of the object. + + + + Gets or sets the method called after serialization of the object graph. + + The method called after serialization of the object graph. + + + + Gets or sets the method called before serialization of the object. + + The method called before serialization of the object. + + + + Gets or sets the method called when an error is thrown during the serialization of the object. + + The method called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes presidence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialize. + + A predicate used to determine whether the property should be serialize. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of propertyName and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that + + + + Gets the reference for the sepecified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets the object's properties. + + The object's properties. + + + + Gets the constructor parameters required for any non-default constructor + + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the override constructor used to create the object. + This is set when a constructor is marked up using the + JsonConstructor attribute. + + The override constructor. + + + + Gets or sets the parametrized constructor used to create the object. + + The parametrized constructor. + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the JsonConverter type described by the argument. + + The JsonConverter type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + Create a factory function that can be used to create instances of a JsonConverter described by the + argument type. The returned function can then be used to either invoke the converter's default ctor, or any + parameterized constructors by way of an object array. + + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Represents a method that constructs an object. + + The object type to create. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Gets a dictionary of the names and values of an Enum type. + + + + + + Gets a dictionary of the names and values of an Enum type. + + The enum type to get names and values for. + + + + + Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic IList. + + The list to add to. + The collection of elements to add. + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the member is an indexed property. + + The member. + + true if the member is an indexed property; otherwise, false. + + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Nulls an empty string. + + The string. + Null if the string was null, otherwise the string unchanged. + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement ISerializable. + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if LineNumber and LinePosition can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, HasLineInfo returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, HasLineInfo returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the JsonConverter described by ItemConverterType. + If null, the default constructor is used. + When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, + order, and type of these parameters. + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that is is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and sets members to their default value when deserializing. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the converter. + + The of the converter. + + + + The parameter list to use when constructing the JsonConverter described by ConverterType. + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the converter. + + + + Initializes a new instance of the class. + + Type of the converter. + Parameter list to use when constructing the JsonConverter. Can be null. + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + + Null value handling. + + + + Gets or sets how null default are handled during serialization and deserialization. + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than TypeNameHandling.None. + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Indicates how JSON text output is formatted. + + + + + Get or set how dates are written to JSON text. + + + + + Get or set how time zones are handling during serialization and deserialization. + + + + + Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Get or set how special floating point numbers, e.g. , + and , + are written as JSON. + + + + + Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Get or set how strings are escaped when writing JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Initializes a new instance of the class with the specified . + + The TextReader containing the XML data to read. + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the stream. + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a []. + + A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Changes the state to closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if LineNumber and LinePosition can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, HasLineInfo returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, HasLineInfo returns false). + + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + The parameter list to use when constructing the JsonConverter described by ItemConverterType. + If null, the default constructor is used. + When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, + order, and type of these parameters. + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to Formatting.Indented. + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Creates an instance of the JsonWriter class using the specified . + + The TextWriter to write to. + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Closes this stream and the underlying stream. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes out the given white space. + + The string of white space characters. + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Represents a collection of . + + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Specifies the state of the reader. + + + + + The Read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The Close method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the underlying stream or + should be closed when the reader is closed. + + + true to close the underlying stream or when + the reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Get or set how time zones are handling when reading JSON. + + + + + Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Get or set how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets The Common Language Runtime (CLR) type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class with the specified . + + + + + Reads the next JSON token from the stream. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a []. + + A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the state based on current token type. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the to Closed. + + + + + Provides methods for converting between common language runtime types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output is formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output is formatted. + A collection converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifing the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output is formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output is formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifing the type is optional. + + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be infered from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be infered from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Serializes the XML node to a JSON string. + + The node to serialize. + A JSON string of the XmlNode. + + + + Serializes the XML node to a JSON string using formatting. + + The node to serialize. + Indicates how the output is formatted. + A JSON string of the XmlNode. + + + + Serializes the XML node to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output is formatted. + Omits writing the root object. + A JSON string of the XmlNode. + + + + Deserializes the XmlNode from a JSON string. + + The JSON string. + The deserialized XmlNode + + + + Deserializes the XmlNode from a JSON string nested in a root elment specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized XmlNode + + + + Deserializes the XmlNode from a JSON string nested in a root elment specified by + and writes a .NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized XmlNode + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the XNode. + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output is formatted. + A JSON string of the XNode. + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output is formatted. + Omits writing the root object. + A JSON string of the XNode. + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized XNode + + + + Deserializes the from a JSON string nested in a root elment specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized XNode + + + + Deserializes the from a JSON string nested in a root elment specified by + and writes a .NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized XNode + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than TypeNameHandling.None. + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + + + + + Get or set how reference loops (e.g. a class referencing itself) is handled. + + + + + Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + + + + Get or set how null values are handled during serialization and deserialization. + + + + + Get or set how null default are handled during serialization and deserialization. + + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + + + + + Get or set how dates are written to JSON text. + + + + + Get or set how time zones are handling during serialization and deserialization. + + + + + Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Get or set how special floating point numbers, e.g. , + and , + are written as JSON text. + + + + + Get or set how strings are escaped when writing JSON text. + + + + + Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + to a Stream using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + to a Stream using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifing the type is optional. + + + + + Serializes the specified and writes the JSON structure + to a Stream using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifing the type is optional. + + + + + Serializes the specified and writes the JSON structure + to a Stream using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than TypeNameHandling.None. + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + + + + + Specifies the type of JSON token. + + + + + This is returned by the if a method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets or sets a value indicating whether the underlying stream or + should be closed when the writer is closed. + + + true to close the underlying stream or when + the writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Indicates how JSON text output is formatted. + + + + + Get or set how dates are written to JSON text. + + + + + Get or set how time zones are handling when writing JSON text. + + + + + Get or set how strings are escaped when writing JSON text. + + + + + Get or set how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Get or set how and values are formatting when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Creates an instance of the JsonWriter class. + + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Closes this stream and the underlying stream. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + A null value can be passed to the method for token's that don't have a value, e.g. . + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes out the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the JsonWriter, + + The JsonToken being written. + The value being written. + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls results in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + A array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + diff --git a/Assets/JsonDotNet/Assemblies/Windows/Newtonsoft.Json.XML b/Assets/JsonDotNet/Assemblies/Windows/Newtonsoft.Json.XML index ed0eec5..1af577e 100644 --- a/Assets/JsonDotNet/Assemblies/Windows/Newtonsoft.Json.XML +++ b/Assets/JsonDotNet/Assemblies/Windows/Newtonsoft.Json.XML @@ -1,7977 +1,7977 @@ - - - - Newtonsoft.Json - - - - - Represents a BSON Oid (object id). - - - - - Gets or sets the value of the Oid. - - The value of the Oid. - - - - Initializes a new instance of the class. - - The Oid value. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. - - - true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. - - - - - Gets or sets a value indicating whether the root object will be read as a JSON array. - - - true if the root object will be read as a JSON array; otherwise, false. - - - - - Gets or sets the used when reading values from BSON. - - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The stream. - - - - Initializes a new instance of the class. - - The reader. - - - - Initializes a new instance of the class. - - The stream. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The reader. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Changes the to Closed. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the used when writing values to BSON. - When set to no conversion will occur. - - The used when writing values to BSON. - - - - Initializes a new instance of the class. - - The stream. - - - - Initializes a new instance of the class. - - The writer. - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Writes the end. - - The token. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes the beginning of a JSON array. - - - - - Writes the beginning of a JSON object. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Closes this stream and the underlying stream. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value that represents a BSON object id. - - The Object ID value to write. - - - - Writes a BSON regex. - - The regex pattern. - The regex options. - - - - Specifies how constructors are used when initializing objects during deserialization by the . - - - - - First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. - - - - - Json.NET will use a non-public default constructor before falling back to a paramatized constructor. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Create a custom object - - The object type to convert. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Creates an object which will then be populated by the serializer. - - Type of the object. - The created object. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can write JSON. - - - true if this can write JSON; otherwise, false. - - - - - Provides a base class for converting a to and from JSON. - - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a F# discriminated union type to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - - - - - - - - - - - - - - Converts an ExpandoObject to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can write JSON. - - - true if this can write JSON; otherwise, false. - - - - - - - - - - - - Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). - - - - - Gets or sets the date time styles used when converting a date to and from JSON. - - The date time styles used when converting a date to and from JSON. - - - - Gets or sets the date time format used when converting a date to and from JSON. - - The date time format used when converting a date to and from JSON. - - - - Gets or sets the culture used when converting a date to and from JSON. - - The culture used when converting a date to and from JSON. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an to and from its name string value. - - - - - Gets or sets a value indicating whether the written enum text should be camel case. - - true if the written enum text will be camel case; otherwise, false. - - - - Gets or sets a value indicating whether integer values are allowed. - - true if integers are allowed; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - true if the written enum text will be camel case; otherwise, false. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Json Converter for Vector2, Vector3 and Vector4. Only serializes x, y, (z) and (w) properties. - - - - - Default Constructor - All Vector types enabled by default - - - - - Selectively enable Vector types - - Use for Vector2 objects - Use for Vector3 objects - Use for Vector4 objects - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Converts a to and from a string (e.g. "1.2.3.4"). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts XML to and from JSON. - - - - - Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. - - The name of the deserialize root element. - - - - Gets or sets a flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - true if the array attibute is written to the XML; otherwise, false. - - - - Gets or sets a value indicating whether to write the root JSON object. - - true if the JSON root object is omitted; otherwise, false. - - - - Writes the JSON representation of the object. - - The to write to. - The calling serializer. - The value. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Checks if the attributeName is a namespace attribute. - - Attribute name to test. - The attribute name prefix if it has one, otherwise an empty string. - True if attribute name is for a namespace attribute, otherwise false. - - - - Determines whether this instance can convert the specified value type. - - Type of the value. - - true if this instance can convert the specified value type; otherwise, false. - - - - - Specifies how dates are formatted when writing JSON text. - - - - - Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". - - - - - Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". - - - - - Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. - - - - - Date formatted strings are not parsed to a date type and are read as strings. - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Specifies how to treat the time value when converting between string and . - - - - - Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. - - - - - Treat as a UTC. If the object represents a local time, it is converted to a UTC. - - - - - Treat as a local time if a is being converted to a string. - If a string is being converted to , convert to a local time if a time zone is specified. - - - - - Time zone information should be preserved when converting. - - - - - Specifies default value handling options for the . - - - - - - - - - Include members where the member value is the same as the member's default value when serializing objects. - Included members are written to JSON. Has no effect when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - so that is is not written to JSON. - This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, - decimals and floating point numbers; and false for booleans). The default value ignored can be changed by - placing the on the property. - - - - - Members with a default value but no JSON will be set to their default value when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - and sets members to their default value when deserializing. - - - - - Specifies float format handling options when writing special floating point numbers, e.g. , - and with . - - - - - Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". - - - - - Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. - Note that this will produce non-valid JSON. - - - - - Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a property. - - - - - Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Floating point numbers are parsed to . - - - - - Floating point numbers are parsed to . - - - - - Specifies formatting options for the . - - - - - No special formatting is applied. This is the default. - - - - - Causes child objects to be indented according to the and settings. - - - - - Provides an interface for using pooled arrays. - - The array type content. - - - - Rent a array from the pool. This array must be returned when it is no longer needed. - - The minimum required length of the array. The returned array may be longer. - The rented array from the pool. This array must be returned when it is no longer needed. - - - - Return an array to the pool. - - The array that is being returned. - - - - Provides an interface to enable a class to return line and position information. - - - - - Gets a value indicating whether the class can return line information. - - - true if LineNumber and LinePosition can be provided; otherwise, false. - - - - - Gets the current line number. - - The current line number or 0 if no line information is available (for example, HasLineInfo returns false). - - - - Gets the current line position. - - The current line position or 0 if no line information is available (for example, HasLineInfo returns false). - - - - Instructs the how to serialize the collection. - - - - - Gets or sets a value indicating whether null items are allowed in the collection. - - true if null items are allowed in the collection; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a flag indicating whether the array can contain null items - - A flag indicating whether the array can contain null items. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Instructs the to use the specified constructor when deserializing that object. - - - - - Instructs the how to serialize the object. - - - - - Gets or sets the id. - - The id. - - - - Gets or sets the title. - - The title. - - - - Gets or sets the description. - - The description. - - - - Gets the collection's items converter. - - The collection's items converter. - - - - The parameter list to use when constructing the JsonConverter described by ItemConverterType. - If null, the default constructor is used. - When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, - order, and type of these parameters. - - - [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - Gets or sets a value that indicates whether to preserve object references. - - - true to keep object reference; otherwise, false. The default is false. - - - - - Gets or sets a value that indicates whether to preserve collection's items references. - - - true to keep collection's items object references; otherwise, false. The default is false. - - - - - Gets or sets the reference loop handling used when serializing the collection's items. - - The reference loop handling. - - - - Gets or sets the type name handling used when serializing the collection's items. - - The type name handling. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Provides methods for converting between common language runtime types and JSON types. - - - - - - - - Gets or sets a function that creates default . - Default settings are automatically used by serialization methods on , - and and on . - To serialize without using any default settings create a with - . - - - - - Represents JavaScript's boolean value true as a string. This field is read-only. - - - - - Represents JavaScript's boolean value false as a string. This field is read-only. - - - - - Represents JavaScript's null as a string. This field is read-only. - - - - - Represents JavaScript's undefined as a string. This field is read-only. - - - - - Represents JavaScript's positive infinity as a string. This field is read-only. - - - - - Represents JavaScript's negative infinity as a string. This field is read-only. - - - - - Represents JavaScript's NaN as a string. This field is read-only. - - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - The time zone handling when the date is converted to a string. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - The string escape handling. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Serializes the specified object to a JSON string. - - The object to serialize. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting. - - The object to serialize. - Indicates how the output is formatted. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a collection of . - - The object to serialize. - A collection converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting and a collection of . - - The object to serialize. - Indicates how the output is formatted. - A collection converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using formatting and . - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - A JSON string representation of the object. - - - - - Asynchronously serializes the specified object to a JSON string. - Serialization will happen on a new thread. - - The object to serialize. - - A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. - - - - - Asynchronously serializes the specified object to a JSON string using formatting. - Serialization will happen on a new thread. - - The object to serialize. - Indicates how the output is formatted. - - A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. - - - - - Asynchronously serializes the specified object to a JSON string using formatting and a collection of . - Serialization will happen on a new thread. - - The object to serialize. - Indicates how the output is formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. - - - - - Deserializes the JSON to a .NET object. - - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to a .NET object using . - - The JSON to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The JSON to deserialize. - The of object being deserialized. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The type of the object to deserialize to. - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the given anonymous type. - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be infered from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the given anonymous type using . - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be infered from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The type of the object to deserialize to. - The JSON to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The type of the object to deserialize to. - The object to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The JSON to deserialize. - The type of the object to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The JSON to deserialize. - The type of the object to deserialize to. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Asynchronously deserializes the JSON to the specified .NET type. - Deserialization will happen on a new thread. - - The type of the object to deserialize to. - The JSON to deserialize. - - A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. - - - - - Asynchronously deserializes the JSON to the specified .NET type using . - Deserialization will happen on a new thread. - - The type of the object to deserialize to. - The JSON to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. - - - - - Asynchronously deserializes the JSON to the specified .NET type. - Deserialization will happen on a new thread. - - The JSON to deserialize. - - A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. - - - - - Asynchronously deserializes the JSON to the specified .NET type using . - Deserialization will happen on a new thread. - - The JSON to deserialize. - The type of the object to deserialize to. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. - - - - - Populates the object with values from the JSON string. - - The JSON to populate values from. - The target object to populate values onto. - - - - Populates the object with values from the JSON string using . - - The JSON to populate values from. - The target object to populate values onto. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - - - Asynchronously populates the object with values from the JSON string using . - - The JSON to populate values from. - The target object to populate values onto. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - A task that represents the asynchronous populate operation. - - - - - Serializes the to a JSON string. - - The node to convert to JSON. - A JSON string of the XNode. - - - - Serializes the to a JSON string using formatting. - - The node to convert to JSON. - Indicates how the output is formatted. - A JSON string of the XNode. - - - - Serializes the to a JSON string using formatting and omits the root object if is true. - - The node to serialize. - Indicates how the output is formatted. - Omits writing the root object. - A JSON string of the XNode. - - - - Deserializes the from a JSON string. - - The JSON string. - The deserialized XNode - - - - Deserializes the from a JSON string nested in a root elment specified by . - - The JSON string. - The name of the root element to append when deserializing. - The deserialized XNode - - - - Deserializes the from a JSON string nested in a root elment specified by - and writes a .NET array attribute for collections. - - The JSON string. - The name of the root element to append when deserializing. - - A flag to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - The deserialized XNode - - - - Converts an object to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can read JSON. - - true if this can read JSON; otherwise, false. - - - - Gets a value indicating whether this can write JSON. - - true if this can write JSON; otherwise, false. - - - - Instructs the to use the specified when serializing the member or class. - - - - - Gets the of the converter. - - The of the converter. - - - - The parameter list to use when constructing the JsonConverter described by ConverterType. - If null, the default constructor is used. - - - - - Initializes a new instance of the class. - - Type of the converter. - - - - Initializes a new instance of the class. - - Type of the converter. - Parameter list to use when constructing the JsonConverter. Can be null. - - - - Represents a collection of . - - - - - Instructs the how to serialize the collection. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Instructs the to deserialize properties with no matching class member into the specified collection - and write values during serialization. - - - - - Gets or sets a value that indicates whether to write extension data when serializing the object. - - - true to write extension data when serializing the object; otherwise, false. The default is true. - - - - - Gets or sets a value that indicates whether to read extension data when deserializing the object. - - - true to read extension data when deserializing the object; otherwise, false. The default is true. - - - - - Initializes a new instance of the class. - - - - - Instructs the not to serialize the public field or public read/write property value. - - - - - Instructs the how to serialize the object. - - - - - Gets or sets the member serialization. - - The member serialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified member serialization. - - The member serialization. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Instructs the to always serialize the member with the specified name. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - The parameter list to use when constructing the JsonConverter described by ItemConverterType. - If null, the default constructor is used. - When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, - order, and type of these parameters. - - - [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - Gets or sets the null value handling used when serializing this property. - - The null value handling. - - - - Gets or sets the default value handling used when serializing this property. - - The default value handling. - - - - Gets or sets the reference loop handling used when serializing this property. - - The reference loop handling. - - - - Gets or sets the object creation handling used when deserializing this property. - - The object creation handling. - - - - Gets or sets the type name handling used when serializing this property. - - The type name handling. - - - - Gets or sets whether this property's value is serialized as a reference. - - Whether this property's value is serialized as a reference. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets a value indicating whether this property is required. - - - A value indicating whether this property is required. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - Gets or sets the the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified name. - - Name of the property. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Specifies the state of the reader. - - - - - The Read method has not been called. - - - - - The end of the file has been reached successfully. - - - - - Reader is at a property. - - - - - Reader is at the start of an object. - - - - - Reader is in an object. - - - - - Reader is at the start of an array. - - - - - Reader is in an array. - - - - - The Close method has been called. - - - - - Reader has just read a value. - - - - - Reader is at the start of a constructor. - - - - - Reader in a constructor. - - - - - An error occurred that prevents the read operation from continuing. - - - - - The end of the file has been reached successfully. - - - - - Gets the current reader state. - - The current reader state. - - - - Gets or sets a value indicating whether the underlying stream or - should be closed when the reader is closed. - - - true to close the underlying stream or when - the reader is closed; otherwise false. The default is true. - - - - - Gets or sets a value indicating whether multiple pieces of JSON content can - be read from a continuous stream without erroring. - - - true to support reading multiple pieces of JSON content; otherwise false. The default is false. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - Get or set how time zones are handling when reading JSON. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how custom date formatted strings are parsed when reading JSON. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets the type of the current JSON token. - - - - - Gets the text value of the current JSON token. - - - - - Gets The Common Language Runtime (CLR) type for the current JSON token. - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Initializes a new instance of the class with the specified . - - - - - Reads the next JSON token from the stream. - - true if the next token was read successfully; false if there are no more tokens to read. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a []. - - A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Skips the children of the current token. - - - - - Sets the current token. - - The new token. - - - - Sets the current token and value. - - The new token. - The value. - - - - Sets the state based on current token type. - - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Changes the to Closed. - - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Instructs the to always serialize the member, and require the member has a value. - - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Serializes and deserializes objects into and from the JSON format. - The enables you to control how objects are encoded into JSON. - - - - - Occurs when the errors during serialization and deserialization. - - - - - Gets or sets the used by the serializer when resolving references. - - - - - Gets or sets the used by the serializer when resolving type names. - - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets how type name writing and reading is handled by the serializer. - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - - The type name assembly format. - - - - Gets or sets how object references are preserved by the serializer. - - - - - Get or set how reference loops (e.g. a class referencing itself) is handled. - - - - - Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - - - - - Get or set how null values are handled during serialization and deserialization. - - - - - Get or set how null default are handled during serialization and deserialization. - - - - - Gets or sets how objects are created during deserialization. - - The object creation handling. - - - - Gets or sets how constructors are used during deserialization. - - The constructor handling. - - - - Gets or sets how metadata properties are used during deserialization. - - The metadata properties handling. - - - - Gets a collection that will be used during serialization. - - Collection that will be used during serialization. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling during serialization and deserialization. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written as JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. - - - true if there will be a check for additional JSON content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Creates a new instance. - The will not use default settings - from . - - - A new instance. - The will not use default settings - from . - - - - - Creates a new instance using the specified . - The will not use default settings - from . - - The settings to be applied to the . - - A new instance using the specified . - The will not use default settings - from . - - - - - Creates a new instance. - The will use default settings - from . - - - A new instance. - The will use default settings - from . - - - - - Creates a new instance using the specified . - The will use default settings - from as well as the specified . - - The settings to be applied to the . - - A new instance using the specified . - The will use default settings - from as well as the specified . - - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to reader values from. - The target object to populate values onto. - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to reader values from. - The target object to populate values onto. - - - - Deserializes the JSON structure contained by the specified . - - The that contains the JSON structure to deserialize. - The being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The type of the object to deserialize. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifing the type is optional. - - - - - Serializes the specified and writes the JSON structure - to a Stream using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Specifies the settings on a object. - - - - - Gets or sets how reference loops (e.g. a class referencing itself) is handled. - - Reference loop handling. - - - - Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - - Missing member handling. - - - - Gets or sets how objects are created during deserialization. - - The object creation handling. - - - - Gets or sets how null values are handled during serialization and deserialization. - - Null value handling. - - - - Gets or sets how null default are handled during serialization and deserialization. - - The default value handling. - - - - Gets or sets a collection that will be used during serialization. - - The converters. - - - - Gets or sets how object references are preserved by the serializer. - - The preserve references handling. - - - - Gets or sets how type name writing and reading is handled by the serializer. - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - The type name handling. - - - - Gets or sets how metadata properties are used during deserialization. - - The metadata properties handling. - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - - The type name assembly format. - - - - Gets or sets how constructors are used during deserialization. - - The constructor handling. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - The contract resolver. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets the used by the serializer when resolving references. - - The reference resolver. - - - - Gets or sets a function that creates the used by the serializer when resolving references. - - A function that creates the used by the serializer when resolving references. - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the used by the serializer when resolving type names. - - The binder. - - - - Gets or sets the error handler called during serialization and deserialization. - - The error handler called during serialization and deserialization. - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling during serialization and deserialization. - - - - - Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written as JSON. - - - - - Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Gets a value indicating whether there will be a check for additional content after deserializing an object. - - - true if there will be a check for additional content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Represents a reader that provides fast, non-cached, forward-only access to JSON text data. - - - - - Initializes a new instance of the class with the specified . - - The TextReader containing the XML data to read. - - - - Gets or sets the reader's character buffer pool. - - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a []. - - A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the stream as a . - - A . This method will return null at the end of an array. - - - - Changes the state to closed. - - - - - Gets a value indicating whether the class can return line information. - - - true if LineNumber and LinePosition can be provided; otherwise, false. - - - - - Gets the current line number. - - - The current line number or 0 if no line information is available (for example, HasLineInfo returns false). - - - - - Gets the current line position. - - - The current line position or 0 if no line information is available (for example, HasLineInfo returns false). - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the writer's character array pool. - - - - - Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. - - - - - Gets or sets which character to use to quote attribute values. - - - - - Gets or sets which character to use for indenting when is set to Formatting.Indented. - - - - - Gets or sets a value indicating whether object names will be surrounded with quotes. - - - - - Creates an instance of the JsonWriter class using the specified . - - The TextWriter to write to. - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the specified end token. - - The end token to write. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes out the given white space. - - The string of white space characters. - - - - Specifies the type of JSON token. - - - - - This is returned by the if a method has not been called. - - - - - An object start token. - - - - - An array start token. - - - - - A constructor start token. - - - - - An object property name. - - - - - A comment. - - - - - Raw JSON. - - - - - An integer. - - - - - A float. - - - - - A string. - - - - - A boolean. - - - - - A null token. - - - - - An undefined token. - - - - - An object end token. - - - - - An array end token. - - - - - A constructor end token. - - - - - A Date. - - - - - Byte data. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets a value indicating whether the underlying stream or - should be closed when the writer is closed. - - - true to close the underlying stream or when - the writer is closed; otherwise false. The default is true. - - - - - Gets the top. - - The top. - - - - Gets the state of the writer. - - - - - Gets the path of the writer. - - - - - Indicates how JSON text output is formatted. - - - - - Get or set how dates are written to JSON text. - - - - - Get or set how time zones are handling when writing JSON text. - - - - - Get or set how strings are escaped when writing JSON text. - - - - - Get or set how special floating point numbers, e.g. , - and , - are written to JSON text. - - - - - Get or set how and values are formatting when writing JSON text. - - - - - Gets or sets the culture used when writing JSON. Defaults to . - - - - - Creates an instance of the JsonWriter class. - - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the end of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the end of an array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end constructor. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes the end of the current JSON object or array. - - - - - Writes the current token and its children. - - The to read the token from. - - - - Writes the current token. - - The to read the token from. - A flag indicating whether the current token's children should be written. - - - - Writes the token and its value. - - The to write. - - The value to write. - A value is only required for tokens that have an associated value, e.g. the property name for . - A null value can be passed to the method for token's that don't have a value, e.g. . - - - - Writes the token. - - The to write. - - - - Writes the specified end token. - - The end token to write. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON without changing the writer's state. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes out the given white space. - - The string of white space characters. - - - - Releases unmanaged and - optionally - managed resources - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Sets the state of the JsonWriter, - - The JsonToken being written. - The value being written. - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. - - - - Specifies how JSON comments are handled when loading JSON. - - - - - Ignore comments. - - - - - Load comments as a with type . - - - - - Specifies how line information is handled when loading JSON. - - - - - Ignore line information. - - - - - Load line information. - - - - - Contains the LINQ to JSON extension methods. - - - - - Returns a collection of tokens that contains the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the descendants of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, and the descendants of every token in the source collection. - - - - Returns a collection of child properties of every object in the source collection. - - An of that contains the source collection. - An of that contains the properties of every object in the source collection. - - - - Returns a collection of child values of every object in the source collection with the given key. - - An of that contains the source collection. - The token key. - An of that contains the values of every token in the source collection with the given key. - - - - Returns a collection of child values of every object in the source collection. - - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child values of every object in the source collection with the given key. - - The type to convert the values to. - An of that contains the source collection. - The token key. - An that contains the converted values of every token in the source collection with the given key. - - - - Returns a collection of converted child values of every object in the source collection. - - The type to convert the values to. - An of that contains the source collection. - An that contains the converted values of every token in the source collection. - - - - Converts the value. - - The type to convert the value to. - A cast as a of . - A converted value. - - - - Converts the value. - - The source collection type. - The type to convert the value to. - A cast as a of . - A converted value. - - - - Returns a collection of child tokens of every array in the source collection. - - The source collection type. - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child tokens of every array in the source collection. - - An of that contains the source collection. - The type to convert the values to. - The source collection type. - An that contains the converted values of every token in the source collection. - - - - Returns the input typed as . - - An of that contains the source collection. - The input typed as . - - - - Returns the input typed as . - - The source collection type. - An of that contains the source collection. - The input typed as . - - - - Represents a collection of objects. - - The type of token - - - - Gets the with the specified key. - - - - - - Represents a JSON array. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the at the specified index. - - - - - - Determines the index of a specific item in the . - - The object to locate in the . - - The index of if found in the list; otherwise, -1. - - - - - Inserts an item to the at the specified index. - - The zero-based index at which should be inserted. - The object to insert into the . - - is not a valid index in the . - The is read-only. - - - - Removes the item at the specified index. - - The zero-based index of the item to remove. - - is not a valid index in the . - The is read-only. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Adds an item to the . - - The object to add to the . - The is read-only. - - - - Removes all items from the . - - The is read-only. - - - - Determines whether the contains a specific value. - - The object to locate in the . - - true if is found in the ; otherwise, false. - - - - - Copies to. - - The array. - Index of the array. - - - - Gets a value indicating whether the is read-only. - - true if the is read-only; otherwise, false. - - - - Removes the first occurrence of a specific object from the . - - The object to remove from the . - - true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . - - The is read-only. - - - - Represents a JSON constructor. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets or sets the name of this constructor. - - The constructor name. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name. - - The constructor name. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Represents a token that can contain other tokens. - - - - - Occurs when the items list of the collection has changed, or the collection is reset. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Raises the event. - - The instance containing the event data. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Get the first child token of this token. - - - A containing the first child token of the . - - - - - Get the last child token of this token. - - - A containing the last child token of the . - - - - - Returns a collection of the child tokens of this token, in document order. - - - An of containing the child tokens of this , in document order. - - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - - A containing the child values of this , in document order. - - - - - Returns a collection of the descendant tokens for this token in document order. - - An containing the descendant tokens of the . - - - - Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. - - An containing this token, and all the descendant tokens of the . - - - - Adds the specified content as children of this . - - The content to be added. - - - - Adds the specified content as the first children of this . - - The content to be added. - - - - Creates an that can be used to add tokens to the . - - An that is ready to have content written to it. - - - - Replaces the children nodes of this token with the specified content. - - The content. - - - - Removes the child nodes from this token. - - - - - Merge the specified content into this . - - The content to be merged. - - - - Merge the specified content into this using . - - The content to be merged. - The used to merge the content. - - - - Gets the count of child JSON tokens. - - The count of child JSON tokens - - - - Represents a collection of objects. - - The type of token - - - - An empty collection of objects. - - - - - Initializes a new instance of the struct. - - The enumerable. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Returns an enumerator that iterates through a collection. - - - An object that can be used to iterate through the collection. - - - - - Gets the with the specified key. - - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Returns a hash code for this instance. - - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - Represents a JSON object. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Occurs when a property value changes. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Gets the node type for this . - - The type. - - - - Gets an of this object's properties. - - An of this object's properties. - - - - Gets a the specified name. - - The property name. - A with the specified name or null. - - - - Gets an of this object's property values. - - An of this object's property values. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the with the specified property name. - - - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified property name. - - Name of the property. - The with the specified property name. - - - - Gets the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - One of the enumeration values that specifies how the strings will be compared. - The with the specified property name. - - - - Tries to get the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - The value. - One of the enumeration values that specifies how the strings will be compared. - true if a value was successfully retrieved; otherwise, false. - - - - Adds the specified property name. - - Name of the property. - The value. - - - - Removes the property with the specified name. - - Name of the property. - true if item was successfully removed; otherwise, false. - - - - Tries the get value. - - Name of the property. - The value. - true if a value was successfully retrieved; otherwise, false. - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - - - Raises the event with the provided arguments. - - Name of the property. - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Represents a JSON property. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the property name. - - The property name. - - - - Gets or sets the property value. - - The property value. - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Represents a raw JSON string. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class. - - The raw json. - - - - Creates an instance of with the content of the reader's current token. - - The reader. - An instance of with the content of the reader's current token. - - - - Specifies the settings used when loading JSON. - - - - - Gets or sets how JSON comments are handled when loading JSON. - - The JSON comment handling. - - - - Gets or sets how JSON line info is handled when loading JSON. - - The JSON line info handling. - - - - Specifies the settings used when merging JSON. - - - - - Gets or sets the method used when merging JSON arrays. - - The method used when merging JSON arrays. - - - - Gets or sets how how null value properties are merged. - - How null value properties are merged. - - - - Represents an abstract JSON token. - - - - - Gets a comparer that can compare two tokens for value equality. - - A that can compare two nodes for value equality. - - - - Gets or sets the parent. - - The parent. - - - - Gets the root of this . - - The root of this . - - - - Gets the node type for this . - - The type. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Compares the values of two tokens, including the values of all descendant tokens. - - The first to compare. - The second to compare. - true if the tokens are equal; otherwise false. - - - - Gets the next sibling token of this node. - - The that contains the next sibling token. - - - - Gets the previous sibling token of this node. - - The that contains the previous sibling token. - - - - Gets the path of the JSON token. - - - - - Adds the specified content immediately after this token. - - A content object that contains simple content or a collection of content objects to be added after this token. - - - - Adds the specified content immediately before this token. - - A content object that contains simple content or a collection of content objects to be added before this token. - - - - Returns a collection of the ancestor tokens of this token. - - A collection of the ancestor tokens of this token. - - - - Returns a collection of tokens that contain this token, and the ancestors of this token. - - A collection of tokens that contain this token, and the ancestors of this token. - - - - Returns a collection of the sibling tokens after this token, in document order. - - A collection of the sibling tokens after this tokens, in document order. - - - - Returns a collection of the sibling tokens before this token, in document order. - - A collection of the sibling tokens before this token, in document order. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets the with the specified key converted to the specified type. - - The type to convert the token to. - The token key. - The converted token value. - - - - Get the first child token of this token. - - A containing the first child token of the . - - - - Get the last child token of this token. - - A containing the last child token of the . - - - - Returns a collection of the child tokens of this token, in document order. - - An of containing the child tokens of this , in document order. - - - - Returns a collection of the child tokens of this token, in document order, filtered by the specified type. - - The type to filter the child tokens on. - A containing the child tokens of this , in document order. - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - A containing the child values of this , in document order. - - - - Removes this token from its parent. - - - - - Replaces this token with the specified token. - - The value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Returns the indented JSON for this token. - - - The indented JSON for this token. - - - - - Returns the JSON for this token using the given formatting and converters. - - Indicates how the output is formatted. - A collection of which will be used when writing the token. - The JSON for this token using the given formatting and converters. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to []. - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from [] to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Creates an for this token. - - An that can be used to read this token and its descendants. - - - - Creates a from an object. - - The object that will be used to create . - A with the value of the specified object - - - - Creates a from an object using the specified . - - The object that will be used to create . - The that will be used when reading the object. - A with the value of the specified object - - - - Creates the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates a from a . - - An positioned at the token to read into this . - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - - An that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Selects a using a JPath expression. Selects the token that matches the object path. - - - A that contains a JPath expression. - - A , or null. - - - - Selects a using a JPath expression. Selects the token that matches the object path. - - - A that contains a JPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - A . - - - - Selects a collection of elements using a JPath expression. - - - A that contains a JPath expression. - - An that contains the selected elements. - - - - Selects a collection of elements using a JPath expression. - - - A that contains a JPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - An that contains the selected elements. - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Creates a new instance of the . All child tokens are recursively cloned. - - A new instance of the . - - - - Adds an object to the annotation list of this . - - The annotation to add. - - - - Get the first annotation object of the specified type from this . - - The type of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets the first annotation object of the specified type from this . - - The of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets a collection of annotations of the specified type for this . - - The type of the annotations to retrieve. - An that contains the annotations for this . - - - - Gets a collection of annotations of the specified type for this . - - The of the annotations to retrieve. - An of that contains the annotations that match the specified type for this . - - - - Removes the annotations of the specified type from this . - - The type of annotations to remove. - - - - Removes the annotations of the specified type from this . - - The of annotations to remove. - - - - Compares tokens to determine whether they are equal. - - - - - Determines whether the specified objects are equal. - - The first object of type to compare. - The second object of type to compare. - - true if the specified objects are equal; otherwise, false. - - - - - Returns a hash code for the specified object. - - The for which a hash code is to be returned. - A hash code for the specified object. - The type of is a reference type and is null. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets the at the reader's current position. - - - - - Initializes a new instance of the class. - - The token to read from. - - - - Reads the next JSON token from the stream. - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Gets the path of the current JSON token. - - - - - Specifies the type of token. - - - - - No token type has been set. - - - - - A JSON object. - - - - - A JSON array. - - - - - A JSON constructor. - - - - - A JSON object property. - - - - - A comment. - - - - - An integer value. - - - - - A float value. - - - - - A string value. - - - - - A boolean value. - - - - - A null value. - - - - - An undefined value. - - - - - A date value. - - - - - A raw JSON value. - - - - - A collection of bytes value. - - - - - A Guid value. - - - - - A Uri value. - - - - - A TimeSpan value. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets the at the writer's current position. - - - - - Gets the token being writen. - - The token being writen. - - - - Initializes a new instance of the class writing to the given . - - The container being written to. - - - - Initializes a new instance of the class. - - - - - Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. - - - - - Closes this stream and the underlying stream. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end. - - The token. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes out a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Represents a value in JSON (string, integer, date, etc). - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Creates a comment with the given value. - - The value. - A comment with the given value. - - - - Creates a string with the given value. - - The value. - A string with the given value. - - - - Creates a null value. - - A null value. - - - - Creates a undefined value. - - A undefined value. - - - - Gets the node type for this . - - The type. - - - - Gets or sets the underlying token value. - - The underlying token value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Indicates whether the current object is equal to another object of the same type. - - - true if the current object is equal to the parameter; otherwise, false. - - An object to compare with this object. - - - - Determines whether the specified is equal to the current . - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - The parameter is null. - - - - - Serves as a hash function for a particular type. - - - A hash code for the current . - - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format provider. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - The format provider. - - A that represents this instance. - - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. - - An object to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: - Value - Meaning - Less than zero - This instance is less than . - Zero - This instance is equal to . - Greater than zero - This instance is greater than . - - - is not the same type as this instance. - - - - - Specifies how JSON arrays are merged together. - - - - Concatenate arrays. - - - Union arrays, skipping items that already exist. - - - Replace all array items. - - - Merge array items together, matched by index. - - - - Specifies how null value properties are merged. - - - - - The content's null value properties will be ignored during merging. - - - - - The content's null value properties will be merged. - - - - - Specifies the member serialization options for the . - - - - - All public members are serialized by default. Members can be excluded using or . - This is the default member serialization mode. - - - - - Only members marked with or are serialized. - This member serialization mode can also be set by marking the class with . - - - - - All public and private fields are serialized. Members can be excluded using or . - This member serialization mode can also be set by marking the class with - and setting IgnoreSerializableAttribute on to false. - - - - - Specifies metadata property handling options for the . - - - - - Read metadata properties located at the start of a JSON object. - - - - - Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. - - - - - Do not try to read metadata properties. - - - - - Specifies missing member handling options for the . - - - - - Ignore a missing member and do not attempt to deserialize it. - - - - - Throw a when a missing member is encountered during deserialization. - - - - - Specifies null value handling options for the . - - - - - - - - - Include null values when serializing and deserializing objects. - - - - - Ignore null values when serializing and deserializing objects. - - - - - Specifies how object creation is handled by the . - - - - - Reuse existing objects, create new objects when needed. - - - - - Only reuse existing objects. - - - - - Always create new objects. - - - - - Specifies reference handling options for the . - Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement ISerializable. - - - - - - - - Do not preserve references when serializing types. - - - - - Preserve references when serializing into a JSON object structure. - - - - - Preserve references when serializing into a JSON array structure. - - - - - Preserve references when serializing. - - - - - Specifies reference loop handling options for the . - - - - - Throw a when a loop is encountered. - - - - - Ignore loop references and do not serialize. - - - - - Serialize loop references. - - - - - Indicating whether a property is required. - - - - - The property is not required. The default state. - - - - - The property must be defined in JSON but can be a null value. - - - - - The property must be defined in JSON and cannot be a null value. - - - - - The property is not required but it cannot be a null value. - - - - - Allows users to control class loading and mandate what class to load. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - Specifies the name of the serialized object. - Specifies the name of the serialized object - The type of the object the formatter creates a new instance of. - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - The type of the object the formatter creates a new instance of. - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - - - Resolves member mappings for a type, camel casing property names. - - - - - Initializes a new instance of the class. - - - - - Resolves the name of the property. - - Name of the property. - The property name camel cased. - - - - Get and set values for a using dynamic methods. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Used by to resolves a for a given . - - - - - Gets a value indicating whether members are being get and set using dynamic code generation. - This value is determined by the runtime permissions available. - - - true if using dynamic code generation; otherwise, false. - - - - - Gets or sets a value indicating whether compiler generated members should be serialized. - - - true if serialized compiler generated members; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - If set to true the will use a cached shared with other resolvers of the same type. - Sharing the cache will significantly improve performance with multiple resolver instances because expensive reflection will only - happen once. This setting can cause unexpected behavior if different instances of the resolver are suppose to produce different - results. When set to false it is highly recommended to reuse instances with the . - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Gets the serializable members for the type. - - The type to get serializable members for. - The serializable members for the type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates the constructor parameters. - - The constructor to create properties for. - The type's member properties. - Properties for the given . - - - - Creates a for the given . - - The matching member property. - The constructor parameter. - A created for the given . - - - - Resolves the default for the contract. - - Type of the object. - The contract's default . - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Determines which contract type is created for the given type. - - Type of the object. - A for the given type. - - - - Creates properties for the given . - - The type to create properties for. - /// The member serialization mode for the type. - Properties for the given . - - - - Creates the used by the serializer to get and set values from a member. - - The member. - The used by the serializer to get and set values from a member. - - - - Creates a for the given . - - The member's parent . - The member to create a for. - A created for the given . - - - - Resolves the name of the property. - - Name of the property. - Resolved name of the property. - - - - Resolves the key of the dictionary. By default is used to resolve dictionary keys. - - Key of the dictionary. - Resolved key of the dictionary. - - - - Gets the resolved name of the property. - - Name of the property. - Name of the property. - - - - The default serialization binder used when resolving and loading classes from type names. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - The type of the object the formatter creates a new instance of. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - The type of the object the formatter creates a new instance of. - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - - - Provides information surrounding an error. - - - - - Gets the error. - - The error. - - - - Gets the original object that caused the error. - - The original object that caused the error. - - - - Gets the member that caused the error. - - The member that caused the error. - - - - Gets the path of the JSON location where the error occurred. - - The path of the JSON location where the error occurred. - - - - Gets or sets a value indicating whether this is handled. - - true if handled; otherwise, false. - - - - Provides data for the Error event. - - - - - Gets the current object the error event is being raised against. - - The current object the error event is being raised against. - - - - Gets the error context. - - The error context. - - - - Initializes a new instance of the class. - - The current object. - The error context. - - - - Provides methods to get attributes. - - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Used by to resolves a for a given . - - - - - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Used to resolve references when serializing and deserializing JSON by the . - - - - - Resolves a reference to its object. - - The serialization context. - The reference to resolve. - The object that - - - - Gets the reference for the sepecified object. - - The serialization context. - The object to get a reference for. - The reference to the object. - - - - Determines whether the specified object is referenced. - - The serialization context. - The object to test for a reference. - - true if the specified object is referenced; otherwise, false. - - - - - Adds a reference to the specified object. - - The serialization context. - The reference. - The object to reference. - - - - Represents a trace writer. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - The that will be used to filter the trace messages passed to the writer. - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Provides methods to get and set values. - - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Contract details for a used by the . - - - - - Gets the of the collection items. - - The of the collection items. - - - - Gets a value indicating whether the collection type is a multidimensional array. - - true if the collection type is a multidimensional array; otherwise, false. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the collection values. - - true if the creator has a parameter with the collection values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets or sets the default collection items . - - The converter. - - - - Gets or sets a value indicating whether the collection items preserve object references. - - true if collection items preserve object references; otherwise, false. - - - - Gets or sets the collection item reference loop handling. - - The reference loop handling. - - - - Gets or sets the collection item type name handling. - - The type name handling. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Handles serialization callback events. - - The object that raised the callback event. - The streaming context. - - - - Handles serialization error callback events. - - The object that raised the callback event. - The streaming context. - The error context. - - - - Sets extension data for an object during deserialization. - - The object to set extension data on. - The extension data key. - The extension data value. - - - - Gets extension data for an object during serialization. - - The object to set extension data on. - - - - Contract details for a used by the . - - - - - Gets the underlying type for the contract. - - The underlying type for the contract. - - - - Gets or sets the type created during deserialization. - - The type created during deserialization. - - - - Gets or sets whether this type contract is serialized as a reference. - - Whether this type contract is serialized as a reference. - - - - Gets or sets the default for this contract. - - The converter. - - - - Gets or sets all methods called immediately after deserialization of the object. - - The methods called immediately after deserialization of the object. - - - - Gets or sets all methods called during deserialization of the object. - - The methods called during deserialization of the object. - - - - Gets or sets all methods called after serialization of the object graph. - - The methods called after serialization of the object graph. - - - - Gets or sets all methods called before serialization of the object. - - The methods called before serialization of the object. - - - - Gets or sets all method called when an error is thrown during the serialization of the object. - - The methods called when an error is thrown during the serialization of the object. - - - - Gets or sets the method called immediately after deserialization of the object. - - The method called immediately after deserialization of the object. - - - - Gets or sets the method called during deserialization of the object. - - The method called during deserialization of the object. - - - - Gets or sets the method called after serialization of the object graph. - - The method called after serialization of the object graph. - - - - Gets or sets the method called before serialization of the object. - - The method called before serialization of the object. - - - - Gets or sets the method called when an error is thrown during the serialization of the object. - - The method called when an error is thrown during the serialization of the object. - - - - Gets or sets the default creator method used to create the object. - - The default creator method used to create the object. - - - - Gets or sets a value indicating whether the default creator is non public. - - true if the default object creator is non-public; otherwise, false. - - - - Contract details for a used by the . - - - - - Gets or sets the property name resolver. - - The property name resolver. - - - - Gets or sets the dictionary key resolver. - - The dictionary key resolver. - - - - Gets the of the dictionary keys. - - The of the dictionary keys. - - - - Gets the of the dictionary values. - - The of the dictionary values. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the dictionary values. - - true if the creator has a parameter with the dictionary values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets the object's properties. - - The object's properties. - - - - Gets or sets the property name resolver. - - The property name resolver. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets or sets the object member serialization. - - The member object serialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Gets the object's properties. - - The object's properties. - - - - Gets the constructor parameters required for any non-default constructor - - - - - Gets a collection of instances that define the parameters used with . - - - - - Gets or sets the override constructor used to create the object. - This is set when a constructor is marked up using the - JsonConstructor attribute. - - The override constructor. - - - - Gets or sets the parametrized constructor used to create the object. - - The parametrized constructor. - - - - Gets or sets the function used to create the object. When set this function will override . - This function is called with a collection of arguments which are defined by the collection. - - The function used to create the object. - - - - Gets or sets the extension data setter. - - - - - Gets or sets the extension data getter. - - - - - Gets or sets the extension data value type. - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Maps a JSON property to a .NET member or constructor parameter. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the type that declared this property. - - The type that declared this property. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets the name of the underlying member or parameter. - - The name of the underlying member or parameter. - - - - Gets the that will get and set the during serialization. - - The that will get and set the during serialization. - - - - Gets or sets the for this property. - - The for this property. - - - - Gets or sets the type of the property. - - The type of the property. - - - - Gets or sets the for the property. - If set this converter takes presidence over the contract converter for the property type. - - The converter. - - - - Gets or sets the member converter. - - The member converter. - - - - Gets or sets a value indicating whether this is ignored. - - true if ignored; otherwise, false. - - - - Gets or sets a value indicating whether this is readable. - - true if readable; otherwise, false. - - - - Gets or sets a value indicating whether this is writable. - - true if writable; otherwise, false. - - - - Gets or sets a value indicating whether this has a member attribute. - - true if has a member attribute; otherwise, false. - - - - Gets the default value. - - The default value. - - - - Gets or sets a value indicating whether this is required. - - A value indicating whether this is required. - - - - Gets or sets a value indicating whether this property preserves object references. - - - true if this instance is reference; otherwise, false. - - - - - Gets or sets the property null value handling. - - The null value handling. - - - - Gets or sets the property default value handling. - - The default value handling. - - - - Gets or sets the property reference loop handling. - - The reference loop handling. - - - - Gets or sets the property object creation handling. - - The object creation handling. - - - - Gets or sets or sets the type name handling. - - The type name handling. - - - - Gets or sets a predicate used to determine whether the property should be serialize. - - A predicate used to determine whether the property should be serialize. - - - - Gets or sets a predicate used to determine whether the property should be deserialized. - - A predicate used to determine whether the property should be deserialized. - - - - Gets or sets a predicate used to determine whether the property should be serialized. - - A predicate used to determine whether the property should be serialized. - - - - Gets or sets an action used to set whether the property has been deserialized. - - An action used to set whether the property has been deserialized. - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Gets or sets the the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets the the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - A collection of objects. - - - - - Initializes a new instance of the class. - - The type. - - - - When implemented in a derived class, extracts the key from the specified element. - - The element from which to extract the key. - The key for the specified element. - - - - Adds a object. - - The property to add to the collection. - - - - Gets the closest matching object. - First attempts to get an exact case match of propertyName and then - a case insensitive match. - - Name of the property. - A matching property if found. - - - - Gets a property by property name. - - The name of the property to get. - Type property name string comparison. - A matching property if found. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Lookup and create an instance of the JsonConverter type described by the argument. - - The JsonConverter type to create. - Optional arguments to pass to an initializing constructor of the JsonConverter. - If null, the default constructor is used. - - - - Create a factory function that can be used to create instances of a JsonConverter described by the - argument type. The returned function can then be used to either invoke the converter's default ctor, or any - parameterized constructors by way of an object array. - - - - - Represents a trace writer that writes to memory. When the trace message limit is - reached then old trace messages will be removed as new messages are added. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of Info will exclude Verbose messages and include Info, - Warning and Error messages. - - - The that will be used to filter the trace messages passed to the writer. - - - - - Initializes a new instance of the class. - - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Returns an enumeration of the most recent trace messages. - - An enumeration of the most recent trace messages. - - - - Returns a of the most recent trace messages. - - - A of the most recent trace messages. - - - - - Represents a method that constructs an object. - - The object type to create. - - - - When applied to a method, specifies that the method is called when an error occurs serializing an object. - - - - - Provides methods to get attributes from a , , or . - - - - - Initializes a new instance of the class. - - The instance to get attributes for. This parameter should be a , , or . - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Get and set values for a using reflection. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Specifies how strings are escaped when writing JSON text. - - - - - Only control characters (e.g. newline) are escaped. - - - - - All non-ASCII and control characters (e.g. newline) are escaped. - - - - - HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. - - - - - Specifies what messages to output for the class. - - - - - Output no tracing and debugging messages. - - - - - Output error-handling messages. - - - - - Output warnings and error-handling messages. - - - - - Output informational messages, warnings, and error-handling messages. - - - - - Output all debugging and tracing messages. - - - - - Specifies type name handling options for the . - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than TypeNameHandling.None. - - - - - Do not include the .NET type name when serializing types. - - - - - Include the .NET type name when serializing into a JSON object structure. - - - - - Include the .NET type name when serializing into a JSON array structure. - - - - - Always include the .NET type name when serializing. - - - - - Include the .NET type name when the type of the object being serialized is not the same as its declared type. - - - - - Determines whether the collection is null or empty. - - The collection. - - true if the collection is null or empty; otherwise, false. - - - - - Adds the elements of the specified collection to the specified generic IList. - - The list to add to. - The collection of elements to add. - - - - Converts the value to the specified type. If the value is unable to be converted, the - value is checked whether it assignable to the specified type. - - The value to convert. - The culture to use when converting. - The type to convert or cast the value to. - - The converted type. If conversion was unsuccessful, the initial value - is returned if assignable to the target type. - - - - - Helper method for generating a MetaObject which calls a - specific method on Dynamic that returns a result - - - - - Helper method for generating a MetaObject which calls a - specific method on Dynamic, but uses one of the arguments for - the result. - - - - - Helper method for generating a MetaObject which calls a - specific method on Dynamic, but uses one of the arguments for - the result. - - - - - Returns a Restrictions object which includes our current restrictions merged - with a restriction limiting our type - - - - - Gets a dictionary of the names and values of an Enum type. - - - - - - Gets a dictionary of the names and values of an Enum type. - - The enum type to get names and values for. - - - - - Gets the type of the typed collection's items. - - The type. - The type of the typed collection's items. - - - - Gets the member's underlying type. - - The member. - The underlying type of the member. - - - - Determines whether the member is an indexed property. - - The member. - - true if the member is an indexed property; otherwise, false. - - - - - Determines whether the property is an indexed property. - - The property. - - true if the property is an indexed property; otherwise, false. - - - - - Gets the member's value on the object. - - The member. - The target object. - The member's value on the object. - - - - Sets the member's value on the target object. - - The member. - The target. - The value. - - - - Determines whether the specified MemberInfo can be read. - - The MemberInfo to determine whether can be read. - /// if set to true then allow the member to be gotten non-publicly. - - true if the specified MemberInfo can be read; otherwise, false. - - - - - Determines whether the specified MemberInfo can be set. - - The MemberInfo to determine whether can be set. - if set to true then allow the member to be set non-publicly. - if set to true then allow the member to be set if read-only. - - true if the specified MemberInfo can be set; otherwise, false. - - - - - Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. - - - - - Determines whether the string is all white space. Empty string will return false. - - The string to test whether it is all white space. - - true if the string is all white space; otherwise, false. - - - - - Nulls an empty string. - - The string. - Null if the string was null, otherwise the string unchanged. - - - - Specifies the state of the . - - - - - An exception has been thrown, which has left the in an invalid state. - You may call the method to put the in the Closed state. - Any other method calls results in an being thrown. - - - - - The method has been called. - - - - - An object is being written. - - - - - A array is being written. - - - - - A constructor is being written. - - - - - A property is being written. - - - - - A write method has not been called. - - - - - Indicates the method that will be used during deserialization for locating and loading assemblies. - - - - - In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method is used to load the assembly. - - - - - In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the Assembly class is used to load the assembly. - - - - + + + + Newtonsoft.Json + + + + + Represents a BSON Oid (object id). + + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Initializes a new instance of the class. + + The Oid value. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The stream. + + + + Initializes a new instance of the class. + + The reader. + + + + Initializes a new instance of the class. + + The stream. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The reader. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the stream. + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the to Closed. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Initializes a new instance of the class. + + The stream. + + + + Initializes a new instance of the class. + + The writer. + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a JSON array. + + + + + Writes the beginning of a JSON object. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Closes this stream and the underlying stream. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value that represents a BSON object id. + + The Object ID value to write. + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor, then fall back to single paramatized constructor, then the non-public default constructor. + + + + + Json.NET will use a non-public default constructor before falling back to a paramatized constructor. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Create a custom object + + The object type to convert. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + The created object. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a F# discriminated union type to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + + + + + + + + + + + + + + Converts an ExpandoObject to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + + + + + + + + Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). + + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + + true if the written enum text will be camel case; otherwise, false. + + + + Gets or sets a value indicating whether integer values are allowed. + + true if integers are allowed; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + true if the written enum text will be camel case; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Json Converter for Vector2, Vector3 and Vector4. Only serializes x, y, (z) and (w) properties. + + + + + Default Constructor - All Vector types enabled by default + + + + + Selectively enable Vector types + + Use for Vector2 objects + Use for Vector3 objects + Use for Vector4 objects + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts XML to and from JSON. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. + + The name of the deserialize root element. + + + + Gets or sets a flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attibute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the attributeName is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + True if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Specifies how dates are formatted when writing JSON text. + + + + + Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". + + + + + Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". + + + + + Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. + + + + + Date formatted strings are not parsed to a date type and are read as strings. + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . + + + + + Specifies how to treat the time value when converting between string and . + + + + + Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. + + + + + Treat as a UTC. If the object represents a local time, it is converted to a UTC. + + + + + Treat as a local time if a is being converted to a string. + If a string is being converted to , convert to a local time if a time zone is specified. + + + + + Time zone information should be preserved when converting. + + + + + Specifies default value handling options for the . + + + + + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that is is not written to JSON. + This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, + decimals and floating point numbers; and false for booleans). The default value ignored can be changed by + placing the on the property. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and sets members to their default value when deserializing. + + + + + Specifies float format handling options when writing special floating point numbers, e.g. , + and with . + + + + + Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". + + + + + Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. + Note that this will produce non-valid JSON. + + + + + Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a property. + + + + + Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Floating point numbers are parsed to . + + + + + Floating point numbers are parsed to . + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Provides an interface for using pooled arrays. + + The array type content. + + + + Rent a array from the pool. This array must be returned when it is no longer needed. + + The minimum required length of the array. The returned array may be longer. + The rented array from the pool. This array must be returned when it is no longer needed. + + + + Return an array to the pool. + + The array that is being returned. + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if LineNumber and LinePosition can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, HasLineInfo returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, HasLineInfo returns false). + + + + Instructs the how to serialize the collection. + + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets the collection's items converter. + + The collection's items converter. + + + + The parameter list to use when constructing the JsonConverter described by ItemConverterType. + If null, the default constructor is used. + When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, + order, and type of these parameters. + + + [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + Gets or sets a value that indicates whether to preserve object references. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Gets or sets a value that indicates whether to preserve collection's items references. + + + true to keep collection's items object references; otherwise, false. The default is false. + + + + + Gets or sets the reference loop handling used when serializing the collection's items. + + The reference loop handling. + + + + Gets or sets the type name handling used when serializing the collection's items. + + The type name handling. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Provides methods for converting between common language runtime types and JSON types. + + + + + + + + Gets or sets a function that creates default . + Default settings are automatically used by serialization methods on , + and and on . + To serialize without using any default settings create a with + . + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + The time zone handling when the date is converted to a string. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation using the specified. + + The value to convert. + The format the date will be converted to. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + The string escape handling. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting. + + The object to serialize. + Indicates how the output is formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using formatting and a collection of . + + The object to serialize. + Indicates how the output is formatted. + A collection converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifing the type is optional. + + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using formatting and . + + The object to serialize. + Indicates how the output is formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a type, formatting and . + + The object to serialize. + Indicates how the output is formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifing the type is optional. + + + A JSON string representation of the object. + + + + + Asynchronously serializes the specified object to a JSON string. + Serialization will happen on a new thread. + + The object to serialize. + + A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. + + + + + Asynchronously serializes the specified object to a JSON string using formatting. + Serialization will happen on a new thread. + + The object to serialize. + Indicates how the output is formatted. + + A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. + + + + + Asynchronously serializes the specified object to a JSON string using formatting and a collection of . + Serialization will happen on a new thread. + + The object to serialize. + Indicates how the output is formatted. + The used to serialize the object. + If this is null, default serialization settings will be used. + + A task that represents the asynchronous serialize operation. The value of the TResult parameter contains a JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to a .NET object using . + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be infered from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the given anonymous type using . + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be infered from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using a collection of . + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type using . + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + The deserialized object from the JSON string. + + + + Asynchronously deserializes the JSON to the specified .NET type. + Deserialization will happen on a new thread. + + The type of the object to deserialize to. + The JSON to deserialize. + + A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. + + + + + Asynchronously deserializes the JSON to the specified .NET type using . + Deserialization will happen on a new thread. + + The type of the object to deserialize to. + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. + + + + + Asynchronously deserializes the JSON to the specified .NET type. + Deserialization will happen on a new thread. + + The JSON to deserialize. + + A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. + + + + + Asynchronously deserializes the JSON to the specified .NET type using . + Deserialization will happen on a new thread. + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + A task that represents the asynchronous deserialize operation. The value of the TResult parameter contains the deserialized object from the JSON string. + + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + + + Asynchronously populates the object with values from the JSON string using . + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be used. + + + A task that represents the asynchronous populate operation. + + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the XNode. + + + + Serializes the to a JSON string using formatting. + + The node to convert to JSON. + Indicates how the output is formatted. + A JSON string of the XNode. + + + + Serializes the to a JSON string using formatting and omits the root object if is true. + + The node to serialize. + Indicates how the output is formatted. + Omits writing the root object. + A JSON string of the XNode. + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized XNode + + + + Deserializes the from a JSON string nested in a root elment specified by . + + The JSON string. + The name of the root element to append when deserializing. + The deserialized XNode + + + + Deserializes the from a JSON string nested in a root elment specified by + and writes a .NET array attribute for collections. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized XNode + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Instructs the to use the specified when serializing the member or class. + + + + + Gets the of the converter. + + The of the converter. + + + + The parameter list to use when constructing the JsonConverter described by ConverterType. + If null, the default constructor is used. + + + + + Initializes a new instance of the class. + + Type of the converter. + + + + Initializes a new instance of the class. + + Type of the converter. + Parameter list to use when constructing the JsonConverter. Can be null. + + + + Represents a collection of . + + + + + Instructs the how to serialize the collection. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Instructs the to deserialize properties with no matching class member into the specified collection + and write values during serialization. + + + + + Gets or sets a value that indicates whether to write extension data when serializing the object. + + + true to write extension data when serializing the object; otherwise, false. The default is true. + + + + + Gets or sets a value that indicates whether to read extension data when deserializing the object. + + + true to read extension data when deserializing the object; otherwise, false. The default is true. + + + + + Initializes a new instance of the class. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Instructs the how to serialize the object. + + + + + Gets or sets the member serialization. + + The member serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Instructs the to always serialize the member with the specified name. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + The parameter list to use when constructing the JsonConverter described by ItemConverterType. + If null, the default constructor is used. + When non-null, there must be a constructor defined in the JsonConverter that exactly matches the number, + order, and type of these parameters. + + + [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] + + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + Gets or sets the the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Specifies the state of the reader. + + + + + The Read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The Close method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the underlying stream or + should be closed when the reader is closed. + + + true to close the underlying stream or when + the reader is closed; otherwise false. The default is true. + + + + + Gets or sets a value indicating whether multiple pieces of JSON content can + be read from a continuous stream without erroring. + + + true to support reading multiple pieces of JSON content; otherwise false. The default is false. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Get or set how time zones are handling when reading JSON. + + + + + Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Get or set how custom date formatted strings are parsed when reading JSON. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets the type of the current JSON token. + + + + + Gets the text value of the current JSON token. + + + + + Gets The Common Language Runtime (CLR) type for the current JSON token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the path of the current JSON token. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Initializes a new instance of the class with the specified . + + + + + Reads the next JSON token from the stream. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a []. + + A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the state based on current token type. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the to Closed. + + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Instructs the to always serialize the member, and require the member has a value. + + + + + The exception thrown when an error occurs during JSON serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than TypeNameHandling.None. + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + + + + + Get or set how reference loops (e.g. a class referencing itself) is handled. + + + + + Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + + + + Get or set how null values are handled during serialization and deserialization. + + + + + Get or set how null default are handled during serialization and deserialization. + + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Indicates how JSON text output is formatted. + + + + + Get or set how dates are written to JSON text. + + + + + Get or set how time zones are handling during serialization and deserialization. + + + + + Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Get or set how special floating point numbers, e.g. , + and , + are written as JSON text. + + + + + Get or set how strings are escaped when writing JSON text. + + + + + Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. + + + true if there will be a check for additional JSON content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance. + The will not use default settings + from . + + + A new instance. + The will not use default settings + from . + + + + + Creates a new instance using the specified . + The will not use default settings + from . + + The settings to be applied to the . + + A new instance using the specified . + The will not use default settings + from . + + + + + Creates a new instance. + The will use default settings + from . + + + A new instance. + The will use default settings + from . + + + + + Creates a new instance using the specified . + The will use default settings + from as well as the specified . + + The settings to be applied to the . + + A new instance using the specified . + The will use default settings + from as well as the specified . + + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Deserializes the JSON structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the JSON structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the JSON structure + to a Stream using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Serializes the specified and writes the JSON structure + to a Stream using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifing the type is optional. + + + + + Serializes the specified and writes the JSON structure + to a Stream using the specified . + + The used to write the JSON structure. + The to serialize. + + The type of the value being serialized. + This parameter is used when is Auto to write out the type name if the type of the value does not match. + Specifing the type is optional. + + + + + Serializes the specified and writes the JSON structure + to a Stream using the specified . + + The used to write the JSON structure. + The to serialize. + + + + Specifies the settings on a object. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + + Null value handling. + + + + Gets or sets how null default are handled during serialization and deserialization. + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than TypeNameHandling.None. + + The type name handling. + + + + Gets or sets how metadata properties are used during deserialization. + + The metadata properties handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the equality comparer used by the serializer when comparing references. + + The equality comparer. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets a function that creates the used by the serializer when resolving references. + + A function that creates the used by the serializer when resolving references. + + + + Gets or sets the used by the serializer when writing trace messages. + + The trace writer. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Get or set how and values are formatted when writing JSON text, and the expected date format when reading JSON text. + + + + + Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + + + + + Indicates how JSON text output is formatted. + + + + + Get or set how dates are written to JSON text. + + + + + Get or set how time zones are handling during serialization and deserialization. + + + + + Get or set how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. + + + + + Get or set how special floating point numbers, e.g. , + and , + are written as JSON. + + + + + Get or set how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. + + + + + Get or set how strings are escaped when writing JSON text. + + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Gets a value indicating whether there will be a check for additional content after deserializing an object. + + + true if there will be a check for additional content after deserializing an object; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Represents a reader that provides fast, non-cached, forward-only access to JSON text data. + + + + + Initializes a new instance of the class with the specified . + + The TextReader containing the XML data to read. + + + + Gets or sets the reader's character buffer pool. + + + + + Reads the next JSON token from the stream. + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a []. + + A [] or a null reference if the next JSON token is null. This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Reads the next JSON token from the stream as a . + + A . This method will return null at the end of an array. + + + + Changes the state to closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if LineNumber and LinePosition can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, HasLineInfo returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, HasLineInfo returns false). + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets or sets the writer's character array pool. + + + + + Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to Formatting.Indented. + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + Creates an instance of the JsonWriter class using the specified . + + The TextWriter to write to. + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Closes this stream and the underlying stream. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes out the given white space. + + The string of white space characters. + + + + Specifies the type of JSON token. + + + + + This is returned by the if a method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets or sets a value indicating whether the underlying stream or + should be closed when the writer is closed. + + + true to close the underlying stream or when + the writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Gets the path of the writer. + + + + + Indicates how JSON text output is formatted. + + + + + Get or set how dates are written to JSON text. + + + + + Get or set how time zones are handling when writing JSON text. + + + + + Get or set how strings are escaped when writing JSON text. + + + + + Get or set how special floating point numbers, e.g. , + and , + are written to JSON text. + + + + + Get or set how and values are formatting when writing JSON text. + + + + + Gets or sets the culture used when writing JSON. Defaults to . + + + + + Creates an instance of the JsonWriter class. + + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Closes this stream and the underlying stream. + + + + + Writes the beginning of a JSON object. + + + + + Writes the end of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + A flag to indicate whether the text should be escaped when it is written as a JSON property name. + + + + Writes the end of the current JSON object or array. + + + + + Writes the current token and its children. + + The to read the token from. + + + + Writes the current token. + + The to read the token from. + A flag indicating whether the current token's children should be written. + + + + Writes the token and its value. + + The to write. + + The value to write. + A value is only required for tokens that have an associated value, e.g. the property name for . + A null value can be passed to the method for token's that don't have a value, e.g. . + + + + Writes the token. + + The to write. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes out the given white space. + + The string of white space characters. + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Sets the state of the JsonWriter, + + The JsonToken being written. + The value being written. + + + + The exception thrown when an error occurs while reading JSON text. + + + + + Gets the path to the JSON where the error occurred. + + The path to the JSON where the error occurred. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Specifies how JSON comments are handled when loading JSON. + + + + + Ignore comments. + + + + + Load comments as a with type . + + + + + Specifies how line information is handled when loading JSON. + + + + + Ignore line information. + + + + + Load line information. + + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, the ancestors of every token in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every token in the source collection. + + + + Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains every token in the source collection, and the descendants of every token in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every token in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every token in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every token in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every token in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every token in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a collection of objects. + + The type of token + + + + Gets the with the specified key. + + + + + + Represents a JSON array. + + + + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + The is read-only. + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + The is read-only. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Adds an item to the . + + The object to add to the . + The is read-only. + + + + Removes all items from the . + + The is read-only. + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + Gets a value indicating whether the is read-only. + + true if the is read-only; otherwise, false. + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + The is read-only. + + + + Represents a JSON constructor. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a token that can contain other tokens. + + + + + Occurs when the items list of the collection has changed, or the collection is reset. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An containing the descendant tokens of the . + + + + Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. + + An containing this token, and all the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates an that can be used to add tokens to the . + + An that is ready to have content written to it. + + + + Replaces the children nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Merge the specified content into this . + + The content to be merged. + + + + Merge the specified content into this using . + + The content to be merged. + The used to merge the content. + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens + + + + Represents a collection of objects. + + The type of token + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Gets the with the specified key. + + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Represents a JSON object. + + + + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets the node type for this . + + The type. + + + + Gets an of this object's properties. + + An of this object's properties. + + + + Gets a the specified name. + + The property name. + A with the specified name or null. + + + + Gets an of this object's property values. + + An of this object's property values. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Gets the with the specified property name. + + Name of the property. + The with the specified property name. + + + + Gets the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + One of the enumeration values that specifies how the strings will be compared. + The with the specified property name. + + + + Tries to get the with the specified property name. + The exact property name will be searched for first and if no matching property is found then + the will be used to match a property. + + Name of the property. + The value. + One of the enumeration values that specifies how the strings will be compared. + true if a value was successfully retrieved; otherwise, false. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries the get value. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Represents a JSON property. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Gets the node type for this . + + The type. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Loads an from a . + + A that will be read for the content of the . + The used to load the JSON. + If this is null, default load settings will be used. + A that contains the JSON that was read from the specified . + + + + Represents a raw JSON string. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Specifies the settings used when loading JSON. + + + + + Gets or sets how JSON comments are handled when loading JSON. + + The JSON comment handling. + + + + Gets or sets how JSON line info is handled when loading JSON. + + The JSON line info handling. + + + + Specifies the settings used when merging JSON. + + + + + Gets or sets the method used when merging JSON arrays. + + The method used when merging JSON arrays. + + + + Gets or sets how how null value properties are merged. + + How null value properties are merged. + + + + Represents an abstract JSON token. + + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the path of the JSON token. + + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of tokens that contain this token, and the ancestors of this token. + + A collection of tokens that contain this token, and the ancestors of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output is formatted. + A collection of which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to []. + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from [] to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Creates an for this token. + + An that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object + + + + Creates the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates the specified .NET type from the . + + The object type that the token will be deserialized to. + The new object created from the JSON value. + + + + Creates the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates the specified .NET type from the using the specified . + + The object type that the token will be deserialized to. + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + An positioned at the token to read into this . + + An that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + An that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Load a from a string that contains JSON. + + A that contains JSON. + The used to load the JSON. + If this is null, default load settings will be used. + A populated from the string that contains JSON. + + + + Creates a from a . + + An positioned at the token to read into this . + The used to load the JSON. + If this is null, default load settings will be used. + + An that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Creates a from a . + + An positioned at the token to read into this . + + An that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A , or null. + + + + Selects a using a JPath expression. Selects the token that matches the object path. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + A . + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + An that contains the selected elements. + + + + Selects a collection of elements using a JPath expression. + + + A that contains a JPath expression. + + A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. + An that contains the selected elements. + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Adds an object to the annotation list of this . + + The annotation to add. + + + + Get the first annotation object of the specified type from this . + + The type of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets the first annotation object of the specified type from this . + + The of the annotation to retrieve. + The first annotation object that matches the specified type, or null if no annotation is of the specified type. + + + + Gets a collection of annotations of the specified type for this . + + The type of the annotations to retrieve. + An that contains the annotations for this . + + + + Gets a collection of annotations of the specified type for this . + + The of the annotations to retrieve. + An of that contains the annotations that match the specified type for this . + + + + Removes the annotations of the specified type from this . + + The type of annotations to remove. + + + + Removes the annotations of the specified type from this . + + The of annotations to remove. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. + + + + + Gets the at the reader's current position. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Reads the next JSON token from the stream. + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Gets the path of the current JSON token. + + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. + + + + + Gets the at the writer's current position. + + + + + Gets the token being writen. + + The token being writen. + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Closes this stream and the underlying stream. + + + + + Writes the beginning of a JSON object. + + + + + Writes the beginning of a JSON array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a JSON object. + + The name of the property. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a [] value. + + The [] value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Gets a value indicating whether this token has child tokens. + + + true if this token has child values; otherwise, false. + + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Creates a null value. + + A null value. + + + + Creates a undefined value. + + A undefined value. + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + The parameter is null. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Returns the responsible for binding operations performed on this object. + + The expression tree representation of the runtime value. + + The to bind this object. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not the same type as this instance. + + + + + Specifies how JSON arrays are merged together. + + + + Concatenate arrays. + + + Union arrays, skipping items that already exist. + + + Replace all array items. + + + Merge array items together, matched by index. + + + + Specifies how null value properties are merged. + + + + + The content's null value properties will be ignored during merging. + + + + + The content's null value properties will be merged. + + + + + Specifies the member serialization options for the . + + + + + All public members are serialized by default. Members can be excluded using or . + This is the default member serialization mode. + + + + + Only members marked with or are serialized. + This member serialization mode can also be set by marking the class with . + + + + + All public and private fields are serialized. Members can be excluded using or . + This member serialization mode can also be set by marking the class with + and setting IgnoreSerializableAttribute on to false. + + + + + Specifies metadata property handling options for the . + + + + + Read metadata properties located at the start of a JSON object. + + + + + Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. + + + + + Do not try to read metadata properties. + + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Specifies reference handling options for the . + Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement ISerializable. + + + + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + The property is not required but it cannot be a null value. + + + + + Allows users to control class loading and mandate what class to load. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object + The type of the object the formatter creates a new instance of. + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Resolves member mappings for a type, camel casing property names. + + + + + Initializes a new instance of the class. + + + + + Resolves the name of the property. + + Name of the property. + The property name camel cased. + + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Used by to resolves a for a given . + + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + If set to true the will use a cached shared with other resolvers of the same type. + Sharing the cache will significantly improve performance with multiple resolver instances because expensive reflection will only + happen once. This setting can cause unexpected behavior if different instances of the resolver are suppose to produce different + results. When set to false it is highly recommended to reuse instances with the . + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + The contract's default . + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Resolved name of the property. + + + + Resolves the key of the dictionary. By default is used to resolve dictionary keys. + + Key of the dictionary. + Resolved key of the dictionary. + + + + Gets the resolved name of the property. + + Name of the property. + Name of the property. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + The type of the object the formatter creates a new instance of. + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + + + Provides information surrounding an error. + + + + + Gets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets the path of the JSON location where the error occurred. + + The path of the JSON location where the error occurred. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Provides data for the Error event. + + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Provides methods to get attributes. + + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Used by to resolves a for a given . + + + + + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that + + + + Gets the reference for the sepecified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Represents a trace writer. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of Info will exclude Verbose messages and include Info, + Warning and Error messages. + + The that will be used to filter the trace messages passed to the writer. + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Contract details for a used by the . + + + + + Gets the of the collection items. + + The of the collection items. + + + + Gets a value indicating whether the collection type is a multidimensional array. + + true if the collection type is a multidimensional array; otherwise, false. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the collection values. + + true if the creator has a parameter with the collection values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the default collection items . + + The converter. + + + + Gets or sets a value indicating whether the collection items preserve object references. + + true if collection items preserve object references; otherwise, false. + + + + Gets or sets the collection item reference loop handling. + + The reference loop handling. + + + + Gets or sets the collection item type name handling. + + The type name handling. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Handles serialization callback events. + + The object that raised the callback event. + The streaming context. + + + + Handles serialization error callback events. + + The object that raised the callback event. + The streaming context. + The error context. + + + + Sets extension data for an object during deserialization. + + The object to set extension data on. + The extension data key. + The extension data value. + + + + Gets extension data for an object during serialization. + + The object to set extension data on. + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets or sets all methods called immediately after deserialization of the object. + + The methods called immediately after deserialization of the object. + + + + Gets or sets all methods called during deserialization of the object. + + The methods called during deserialization of the object. + + + + Gets or sets all methods called after serialization of the object graph. + + The methods called after serialization of the object graph. + + + + Gets or sets all methods called before serialization of the object. + + The methods called before serialization of the object. + + + + Gets or sets all method called when an error is thrown during the serialization of the object. + + The methods called when an error is thrown during the serialization of the object. + + + + Gets or sets the method called immediately after deserialization of the object. + + The method called immediately after deserialization of the object. + + + + Gets or sets the method called during deserialization of the object. + + The method called during deserialization of the object. + + + + Gets or sets the method called after serialization of the object graph. + + The method called after serialization of the object graph. + + + + Gets or sets the method called before serialization of the object. + + The method called before serialization of the object. + + + + Gets or sets the method called when an error is thrown during the serialization of the object. + + The method called when an error is thrown during the serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether the default creator is non public. + + true if the default object creator is non-public; otherwise, false. + + + + Contract details for a used by the . + + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Gets or sets the dictionary key resolver. + + The dictionary key resolver. + + + + Gets the of the dictionary keys. + + The of the dictionary keys. + + + + Gets the of the dictionary values. + + The of the dictionary values. + + + + Gets or sets the function used to create the object. When set this function will override . + + The function used to create the object. + + + + Gets a value indicating whether the creator has a parameter with the dictionary values. + + true if the creator has a parameter with the dictionary values; otherwise, false. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets the object's properties. + + The object's properties. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets or sets a value that indicates whether the object's properties are required. + + + A value indicating whether the object's properties are required. + + + + + Gets the object's properties. + + The object's properties. + + + + Gets the constructor parameters required for any non-default constructor + + + + + Gets a collection of instances that define the parameters used with . + + + + + Gets or sets the override constructor used to create the object. + This is set when a constructor is marked up using the + JsonConstructor attribute. + + The override constructor. + + + + Gets or sets the parametrized constructor used to create the object. + + The parametrized constructor. + + + + Gets or sets the function used to create the object. When set this function will override . + This function is called with a collection of arguments which are defined by the collection. + + The function used to create the object. + + + + Gets or sets the extension data setter. + + + + + Gets or sets the extension data getter. + + + + + Gets or sets the extension data value type. + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization of a member. + + The numeric order of serialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the for this property. + + The for this property. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes presidence over the contract converter for the property type. + + The converter. + + + + Gets or sets the member converter. + + The member converter. + + + + Gets or sets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets or sets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets or sets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets or sets a value indicating whether this has a member attribute. + + true if has a member attribute; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets or sets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets or sets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets or sets the property null value handling. + + The null value handling. + + + + Gets or sets the property default value handling. + + The default value handling. + + + + Gets or sets the property reference loop handling. + + The reference loop handling. + + + + Gets or sets the property object creation handling. + + The object creation handling. + + + + Gets or sets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialize. + + A predicate used to determine whether the property should be serialize. + + + + Gets or sets a predicate used to determine whether the property should be deserialized. + + A predicate used to determine whether the property should be deserialized. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the converter used when serializing the property's collection items. + + The collection's items converter. + + + + Gets or sets whether this property's collection items are serialized as a reference. + + Whether this property's collection items are serialized as a reference. + + + + Gets or sets the the type name handling used when serializing the property's collection items. + + The collection's items type name handling. + + + + Gets or sets the the reference loop handling used when serializing the property's collection items. + + The collection's items reference loop handling. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of propertyName and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Lookup and create an instance of the JsonConverter type described by the argument. + + The JsonConverter type to create. + Optional arguments to pass to an initializing constructor of the JsonConverter. + If null, the default constructor is used. + + + + Create a factory function that can be used to create instances of a JsonConverter described by the + argument type. The returned function can then be used to either invoke the converter's default ctor, or any + parameterized constructors by way of an object array. + + + + + Represents a trace writer that writes to memory. When the trace message limit is + reached then old trace messages will be removed as new messages are added. + + + + + Gets the that will be used to filter the trace messages passed to the writer. + For example a filter level of Info will exclude Verbose messages and include Info, + Warning and Error messages. + + + The that will be used to filter the trace messages passed to the writer. + + + + + Initializes a new instance of the class. + + + + + Writes the specified trace level, message and optional exception. + + The at which to write this trace. + The trace message. + The trace exception. This parameter is optional. + + + + Returns an enumeration of the most recent trace messages. + + An enumeration of the most recent trace messages. + + + + Returns a of the most recent trace messages. + + + A of the most recent trace messages. + + + + + Represents a method that constructs an object. + + The object type to create. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Provides methods to get attributes from a , , or . + + + + + Initializes a new instance of the class. + + The instance to get attributes for. This parameter should be a , , or . + + + + Returns a collection of all of the attributes, or an empty collection if there are no attributes. + + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. + + The type of the attributes. + When true, look up the hierarchy chain for the inherited custom attribute. + A collection of s, or an empty collection. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Specifies how strings are escaped when writing JSON text. + + + + + Only control characters (e.g. newline) are escaped. + + + + + All non-ASCII and control characters (e.g. newline) are escaped. + + + + + HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. + + + + + Specifies what messages to output for the class. + + + + + Output no tracing and debugging messages. + + + + + Output error-handling messages. + + + + + Output warnings and error-handling messages. + + + + + Output informational messages, warnings, and error-handling messages. + + + + + Output all debugging and tracing messages. + + + + + Specifies type name handling options for the . + + + should be used with caution when your application deserializes JSON from an external source. + Incoming types should be validated with a custom + when deserializing with a value other than TypeNameHandling.None. + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Always include the .NET type name when serializing. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic IList. + + The list to add to. + The collection of elements to add. + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic that returns a result + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Helper method for generating a MetaObject which calls a + specific method on Dynamic, but uses one of the arguments for + the result. + + + + + Returns a Restrictions object which includes our current restrictions merged + with a restriction limiting our type + + + + + Gets a dictionary of the names and values of an Enum type. + + + + + + Gets a dictionary of the names and values of an Enum type. + + The enum type to get names and values for. + + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the member is an indexed property. + + The member. + + true if the member is an indexed property; otherwise, false. + + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Nulls an empty string. + + The string. + Null if the string was null, otherwise the string unchanged. + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls results in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + A array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + + Indicates the method that will be used during deserialization for locating and loading assemblies. + + + + + In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method is used to load the assembly. + + + + + In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the Assembly class is used to load the assembly. + + + + diff --git a/Assets/JsonDotNet/link.xml b/Assets/JsonDotNet/link.xml index cf188f8..cac3e06 100644 --- a/Assets/JsonDotNet/link.xml +++ b/Assets/JsonDotNet/link.xml @@ -1,7 +1,7 @@ - - - - - - + + + + + + \ No newline at end of file diff --git a/Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml b/Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml index eb66da0..2dec784 100644 --- a/Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml +++ b/Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml @@ -1,7 +1,7 @@ - - - - - - + + + + + + \ No newline at end of file diff --git a/Assets/SFX/powerdown.mp3 b/Assets/SFX/powerdown.mp3 new file mode 100644 index 0000000..dc3a18d Binary files /dev/null and b/Assets/SFX/powerdown.mp3 differ diff --git a/Assets/SFX/powerdown.mp3.meta b/Assets/SFX/powerdown.mp3.meta new file mode 100644 index 0000000..d9d8cfd --- /dev/null +++ b/Assets/SFX/powerdown.mp3.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 8321a6bdcaf12834ea7402197bccb4a5 +AudioImporter: + externalObjects: {} + serializedVersion: 7 + defaultSettings: + serializedVersion: 2 + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + preloadAudioData: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SFX/powerup.mp3 b/Assets/SFX/powerup.mp3 new file mode 100644 index 0000000..7951c87 Binary files /dev/null and b/Assets/SFX/powerup.mp3 differ diff --git a/Assets/SFX/powerup.mp3.meta b/Assets/SFX/powerup.mp3.meta new file mode 100644 index 0000000..660e0f3 --- /dev/null +++ b/Assets/SFX/powerup.mp3.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 3b37246743fcfb44da109241bbc1f16d +AudioImporter: + externalObjects: {} + serializedVersion: 7 + defaultSettings: + serializedVersion: 2 + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + preloadAudioData: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity index 9b21db9..0c6ef72 100644 --- a/Assets/Scenes/Game.unity +++ b/Assets/Scenes/Game.unity @@ -104,7 +104,7 @@ NavMeshSettings: serializedVersion: 2 m_ObjectHideFlags: 0 m_BuildSettings: - serializedVersion: 2 + serializedVersion: 3 agentTypeID: 0 agentRadius: 0.5 agentHeight: 2 @@ -117,7 +117,7 @@ NavMeshSettings: cellSize: 0.16666667 manualTileSize: 0 tileSize: 256 - accuratePlacement: 0 + buildHeightMesh: 0 maxJobWorkers: 0 preserveTilesOutsideBounds: 0 debug: @@ -147,13 +147,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 53498157} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 40, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1371508595} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!212 &53498159 SpriteRenderer: @@ -286,13 +286,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 67069227} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 3.28, y: 0.39, z: 0} m_LocalScale: {x: 3.720098, y: 3.3945894, z: 3.720098} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 264299955} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!50 &67069230 Rigidbody2D: @@ -311,6 +311,12 @@ Rigidbody2D: m_AngularDrag: 0.05 m_GravityScale: 1 m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 m_Interpolate: 0 m_SleepingMode: 1 m_CollisionDetection: 0 @@ -325,6 +331,25 @@ PolygonCollider2D: m_Enabled: 1 m_Density: 1 m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 m_IsTrigger: 1 m_UsedByEffector: 0 m_UsedByComposite: 0 @@ -379,6 +404,7 @@ PolygonCollider2D: - {x: 0.54020315, y: -0.55492747} - {x: 0.7202032, y: -0.49252638} - {x: 0.8523984, y: -0.44777405} + m_UseDelaunayMesh: 0 --- !u!114 &67069232 MonoBehaviour: m_ObjectHideFlags: 0 @@ -430,8 +456,6 @@ MonoBehaviour: rightTangent: {x: -0.5359726, y: 0.00048208237, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -440,8 +464,6 @@ MonoBehaviour: rightTangent: {x: 0.53783464, y: -0.00056660175, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -450,8 +472,6 @@ MonoBehaviour: rightTangent: {x: 2.0187497, y: 0.38778567, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -460,8 +480,6 @@ MonoBehaviour: rightTangent: {x: 0.27353573, y: 0.00046253204, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -470,8 +488,6 @@ MonoBehaviour: rightTangent: {x: -0.062002182, y: -0.57465553, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -480,8 +496,6 @@ MonoBehaviour: rightTangent: {x: -0.54391515, y: -0.00042247772, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -496,11 +510,68 @@ MonoBehaviour: m_ColliderDetail: 16 m_ColliderOffset: 0.5 m_UpdateCollider: 1 - m_OptimizeCollider: 1 - m_OptimizeGeometry: 1 m_EnableTangents: 0 m_GeometryCached: 0 m_UTess2D: 0 + m_Creator: {fileID: 0} + m_Modifiers: [] + m_ColliderSegment: + - {x: -7.3853846, y: -3.5118275} + - {x: -7.462919, y: -3.4734979} + - {x: -7.7344885, y: -3.1196246} + - {x: -7.6983, y: -2.8877048} + - {x: -7.6152744, y: -2.6433997} + - {x: -7.34101, y: -2.082646} + - {x: -7.1591177, y: -1.7775459} + - {x: -6.8772693, y: -1.3637687} + - {x: -6.4911947, y: -0.87343603} + - {x: -6.193196, y: -0.5635567} + - {x: -5.986504, y: -0.37765393} + - {x: -5.7233963, y: -0.19110987} + - {x: -5.449176, y: -0.061216116} + - {x: -5.1704173, y: -0.011142552} + - {x: -4.988349, y: -0.030188322} + - {x: -4.5722694, y: -0.14356822} + - {x: -3.6556292, y: -0.43513843} + - {x: -3.0240202, y: -0.6093232} + - {x: -2.6415687, y: -0.69588214} + - {x: -2.2283669, y: -0.770589} + - {x: -1.7444584, y: -0.82969236} + - {x: -1.2598088, y: -0.8565188} + - {x: -0.9647635, y: -0.8593359} + - {x: -0.5236485, y: -0.8309032} + - {x: -0.0797549, y: -0.76557326} + - {x: 0.3033234, y: -0.67227656} + - {x: 0.6894196, y: -0.5423232} + - {x: 1.0759759, y: -0.3813097} + - {x: 1.5053141, y: -0.17022783} + - {x: 1.9359852, y: 0.06882024} + - {x: 2.5511994, y: 0.44731832} + - {x: 3.7499123, y: 1.2618806} + - {x: 4.1940546, y: 1.5403798} + - {x: 4.3854246, y: 1.6301482} + - {x: 4.616488, y: 1.6679611} + - {x: 4.823597, y: 1.5714803} + - {x: 5.285446, y: 1.1509432} + - {x: 5.938713, y: 0.47277457} + - {x: 6.7030997, y: -0.3625012} + - {x: 7.564384, y: -1.3405285} + - {x: 8.216779, y: -2.1119733} + - {x: 8.6437235, y: -2.6496587} + - {x: 8.791569, y: -2.8636844} + - {x: 8.842677, y: -2.9748535} + - {x: 8.860329, y: -3.1396956} + - {x: 8.6039715, y: -3.4080763} + - {x: 8.192574, y: -3.5087175} + - {x: 7.679965, y: -3.563291} + - {x: 7.0409794, y: -3.596912} + - {x: 6.1628284, y: -3.6138554} + - {x: 5.155706, y: -3.6123476} + - {x: 3.6460013, y: -3.586553} + - {x: 1.6370275, y: -3.5224314} + - {x: -0.62444425, y: -3.4317436} + - {x: -6.918007, y: -3.5080879} + - {x: -7.3853846, y: -3.5118275} --- !u!1971053207 &88746876 SpriteShapeRenderer: m_ObjectHideFlags: 0 @@ -559,6 +630,7 @@ SpriteShapeRenderer: m_LocalAABB: m_Center: {x: 0.5629206, y: -0.9738171, z: 0} m_Extent: {x: 8.297409, y: 2.6417782, z: 0} + m_SpriteSortPoint: 0 --- !u!4 &88746877 Transform: m_ObjectHideFlags: 0 @@ -566,13 +638,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 88746874} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -143.57788, y: -1.7367756, z: 0.0729104} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 753870229} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!60 &88746878 PolygonCollider2D: @@ -584,6 +656,25 @@ PolygonCollider2D: m_Enabled: 0 m_Density: 1 m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 m_IsTrigger: 0 m_UsedByEffector: 0 m_UsedByComposite: 0 @@ -654,13 +745,14 @@ PolygonCollider2D: - {x: 1.6370275, y: -3.5224314} - {x: -0.62444425, y: -3.4317436} - {x: -6.918007, y: -3.5080879} - - {x: -7.210502, y: -3.51089} - {x: -7.3853846, y: -3.5118275} + m_UseDelaunayMesh: 0 --- !u!1001 &162025921 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: + serializedVersion: 3 m_TransformParent: {fileID: 0} m_Modifications: - target: {fileID: 8038344524183138612, guid: 0277167a12290af47801444830a2be97, type: 3} @@ -728,6 +820,9 @@ PrefabInstance: value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 0277167a12290af47801444830a2be97, type: 3} --- !u!1 &162025922 stripped GameObject: @@ -773,8 +868,6 @@ MonoBehaviour: rightTangent: {x: -0.5359726, y: 0.00048208237, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -783,8 +876,6 @@ MonoBehaviour: rightTangent: {x: 0.53783464, y: -0.00056660175, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -793,8 +884,6 @@ MonoBehaviour: rightTangent: {x: 2.0187497, y: 0.38778567, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -803,8 +892,6 @@ MonoBehaviour: rightTangent: {x: 0.27353573, y: 0.00046253204, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -813,8 +900,6 @@ MonoBehaviour: rightTangent: {x: -0.062002182, y: -0.57465553, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -823,8 +908,6 @@ MonoBehaviour: rightTangent: {x: -0.54391515, y: -0.00042247772, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -839,11 +922,68 @@ MonoBehaviour: m_ColliderDetail: 16 m_ColliderOffset: 0.5 m_UpdateCollider: 1 - m_OptimizeCollider: 1 - m_OptimizeGeometry: 1 m_EnableTangents: 0 m_GeometryCached: 0 m_UTess2D: 0 + m_Creator: {fileID: 0} + m_Modifiers: [] + m_ColliderSegment: + - {x: -7.3853846, y: -3.5118275} + - {x: -7.462919, y: -3.4734979} + - {x: -7.7344885, y: -3.1196246} + - {x: -7.6983, y: -2.8877048} + - {x: -7.6152744, y: -2.6433997} + - {x: -7.34101, y: -2.082646} + - {x: -7.1591177, y: -1.7775459} + - {x: -6.8772693, y: -1.3637687} + - {x: -6.4911947, y: -0.87343603} + - {x: -6.193196, y: -0.5635567} + - {x: -5.986504, y: -0.37765393} + - {x: -5.7233963, y: -0.19110987} + - {x: -5.449176, y: -0.061216116} + - {x: -5.1704173, y: -0.011142552} + - {x: -4.988349, y: -0.030188322} + - {x: -4.5722694, y: -0.14356822} + - {x: -3.6556292, y: -0.43513843} + - {x: -3.0240202, y: -0.6093232} + - {x: -2.6415687, y: -0.69588214} + - {x: -2.2283669, y: -0.770589} + - {x: -1.7444584, y: -0.82969236} + - {x: -1.2598088, y: -0.8565188} + - {x: -0.9647635, y: -0.8593359} + - {x: -0.5236485, y: -0.8309032} + - {x: -0.0797549, y: -0.76557326} + - {x: 0.3033234, y: -0.67227656} + - {x: 0.6894196, y: -0.5423232} + - {x: 1.0759759, y: -0.3813097} + - {x: 1.5053141, y: -0.17022783} + - {x: 1.9359852, y: 0.06882024} + - {x: 2.5511994, y: 0.44731832} + - {x: 3.7499123, y: 1.2618806} + - {x: 4.1940546, y: 1.5403798} + - {x: 4.3854246, y: 1.6301482} + - {x: 4.616488, y: 1.6679611} + - {x: 4.823597, y: 1.5714803} + - {x: 5.285446, y: 1.1509432} + - {x: 5.938713, y: 0.47277457} + - {x: 6.7030997, y: -0.3625012} + - {x: 7.564384, y: -1.3405285} + - {x: 8.216779, y: -2.1119733} + - {x: 8.6437235, y: -2.6496587} + - {x: 8.791569, y: -2.8636844} + - {x: 8.842677, y: -2.9748535} + - {x: 8.860329, y: -3.1396956} + - {x: 8.6039715, y: -3.4080763} + - {x: 8.192574, y: -3.5087175} + - {x: 7.679965, y: -3.563291} + - {x: 7.0409794, y: -3.596912} + - {x: 6.1628284, y: -3.6138554} + - {x: 5.155706, y: -3.6123476} + - {x: 3.6460013, y: -3.586553} + - {x: 1.6370275, y: -3.5224314} + - {x: -0.62444425, y: -3.4317436} + - {x: -6.918007, y: -3.5080879} + - {x: -7.3853846, y: -3.5118275} --- !u!1971053207 &204007387 SpriteShapeRenderer: m_ObjectHideFlags: 0 @@ -902,6 +1042,7 @@ SpriteShapeRenderer: m_LocalAABB: m_Center: {x: 0.5629206, y: -0.9738171, z: 0} m_Extent: {x: 8.297409, y: 2.6417782, z: 0} + m_SpriteSortPoint: 0 --- !u!4 &204007388 Transform: m_ObjectHideFlags: 0 @@ -909,13 +1050,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 204007385} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -143.57788, y: -1.7367756, z: 0.0729104} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 753870229} - m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!60 &204007389 PolygonCollider2D: @@ -927,6 +1068,25 @@ PolygonCollider2D: m_Enabled: 0 m_Density: 1 m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 m_IsTrigger: 0 m_UsedByEffector: 0 m_UsedByComposite: 0 @@ -997,8 +1157,8 @@ PolygonCollider2D: - {x: 1.6370275, y: -3.5224314} - {x: -0.62444425, y: -3.4317436} - {x: -6.918007, y: -3.5080879} - - {x: -7.210502, y: -3.51089} - {x: -7.3853846, y: -3.5118275} + m_UseDelaunayMesh: 0 --- !u!1 &239795865 GameObject: m_ObjectHideFlags: 0 @@ -1075,6 +1235,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 239795865} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 10} m_LocalScale: {x: 1, y: 1, z: 1} @@ -1083,7 +1244,6 @@ Transform: - {fileID: 449598764} - {fileID: 1219477791} m_Father: {fileID: 1449942455} - m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &264299953 GameObject: @@ -1121,6 +1281,7 @@ MonoBehaviour: invert: 1 txtScore: {fileID: 655106714} ExplosionFX: {fileID: 162025922} + ExplosionSFX: {fileID: 8300000, guid: 396008ada1d7b7b499d3e85cdbd66542, type: 3} input: -0.000032736 inputSmoothness: 0.1 inputRange: 400 @@ -1136,6 +1297,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 264299953} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -65.9, y: 3, z: 0} m_LocalScale: {x: 0.52774125, y: 0.52774125, z: 0.52774125} @@ -1147,7 +1309,6 @@ Transform: - {fileID: 67069229} - {fileID: 301185259} m_Father: {fileID: 0} - m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &267093889 GameObject: @@ -1181,7 +1342,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1547934481} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} @@ -1274,6 +1434,25 @@ PolygonCollider2D: m_Enabled: 1 m_Density: 1 m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 m_IsTrigger: 0 m_UsedByEffector: 0 m_UsedByComposite: 0 @@ -1343,6 +1522,7 @@ PolygonCollider2D: - {x: 0.78, y: -1.22} - {x: 0.88, y: -1.13} - {x: 0.98999995, y: -1.0699999} + m_UseDelaunayMesh: 0 --- !u!50 &294927379 Rigidbody2D: serializedVersion: 4 @@ -1360,6 +1540,12 @@ Rigidbody2D: m_AngularDrag: 0.05 m_GravityScale: 0 m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 m_Interpolate: 0 m_SleepingMode: 1 m_CollisionDetection: 0 @@ -1423,13 +1609,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 294927377} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0.10594707, w: 0.9943718} m_LocalPosition: {x: -155.2, y: 7.7, z: 0} m_LocalScale: {x: 1.4508, y: 1.4508, z: 1.4508} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: -12.163} --- !u!1 &301185257 GameObject: @@ -1510,13 +1696,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 301185257} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 5.248784, y: 0.4547683, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 264299955} - m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!60 &301185261 PolygonCollider2D: @@ -1528,6 +1714,25 @@ PolygonCollider2D: m_Enabled: 1 m_Density: 1 m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 m_IsTrigger: 1 m_UsedByEffector: 0 m_UsedByComposite: 0 @@ -1659,6 +1864,7 @@ PolygonCollider2D: - {x: 5.3199997, y: -0.305} - {x: 5.2999997, y: -0.285} - {x: 5.27, y: -0.295} + m_UseDelaunayMesh: 0 --- !u!50 &301185262 Rigidbody2D: serializedVersion: 4 @@ -1676,6 +1882,12 @@ Rigidbody2D: m_AngularDrag: 0.05 m_GravityScale: 1 m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 m_Interpolate: 0 m_SleepingMode: 1 m_CollisionDetection: 0 @@ -1725,7 +1937,6 @@ RectTransform: m_Children: - {fileID: 2012299923} m_Father: {fileID: 1547934481} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -1850,13 +2061,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 449598763} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -40, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 239795867} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!212 &449598765 SpriteRenderer: @@ -1941,7 +2152,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1940864853} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -2066,13 +2276,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 467946480} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 10} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1449942455} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &506353509 GameObject: @@ -2099,13 +2309,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 506353509} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 3.2799928, y: 0.39000008, z: 0} m_LocalScale: {x: 3.7200978, y: 3.3945894, z: 3.7200978} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 264299955} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &506353511 MonoBehaviour: @@ -2129,6 +2339,25 @@ PolygonCollider2D: m_Enabled: 1 m_Density: 1 m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 m_IsTrigger: 1 m_UsedByEffector: 0 m_UsedByComposite: 0 @@ -2154,6 +2383,7 @@ PolygonCollider2D: - {x: 1.1825287, y: -0.38360748} - {x: 0.4858305, y: -0.6312909} - {x: -0.44142842, y: -0.67449844} + m_UseDelaunayMesh: 0 --- !u!1 &513263553 GameObject: m_ObjectHideFlags: 0 @@ -2193,8 +2423,6 @@ MonoBehaviour: rightTangent: {x: -0.5359726, y: 0.00048208237, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -2203,8 +2431,6 @@ MonoBehaviour: rightTangent: {x: 0.53783464, y: -0.00056660175, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -2213,8 +2439,6 @@ MonoBehaviour: rightTangent: {x: 2.0187497, y: 0.38778567, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -2223,8 +2447,6 @@ MonoBehaviour: rightTangent: {x: 0.27353573, y: 0.00046253204, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -2233,8 +2455,6 @@ MonoBehaviour: rightTangent: {x: -0.062002182, y: -0.57465553, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -2243,8 +2463,6 @@ MonoBehaviour: rightTangent: {x: -0.54391515, y: -0.00042247772, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -2259,11 +2477,68 @@ MonoBehaviour: m_ColliderDetail: 16 m_ColliderOffset: 0.5 m_UpdateCollider: 1 - m_OptimizeCollider: 1 - m_OptimizeGeometry: 1 m_EnableTangents: 0 m_GeometryCached: 0 m_UTess2D: 0 + m_Creator: {fileID: 0} + m_Modifiers: [] + m_ColliderSegment: + - {x: -7.3853846, y: -3.5118275} + - {x: -7.462919, y: -3.4734979} + - {x: -7.7344885, y: -3.1196246} + - {x: -7.6983, y: -2.8877048} + - {x: -7.6152744, y: -2.6433997} + - {x: -7.34101, y: -2.082646} + - {x: -7.1591177, y: -1.7775459} + - {x: -6.8772693, y: -1.3637687} + - {x: -6.4911947, y: -0.87343603} + - {x: -6.193196, y: -0.5635567} + - {x: -5.986504, y: -0.37765393} + - {x: -5.7233963, y: -0.19110987} + - {x: -5.449176, y: -0.061216116} + - {x: -5.1704173, y: -0.011142552} + - {x: -4.988349, y: -0.030188322} + - {x: -4.5722694, y: -0.14356822} + - {x: -3.6556292, y: -0.43513843} + - {x: -3.0240202, y: -0.6093232} + - {x: -2.6415687, y: -0.69588214} + - {x: -2.2283669, y: -0.770589} + - {x: -1.7444584, y: -0.82969236} + - {x: -1.2598088, y: -0.8565188} + - {x: -0.9647635, y: -0.8593359} + - {x: -0.5236485, y: -0.8309032} + - {x: -0.0797549, y: -0.76557326} + - {x: 0.3033234, y: -0.67227656} + - {x: 0.6894196, y: -0.5423232} + - {x: 1.0759759, y: -0.3813097} + - {x: 1.5053141, y: -0.17022783} + - {x: 1.9359852, y: 0.06882024} + - {x: 2.5511994, y: 0.44731832} + - {x: 3.7499123, y: 1.2618806} + - {x: 4.1940546, y: 1.5403798} + - {x: 4.3854246, y: 1.6301482} + - {x: 4.616488, y: 1.6679611} + - {x: 4.823597, y: 1.5714803} + - {x: 5.285446, y: 1.1509432} + - {x: 5.938713, y: 0.47277457} + - {x: 6.7030997, y: -0.3625012} + - {x: 7.564384, y: -1.3405285} + - {x: 8.216779, y: -2.1119733} + - {x: 8.6437235, y: -2.6496587} + - {x: 8.791569, y: -2.8636844} + - {x: 8.842677, y: -2.9748535} + - {x: 8.860329, y: -3.1396956} + - {x: 8.6039715, y: -3.4080763} + - {x: 8.192574, y: -3.5087175} + - {x: 7.679965, y: -3.563291} + - {x: 7.0409794, y: -3.596912} + - {x: 6.1628284, y: -3.6138554} + - {x: 5.155706, y: -3.6123476} + - {x: 3.6460013, y: -3.586553} + - {x: 1.6370275, y: -3.5224314} + - {x: -0.62444425, y: -3.4317436} + - {x: -6.918007, y: -3.5080879} + - {x: -7.3853846, y: -3.5118275} --- !u!1971053207 &513263555 SpriteShapeRenderer: m_ObjectHideFlags: 0 @@ -2322,6 +2597,7 @@ SpriteShapeRenderer: m_LocalAABB: m_Center: {x: 0.5629206, y: -0.9738171, z: 0} m_Extent: {x: 8.297409, y: 2.6417782, z: 0} + m_SpriteSortPoint: 0 --- !u!4 &513263556 Transform: m_ObjectHideFlags: 0 @@ -2329,13 +2605,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 513263553} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -143.57788, y: -1.7367756, z: 0.0729104} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 753870229} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!60 &513263557 PolygonCollider2D: @@ -2347,6 +2623,25 @@ PolygonCollider2D: m_Enabled: 0 m_Density: 1 m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 m_IsTrigger: 0 m_UsedByEffector: 0 m_UsedByComposite: 0 @@ -2417,8 +2712,8 @@ PolygonCollider2D: - {x: 1.6370275, y: -3.5224314} - {x: -0.62444425, y: -3.4317436} - {x: -6.918007, y: -3.5080879} - - {x: -7.210502, y: -3.51089} - {x: -7.3853846, y: -3.5118275} + m_UseDelaunayMesh: 0 --- !u!1 &581857051 GameObject: m_ObjectHideFlags: 0 @@ -2458,8 +2753,6 @@ MonoBehaviour: rightTangent: {x: -0.5359726, y: 0.00048208237, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -2468,8 +2761,6 @@ MonoBehaviour: rightTangent: {x: 0.53783464, y: -0.00056660175, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -2478,8 +2769,6 @@ MonoBehaviour: rightTangent: {x: 2.0187497, y: 0.38778567, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -2488,8 +2777,6 @@ MonoBehaviour: rightTangent: {x: 0.27353573, y: 0.00046253204, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -2498,8 +2785,6 @@ MonoBehaviour: rightTangent: {x: -0.062002182, y: -0.57465553, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -2508,8 +2793,6 @@ MonoBehaviour: rightTangent: {x: -0.54391515, y: -0.00042247772, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -2524,11 +2807,68 @@ MonoBehaviour: m_ColliderDetail: 16 m_ColliderOffset: 0.5 m_UpdateCollider: 1 - m_OptimizeCollider: 1 - m_OptimizeGeometry: 1 m_EnableTangents: 0 m_GeometryCached: 0 m_UTess2D: 0 + m_Creator: {fileID: 0} + m_Modifiers: [] + m_ColliderSegment: + - {x: -7.3853846, y: -3.5118275} + - {x: -7.462919, y: -3.4734979} + - {x: -7.7344885, y: -3.1196246} + - {x: -7.6983, y: -2.8877048} + - {x: -7.6152744, y: -2.6433997} + - {x: -7.34101, y: -2.082646} + - {x: -7.1591177, y: -1.7775459} + - {x: -6.8772693, y: -1.3637687} + - {x: -6.4911947, y: -0.87343603} + - {x: -6.193196, y: -0.5635567} + - {x: -5.986504, y: -0.37765393} + - {x: -5.7233963, y: -0.19110987} + - {x: -5.449176, y: -0.061216116} + - {x: -5.1704173, y: -0.011142552} + - {x: -4.988349, y: -0.030188322} + - {x: -4.5722694, y: -0.14356822} + - {x: -3.6556292, y: -0.43513843} + - {x: -3.0240202, y: -0.6093232} + - {x: -2.6415687, y: -0.69588214} + - {x: -2.2283669, y: -0.770589} + - {x: -1.7444584, y: -0.82969236} + - {x: -1.2598088, y: -0.8565188} + - {x: -0.9647635, y: -0.8593359} + - {x: -0.5236485, y: -0.8309032} + - {x: -0.0797549, y: -0.76557326} + - {x: 0.3033234, y: -0.67227656} + - {x: 0.6894196, y: -0.5423232} + - {x: 1.0759759, y: -0.3813097} + - {x: 1.5053141, y: -0.17022783} + - {x: 1.9359852, y: 0.06882024} + - {x: 2.5511994, y: 0.44731832} + - {x: 3.7499123, y: 1.2618806} + - {x: 4.1940546, y: 1.5403798} + - {x: 4.3854246, y: 1.6301482} + - {x: 4.616488, y: 1.6679611} + - {x: 4.823597, y: 1.5714803} + - {x: 5.285446, y: 1.1509432} + - {x: 5.938713, y: 0.47277457} + - {x: 6.7030997, y: -0.3625012} + - {x: 7.564384, y: -1.3405285} + - {x: 8.216779, y: -2.1119733} + - {x: 8.6437235, y: -2.6496587} + - {x: 8.791569, y: -2.8636844} + - {x: 8.842677, y: -2.9748535} + - {x: 8.860329, y: -3.1396956} + - {x: 8.6039715, y: -3.4080763} + - {x: 8.192574, y: -3.5087175} + - {x: 7.679965, y: -3.563291} + - {x: 7.0409794, y: -3.596912} + - {x: 6.1628284, y: -3.6138554} + - {x: 5.155706, y: -3.6123476} + - {x: 3.6460013, y: -3.586553} + - {x: 1.6370275, y: -3.5224314} + - {x: -0.62444425, y: -3.4317436} + - {x: -6.918007, y: -3.5080879} + - {x: -7.3853846, y: -3.5118275} --- !u!1971053207 &581857053 SpriteShapeRenderer: m_ObjectHideFlags: 0 @@ -2587,6 +2927,7 @@ SpriteShapeRenderer: m_LocalAABB: m_Center: {x: 0.5629206, y: -0.9738171, z: 0} m_Extent: {x: 8.297409, y: 2.6417782, z: 0} + m_SpriteSortPoint: 0 --- !u!4 &581857054 Transform: m_ObjectHideFlags: 0 @@ -2594,13 +2935,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 581857051} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -143.57788, y: -1.7367756, z: 0.0729104} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 753870229} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!60 &581857057 PolygonCollider2D: @@ -2612,6 +2953,25 @@ PolygonCollider2D: m_Enabled: 0 m_Density: 1 m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 m_IsTrigger: 0 m_UsedByEffector: 0 m_UsedByComposite: 0 @@ -2682,8 +3042,8 @@ PolygonCollider2D: - {x: 1.6370275, y: -3.5224314} - {x: -0.62444425, y: -3.4317436} - {x: -6.918007, y: -3.5080879} - - {x: -7.210502, y: -3.51089} - {x: -7.3853846, y: -3.5118275} + m_UseDelaunayMesh: 0 --- !u!1 &597624421 GameObject: m_ObjectHideFlags: 0 @@ -2723,8 +3083,6 @@ MonoBehaviour: rightTangent: {x: -0.5359726, y: 0.00048208237, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -2733,8 +3091,6 @@ MonoBehaviour: rightTangent: {x: 0.53783464, y: -0.00056660175, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -2743,8 +3099,6 @@ MonoBehaviour: rightTangent: {x: 2.0187497, y: 0.38778567, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -2753,8 +3107,6 @@ MonoBehaviour: rightTangent: {x: 0.27353573, y: 0.00046253204, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -2763,8 +3115,6 @@ MonoBehaviour: rightTangent: {x: -0.062002182, y: -0.57465553, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -2773,8 +3123,6 @@ MonoBehaviour: rightTangent: {x: -0.54391515, y: -0.00042247772, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -2789,11 +3137,68 @@ MonoBehaviour: m_ColliderDetail: 16 m_ColliderOffset: 0.5 m_UpdateCollider: 1 - m_OptimizeCollider: 1 - m_OptimizeGeometry: 1 m_EnableTangents: 0 m_GeometryCached: 0 m_UTess2D: 0 + m_Creator: {fileID: 0} + m_Modifiers: [] + m_ColliderSegment: + - {x: -7.3853846, y: -3.5118275} + - {x: -7.462919, y: -3.4734979} + - {x: -7.7344885, y: -3.1196246} + - {x: -7.6983, y: -2.8877048} + - {x: -7.6152744, y: -2.6433997} + - {x: -7.34101, y: -2.082646} + - {x: -7.1591177, y: -1.7775459} + - {x: -6.8772693, y: -1.3637687} + - {x: -6.4911947, y: -0.87343603} + - {x: -6.193196, y: -0.5635567} + - {x: -5.986504, y: -0.37765393} + - {x: -5.7233963, y: -0.19110987} + - {x: -5.449176, y: -0.061216116} + - {x: -5.1704173, y: -0.011142552} + - {x: -4.988349, y: -0.030188322} + - {x: -4.5722694, y: -0.14356822} + - {x: -3.6556292, y: -0.43513843} + - {x: -3.0240202, y: -0.6093232} + - {x: -2.6415687, y: -0.69588214} + - {x: -2.2283669, y: -0.770589} + - {x: -1.7444584, y: -0.82969236} + - {x: -1.2598088, y: -0.8565188} + - {x: -0.9647635, y: -0.8593359} + - {x: -0.5236485, y: -0.8309032} + - {x: -0.0797549, y: -0.76557326} + - {x: 0.3033234, y: -0.67227656} + - {x: 0.6894196, y: -0.5423232} + - {x: 1.0759759, y: -0.3813097} + - {x: 1.5053141, y: -0.17022783} + - {x: 1.9359852, y: 0.06882024} + - {x: 2.5511994, y: 0.44731832} + - {x: 3.7499123, y: 1.2618806} + - {x: 4.1940546, y: 1.5403798} + - {x: 4.3854246, y: 1.6301482} + - {x: 4.616488, y: 1.6679611} + - {x: 4.823597, y: 1.5714803} + - {x: 5.285446, y: 1.1509432} + - {x: 5.938713, y: 0.47277457} + - {x: 6.7030997, y: -0.3625012} + - {x: 7.564384, y: -1.3405285} + - {x: 8.216779, y: -2.1119733} + - {x: 8.6437235, y: -2.6496587} + - {x: 8.791569, y: -2.8636844} + - {x: 8.842677, y: -2.9748535} + - {x: 8.860329, y: -3.1396956} + - {x: 8.6039715, y: -3.4080763} + - {x: 8.192574, y: -3.5087175} + - {x: 7.679965, y: -3.563291} + - {x: 7.0409794, y: -3.596912} + - {x: 6.1628284, y: -3.6138554} + - {x: 5.155706, y: -3.6123476} + - {x: 3.6460013, y: -3.586553} + - {x: 1.6370275, y: -3.5224314} + - {x: -0.62444425, y: -3.4317436} + - {x: -6.918007, y: -3.5080879} + - {x: -7.3853846, y: -3.5118275} --- !u!1971053207 &597624423 SpriteShapeRenderer: m_ObjectHideFlags: 0 @@ -2852,6 +3257,7 @@ SpriteShapeRenderer: m_LocalAABB: m_Center: {x: 0.5629206, y: -0.9738171, z: 0} m_Extent: {x: 8.297409, y: 2.6417782, z: 0} + m_SpriteSortPoint: 0 --- !u!4 &597624424 Transform: m_ObjectHideFlags: 0 @@ -2859,13 +3265,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 597624421} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -143.57788, y: -1.7367756, z: 0.0729104} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 753870229} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!60 &597624425 PolygonCollider2D: @@ -2877,6 +3283,25 @@ PolygonCollider2D: m_Enabled: 0 m_Density: 1 m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 m_IsTrigger: 0 m_UsedByEffector: 0 m_UsedByComposite: 0 @@ -2947,8 +3372,8 @@ PolygonCollider2D: - {x: 1.6370275, y: -3.5224314} - {x: -0.62444425, y: -3.4317436} - {x: -6.918007, y: -3.5080879} - - {x: -7.210502, y: -3.51089} - {x: -7.3853846, y: -3.5118275} + m_UseDelaunayMesh: 0 --- !u!1 &602917651 GameObject: m_ObjectHideFlags: 0 @@ -2981,7 +3406,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 760674623} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -3163,6 +3587,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 635958794} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 10} m_LocalScale: {x: 1, y: 1, z: 1} @@ -3171,7 +3596,6 @@ Transform: - {fileID: 1931640969} - {fileID: 1615807479} m_Father: {fileID: 1449942455} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &655106712 GameObject: @@ -3204,7 +3628,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 760674623} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -3278,13 +3701,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 661937230} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 3.2799928, y: 0.39000008, z: 0} m_LocalScale: {x: 3.7200978, y: 3.3945894, z: 3.7200978} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 264299955} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &661937232 MonoBehaviour: @@ -3308,6 +3731,25 @@ PolygonCollider2D: m_Enabled: 1 m_Density: 1 m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 m_IsTrigger: 1 m_UsedByEffector: 0 m_UsedByComposite: 0 @@ -3329,6 +3771,7 @@ PolygonCollider2D: - {x: 0.033880252, y: 1.0312995} - {x: 1.1829697, y: 0.7497945} - {x: 0.5341143, y: 1.4679719} + m_UseDelaunayMesh: 0 --- !u!1 &753870227 GameObject: m_ObjectHideFlags: 0 @@ -3419,6 +3862,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 753870227} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 15.477869, y: 0.8067756, z: -0.0729104} m_LocalScale: {x: 1, y: 1, z: 1} @@ -3433,7 +3877,6 @@ Transform: - {fileID: 204007388} - {fileID: 1483817712} m_Father: {fileID: 0} - m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &753870230 MonoBehaviour: @@ -3524,7 +3967,9 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 + m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 m_SortingOrder: 0 m_TargetDisplay: 0 @@ -3545,7 +3990,6 @@ RectTransform: - {fileID: 655106713} - {fileID: 1547934481} m_Father: {fileID: 0} - m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -3597,7 +4041,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 760674623} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -3624,6 +4067,7 @@ Animator: m_HasTransformHierarchy: 1 m_AllowConstantClipSamplingOptimization: 1 m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 --- !u!114 &774609070 MonoBehaviour: m_ObjectHideFlags: 0 @@ -3726,13 +4170,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 852246587} + serializedVersion: 2 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: 0} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &855220809 GameObject: @@ -3758,13 +4202,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 855220809} + serializedVersion: 2 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: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &855220812 MonoBehaviour: @@ -3816,13 +4260,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 918429316} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 40, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2120181088} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!212 &918429318 SpriteRenderer: @@ -3915,8 +4359,6 @@ MonoBehaviour: rightTangent: {x: -0.5359726, y: 0.00048208237, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -3925,8 +4367,6 @@ MonoBehaviour: rightTangent: {x: 0.53783464, y: -0.00056660175, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -3935,8 +4375,6 @@ MonoBehaviour: rightTangent: {x: 2.0187497, y: 0.38778567, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -3945,8 +4383,6 @@ MonoBehaviour: rightTangent: {x: 0.27353573, y: 0.00046253204, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -3955,8 +4391,6 @@ MonoBehaviour: rightTangent: {x: -0.062002182, y: -0.57465553, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -3965,8 +4399,6 @@ MonoBehaviour: rightTangent: {x: -0.54391515, y: -0.00042247772, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -3981,11 +4413,68 @@ MonoBehaviour: m_ColliderDetail: 16 m_ColliderOffset: 0.5 m_UpdateCollider: 1 - m_OptimizeCollider: 1 - m_OptimizeGeometry: 1 m_EnableTangents: 0 m_GeometryCached: 0 m_UTess2D: 0 + m_Creator: {fileID: 0} + m_Modifiers: [] + m_ColliderSegment: + - {x: -7.3853846, y: -3.5118275} + - {x: -7.462919, y: -3.4734979} + - {x: -7.7344885, y: -3.1196246} + - {x: -7.6983, y: -2.8877048} + - {x: -7.6152744, y: -2.6433997} + - {x: -7.34101, y: -2.082646} + - {x: -7.1591177, y: -1.7775459} + - {x: -6.8772693, y: -1.3637687} + - {x: -6.4911947, y: -0.87343603} + - {x: -6.193196, y: -0.5635567} + - {x: -5.986504, y: -0.37765393} + - {x: -5.7233963, y: -0.19110987} + - {x: -5.449176, y: -0.061216116} + - {x: -5.1704173, y: -0.011142552} + - {x: -4.988349, y: -0.030188322} + - {x: -4.5722694, y: -0.14356822} + - {x: -3.6556292, y: -0.43513843} + - {x: -3.0240202, y: -0.6093232} + - {x: -2.6415687, y: -0.69588214} + - {x: -2.2283669, y: -0.770589} + - {x: -1.7444584, y: -0.82969236} + - {x: -1.2598088, y: -0.8565188} + - {x: -0.9647635, y: -0.8593359} + - {x: -0.5236485, y: -0.8309032} + - {x: -0.0797549, y: -0.76557326} + - {x: 0.3033234, y: -0.67227656} + - {x: 0.6894196, y: -0.5423232} + - {x: 1.0759759, y: -0.3813097} + - {x: 1.5053141, y: -0.17022783} + - {x: 1.9359852, y: 0.06882024} + - {x: 2.5511994, y: 0.44731832} + - {x: 3.7499123, y: 1.2618806} + - {x: 4.1940546, y: 1.5403798} + - {x: 4.3854246, y: 1.6301482} + - {x: 4.616488, y: 1.6679611} + - {x: 4.823597, y: 1.5714803} + - {x: 5.285446, y: 1.1509432} + - {x: 5.938713, y: 0.47277457} + - {x: 6.7030997, y: -0.3625012} + - {x: 7.564384, y: -1.3405285} + - {x: 8.216779, y: -2.1119733} + - {x: 8.6437235, y: -2.6496587} + - {x: 8.791569, y: -2.8636844} + - {x: 8.842677, y: -2.9748535} + - {x: 8.860329, y: -3.1396956} + - {x: 8.6039715, y: -3.4080763} + - {x: 8.192574, y: -3.5087175} + - {x: 7.679965, y: -3.563291} + - {x: 7.0409794, y: -3.596912} + - {x: 6.1628284, y: -3.6138554} + - {x: 5.155706, y: -3.6123476} + - {x: 3.6460013, y: -3.586553} + - {x: 1.6370275, y: -3.5224314} + - {x: -0.62444425, y: -3.4317436} + - {x: -6.918007, y: -3.5080879} + - {x: -7.3853846, y: -3.5118275} --- !u!1971053207 &1012466600 SpriteShapeRenderer: m_ObjectHideFlags: 0 @@ -4044,6 +4533,7 @@ SpriteShapeRenderer: m_LocalAABB: m_Center: {x: 0.5629206, y: -0.9738171, z: 0} m_Extent: {x: 8.297409, y: 2.6417782, z: 0} + m_SpriteSortPoint: 0 --- !u!4 &1012466601 Transform: m_ObjectHideFlags: 0 @@ -4051,13 +4541,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1012466598} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -143.57788, y: -1.7367756, z: 0.0729104} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 753870229} - m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!60 &1012466602 PolygonCollider2D: @@ -4069,6 +4559,25 @@ PolygonCollider2D: m_Enabled: 0 m_Density: 1 m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 m_IsTrigger: 0 m_UsedByEffector: 0 m_UsedByComposite: 0 @@ -4139,8 +4648,8 @@ PolygonCollider2D: - {x: 1.6370275, y: -3.5224314} - {x: -0.62444425, y: -3.4317436} - {x: -6.918007, y: -3.5080879} - - {x: -7.210502, y: -3.51089} - {x: -7.3853846, y: -3.5118275} + m_UseDelaunayMesh: 0 --- !u!1 &1151093107 GameObject: m_ObjectHideFlags: 0 @@ -4218,6 +4727,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1151093107} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -166.52, y: 3.9645233, z: -0.057104} m_LocalScale: {x: 0.1352079, y: 0.1352079, z: 0.1352079} @@ -4225,7 +4735,6 @@ Transform: m_Children: - {fileID: 1650402219} m_Father: {fileID: 0} - m_RootOrder: 12 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!61 &1151093110 BoxCollider2D: @@ -4237,6 +4746,25 @@ BoxCollider2D: m_Enabled: 1 m_Density: 1 m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 m_IsTrigger: 0 m_UsedByEffector: 0 m_UsedByComposite: 0 @@ -4277,13 +4805,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1212605697} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -40, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2120181088} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!212 &1212605699 SpriteRenderer: @@ -4361,13 +4889,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1219477790} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 40, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 239795867} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!212 &1219477792 SpriteRenderer: @@ -4499,13 +5027,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1305185923} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0.10594707, w: 0.9943718} m_LocalPosition: {x: -157.6, y: 2.1385326, z: 0} m_LocalScale: {x: 1.4508, y: 1.4508, z: 1.4508} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: -12.163} --- !u!50 &1305185926 Rigidbody2D: @@ -4524,6 +5052,12 @@ Rigidbody2D: m_AngularDrag: 0.05 m_GravityScale: 0 m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 m_Interpolate: 0 m_SleepingMode: 1 m_CollisionDetection: 0 @@ -4538,6 +5072,25 @@ PolygonCollider2D: m_Enabled: 1 m_Density: 1 m_Material: {fileID: 6200000, guid: 974ddea486cdf95f7aedbce5e6db4edc, type: 2} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 m_IsTrigger: 0 m_UsedByEffector: 0 m_UsedByComposite: 0 @@ -4617,6 +5170,7 @@ PolygonCollider2D: - {x: -0.55, y: -1.5} - {x: -0.37, y: -1.49} - {x: -0.29999998, y: -1.52} + m_UseDelaunayMesh: 0 --- !u!1 &1368371776 GameObject: m_ObjectHideFlags: 0 @@ -4636,6 +5190,7 @@ GameObject: m_IsActive: 0 --- !u!120 &1368371777 LineRenderer: + serializedVersion: 2 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -4723,16 +5278,20 @@ LineRenderer: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 numCornerVertices: 0 numCapVertices: 0 alignment: 0 textureMode: 0 + textureScale: {x: 1, y: 1} shadowBias: 0.5 generateLightingData: 0 + m_MaskInteraction: 0 m_UseWorldSpace: 0 m_Loop: 0 + m_ApplyActiveColorSpace: 0 --- !u!4 &1368371778 Transform: m_ObjectHideFlags: 0 @@ -4740,13 +5299,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1368371776} + serializedVersion: 2 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: 0} - m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1371508593 GameObject: @@ -4824,6 +5383,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1371508593} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 10} m_LocalScale: {x: 1, y: 1, z: 1} @@ -4832,7 +5392,6 @@ Transform: - {fileID: 1516280136} - {fileID: 53498158} m_Father: {fileID: 1449942455} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1449942452 GameObject: @@ -4875,9 +5434,17 @@ Camera: m_projectionMatrixMode: 1 m_GateFitMode: 2 m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 m_SensorSize: {x: 36, y: 24} m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 x: 0 @@ -4911,6 +5478,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1449942452} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: -10} m_LocalScale: {x: 1.8, y: 1.8, z: 1.5} @@ -4922,7 +5490,6 @@ Transform: - {fileID: 1371508595} - {fileID: 239795867} m_Father: {fileID: 0} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1449942456 MonoBehaviour: @@ -4965,17 +5532,17 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1471538015} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -1.02, y: -0.37, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 264299955} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!96 &1471538017 TrailRenderer: - serializedVersion: 2 + serializedVersion: 3 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -5016,6 +5583,7 @@ TrailRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_Time: 1 + m_PreviewTimeScale: 1 m_Parameters: serializedVersion: 3 widthMultiplier: 1 @@ -5079,17 +5647,21 @@ TrailRenderer: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 3 numCornerVertices: 0 numCapVertices: 0 alignment: 0 textureMode: 0 + textureScale: {x: 1, y: 1} shadowBias: 0.5 generateLightingData: 0 m_MinVertexDistance: 0.1 + m_MaskInteraction: 0 m_Autodestruct: 0 m_Emitting: 1 + m_ApplyActiveColorSpace: 0 --- !u!1 &1483817709 GameObject: m_ObjectHideFlags: 0 @@ -5129,8 +5701,6 @@ MonoBehaviour: rightTangent: {x: -0.5359726, y: 0.00048208237, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -5139,8 +5709,6 @@ MonoBehaviour: rightTangent: {x: 0.53783464, y: -0.00056660175, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -5149,8 +5717,6 @@ MonoBehaviour: rightTangent: {x: 2.0187497, y: 0.38778567, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -5159,8 +5725,6 @@ MonoBehaviour: rightTangent: {x: 0.27353573, y: 0.00046253204, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -5169,8 +5733,6 @@ MonoBehaviour: rightTangent: {x: -0.062002182, y: -0.57465553, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -5179,8 +5741,6 @@ MonoBehaviour: rightTangent: {x: -0.54391515, y: -0.00042247772, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -5195,11 +5755,68 @@ MonoBehaviour: m_ColliderDetail: 16 m_ColliderOffset: 0.5 m_UpdateCollider: 1 - m_OptimizeCollider: 1 - m_OptimizeGeometry: 1 m_EnableTangents: 0 m_GeometryCached: 0 m_UTess2D: 0 + m_Creator: {fileID: 0} + m_Modifiers: [] + m_ColliderSegment: + - {x: -7.3853846, y: -3.5118275} + - {x: -7.462919, y: -3.4734979} + - {x: -7.7344885, y: -3.1196246} + - {x: -7.6983, y: -2.8877048} + - {x: -7.6152744, y: -2.6433997} + - {x: -7.34101, y: -2.082646} + - {x: -7.1591177, y: -1.7775459} + - {x: -6.8772693, y: -1.3637687} + - {x: -6.4911947, y: -0.87343603} + - {x: -6.193196, y: -0.5635567} + - {x: -5.986504, y: -0.37765393} + - {x: -5.7233963, y: -0.19110987} + - {x: -5.449176, y: -0.061216116} + - {x: -5.1704173, y: -0.011142552} + - {x: -4.988349, y: -0.030188322} + - {x: -4.5722694, y: -0.14356822} + - {x: -3.6556292, y: -0.43513843} + - {x: -3.0240202, y: -0.6093232} + - {x: -2.6415687, y: -0.69588214} + - {x: -2.2283669, y: -0.770589} + - {x: -1.7444584, y: -0.82969236} + - {x: -1.2598088, y: -0.8565188} + - {x: -0.9647635, y: -0.8593359} + - {x: -0.5236485, y: -0.8309032} + - {x: -0.0797549, y: -0.76557326} + - {x: 0.3033234, y: -0.67227656} + - {x: 0.6894196, y: -0.5423232} + - {x: 1.0759759, y: -0.3813097} + - {x: 1.5053141, y: -0.17022783} + - {x: 1.9359852, y: 0.06882024} + - {x: 2.5511994, y: 0.44731832} + - {x: 3.7499123, y: 1.2618806} + - {x: 4.1940546, y: 1.5403798} + - {x: 4.3854246, y: 1.6301482} + - {x: 4.616488, y: 1.6679611} + - {x: 4.823597, y: 1.5714803} + - {x: 5.285446, y: 1.1509432} + - {x: 5.938713, y: 0.47277457} + - {x: 6.7030997, y: -0.3625012} + - {x: 7.564384, y: -1.3405285} + - {x: 8.216779, y: -2.1119733} + - {x: 8.6437235, y: -2.6496587} + - {x: 8.791569, y: -2.8636844} + - {x: 8.842677, y: -2.9748535} + - {x: 8.860329, y: -3.1396956} + - {x: 8.6039715, y: -3.4080763} + - {x: 8.192574, y: -3.5087175} + - {x: 7.679965, y: -3.563291} + - {x: 7.0409794, y: -3.596912} + - {x: 6.1628284, y: -3.6138554} + - {x: 5.155706, y: -3.6123476} + - {x: 3.6460013, y: -3.586553} + - {x: 1.6370275, y: -3.5224314} + - {x: -0.62444425, y: -3.4317436} + - {x: -6.918007, y: -3.5080879} + - {x: -7.3853846, y: -3.5118275} --- !u!1971053207 &1483817711 SpriteShapeRenderer: m_ObjectHideFlags: 0 @@ -5258,6 +5875,7 @@ SpriteShapeRenderer: m_LocalAABB: m_Center: {x: 0.5629206, y: -0.9738171, z: 0} m_Extent: {x: 8.297409, y: 2.6417782, z: 0} + m_SpriteSortPoint: 0 --- !u!4 &1483817712 Transform: m_ObjectHideFlags: 0 @@ -5265,13 +5883,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1483817709} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -143.57788, y: -1.7367756, z: 0.0729104} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 753870229} - m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!60 &1483817713 PolygonCollider2D: @@ -5283,6 +5901,25 @@ PolygonCollider2D: m_Enabled: 0 m_Density: 1 m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 m_IsTrigger: 0 m_UsedByEffector: 0 m_UsedByComposite: 0 @@ -5353,8 +5990,8 @@ PolygonCollider2D: - {x: 1.6370275, y: -3.5224314} - {x: -0.62444425, y: -3.4317436} - {x: -6.918007, y: -3.5080879} - - {x: -7.210502, y: -3.51089} - {x: -7.3853846, y: -3.5118275} + m_UseDelaunayMesh: 0 --- !u!1 &1516280135 GameObject: m_ObjectHideFlags: 0 @@ -5379,13 +6016,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1516280135} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -40, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1371508595} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!212 &1516280137 SpriteRenderer: @@ -5473,7 +6110,6 @@ RectTransform: - {fileID: 1940864853} - {fileID: 341583999} m_Father: {fileID: 760674623} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -5556,8 +6192,6 @@ MonoBehaviour: rightTangent: {x: -0.53597355, y: 0.00048208237, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -5566,8 +6200,6 @@ MonoBehaviour: rightTangent: {x: 1.0023332, y: -0.0010559559, z: -0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -5576,8 +6208,6 @@ MonoBehaviour: rightTangent: {x: 0.48696995, y: 0.0008234978, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -5586,8 +6216,6 @@ MonoBehaviour: rightTangent: {x: 0.5425911, y: -1.1006677, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -5596,8 +6224,6 @@ MonoBehaviour: rightTangent: {x: 0.6362877, y: 0.15030003, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -5606,8 +6232,6 @@ MonoBehaviour: rightTangent: {x: -0.54390717, y: -0.00042247772, z: 0} mode: 2 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -5622,11 +6246,12 @@ MonoBehaviour: m_ColliderDetail: 16 m_ColliderOffset: 0.5 m_UpdateCollider: 1 - m_OptimizeCollider: 1 - m_OptimizeGeometry: 1 m_EnableTangents: 0 m_GeometryCached: 0 m_UTess2D: 0 + m_Creator: {fileID: 0} + m_Modifiers: [] + m_ColliderSegment: [] --- !u!1971053207 &1554778517 SpriteShapeRenderer: m_ObjectHideFlags: 0 @@ -5685,6 +6310,7 @@ SpriteShapeRenderer: m_LocalAABB: m_Center: {x: 7.6981974, y: -0.010440826, z: 0} m_Extent: {x: 17.980568, y: 3.981062, z: 0} + m_SpriteSortPoint: 0 --- !u!4 &1554778518 Transform: m_ObjectHideFlags: 0 @@ -5692,13 +6318,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1554778515} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -0.35714984, y: -3.2322228, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1615807478 GameObject: @@ -5724,13 +6350,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1615807478} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 40, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 635958796} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!212 &1615807480 SpriteRenderer: @@ -5809,13 +6435,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1650402218} + serializedVersion: 2 m_LocalRotation: {x: -0.7071068, y: -0, z: -0, w: 0.7071068} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0.73697156, y: 0.7369716, z: 0.7369716} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1151093109} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} --- !u!199 &1650402220 ParticleSystemRenderer: @@ -6107,6 +6733,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 minGradient: @@ -6136,6 +6763,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 startSize: @@ -6457,6 +7085,7 @@ ParticleSystem: m_PostInfinity: 2 m_RotationOrder: 4 randomizeRotationDirection: 0 + gravitySource: 0 maxNumParticles: 7 customEmitterVelocity: {x: 0, y: 0, z: 0} size3D: 0 @@ -7186,6 +7815,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 3 minGradient: @@ -7215,6 +7845,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 UVModule: @@ -9435,6 +10066,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 minGradient: @@ -9464,6 +10096,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 range: {x: 0, y: 1} @@ -9841,6 +10474,7 @@ ParticleSystem: m_RotationOrder: 4 minVertexDistance: 0.2 textureMode: 0 + textureScale: {x: 1, y: 1} ribbonCount: 1 shadowBias: 0.5 worldSpace: 0 @@ -9883,6 +10517,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 minGradient: @@ -9912,6 +10547,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 widthOverTrail: @@ -9999,6 +10635,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 minGradient: @@ -10028,6 +10665,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 CustomDataModule: @@ -10066,6 +10704,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 minGradient: @@ -10095,6 +10734,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 colorLabel0: Color @@ -10348,6 +10988,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 minGradient: @@ -10377,6 +11018,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 colorLabel1: Color @@ -10635,8 +11277,6 @@ MonoBehaviour: rightTangent: {x: -0.5359726, y: 0.00048208237, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -10645,8 +11285,6 @@ MonoBehaviour: rightTangent: {x: 0.53783464, y: -0.00056660175, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -10655,8 +11293,6 @@ MonoBehaviour: rightTangent: {x: 2.0187497, y: 0.38778567, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -10665,8 +11301,6 @@ MonoBehaviour: rightTangent: {x: 0.27353573, y: 0.00046253204, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -10675,8 +11309,6 @@ MonoBehaviour: rightTangent: {x: -0.062002182, y: -0.57465553, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -10685,8 +11317,6 @@ MonoBehaviour: rightTangent: {x: -0.54391515, y: -0.00042247772, z: 0} mode: 1 height: 1 - bevelCutoff: 0 - bevelSize: 0 spriteIndex: 0 corner: 1 m_CornerMode: 1 @@ -10701,11 +11331,68 @@ MonoBehaviour: m_ColliderDetail: 16 m_ColliderOffset: 0.5 m_UpdateCollider: 1 - m_OptimizeCollider: 1 - m_OptimizeGeometry: 1 m_EnableTangents: 0 m_GeometryCached: 0 m_UTess2D: 0 + m_Creator: {fileID: 0} + m_Modifiers: [] + m_ColliderSegment: + - {x: -7.3853846, y: -3.5118275} + - {x: -7.462919, y: -3.4734979} + - {x: -7.7344885, y: -3.1196246} + - {x: -7.6983, y: -2.8877048} + - {x: -7.6152744, y: -2.6433997} + - {x: -7.34101, y: -2.082646} + - {x: -7.1591177, y: -1.7775459} + - {x: -6.8772693, y: -1.3637687} + - {x: -6.4911947, y: -0.87343603} + - {x: -6.193196, y: -0.5635567} + - {x: -5.986504, y: -0.37765393} + - {x: -5.7233963, y: -0.19110987} + - {x: -5.449176, y: -0.061216116} + - {x: -5.1704173, y: -0.011142552} + - {x: -4.988349, y: -0.030188322} + - {x: -4.5722694, y: -0.14356822} + - {x: -3.6556292, y: -0.43513843} + - {x: -3.0240202, y: -0.6093232} + - {x: -2.6415687, y: -0.69588214} + - {x: -2.2283669, y: -0.770589} + - {x: -1.7444584, y: -0.82969236} + - {x: -1.2598088, y: -0.8565188} + - {x: -0.9647635, y: -0.8593359} + - {x: -0.5236485, y: -0.8309032} + - {x: -0.0797549, y: -0.76557326} + - {x: 0.3033234, y: -0.67227656} + - {x: 0.6894196, y: -0.5423232} + - {x: 1.0759759, y: -0.3813097} + - {x: 1.5053141, y: -0.17022783} + - {x: 1.9359852, y: 0.06882024} + - {x: 2.5511994, y: 0.44731832} + - {x: 3.7499123, y: 1.2618806} + - {x: 4.1940546, y: 1.5403798} + - {x: 4.3854246, y: 1.6301482} + - {x: 4.616488, y: 1.6679611} + - {x: 4.823597, y: 1.5714803} + - {x: 5.285446, y: 1.1509432} + - {x: 5.938713, y: 0.47277457} + - {x: 6.7030997, y: -0.3625012} + - {x: 7.564384, y: -1.3405285} + - {x: 8.216779, y: -2.1119733} + - {x: 8.6437235, y: -2.6496587} + - {x: 8.791569, y: -2.8636844} + - {x: 8.842677, y: -2.9748535} + - {x: 8.860329, y: -3.1396956} + - {x: 8.6039715, y: -3.4080763} + - {x: 8.192574, y: -3.5087175} + - {x: 7.679965, y: -3.563291} + - {x: 7.0409794, y: -3.596912} + - {x: 6.1628284, y: -3.6138554} + - {x: 5.155706, y: -3.6123476} + - {x: 3.6460013, y: -3.586553} + - {x: 1.6370275, y: -3.5224314} + - {x: -0.62444425, y: -3.4317436} + - {x: -6.918007, y: -3.5080879} + - {x: -7.3853846, y: -3.5118275} --- !u!1971053207 &1917319959 SpriteShapeRenderer: m_ObjectHideFlags: 0 @@ -10764,6 +11451,7 @@ SpriteShapeRenderer: m_LocalAABB: m_Center: {x: 0.5629206, y: -0.9738171, z: 0} m_Extent: {x: 8.297409, y: 2.6417782, z: 0} + m_SpriteSortPoint: 0 --- !u!4 &1917319960 Transform: m_ObjectHideFlags: 0 @@ -10771,13 +11459,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1917319957} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -143.57788, y: -1.7367756, z: 0.0729104} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 753870229} - m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!60 &1917319961 PolygonCollider2D: @@ -10789,6 +11477,25 @@ PolygonCollider2D: m_Enabled: 0 m_Density: 1 m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 m_IsTrigger: 0 m_UsedByEffector: 0 m_UsedByComposite: 0 @@ -10859,8 +11566,8 @@ PolygonCollider2D: - {x: 1.6370275, y: -3.5224314} - {x: -0.62444425, y: -3.4317436} - {x: -6.918007, y: -3.5080879} - - {x: -7.210502, y: -3.51089} - {x: -7.3853846, y: -3.5118275} + m_UseDelaunayMesh: 0 --- !u!1 &1923920627 GameObject: m_ObjectHideFlags: 0 @@ -10890,6 +11597,25 @@ PolygonCollider2D: m_Enabled: 1 m_Density: 1 m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 m_IsTrigger: 0 m_UsedByEffector: 0 m_UsedByComposite: 0 @@ -10948,6 +11674,7 @@ PolygonCollider2D: - {x: -0.45999998, y: -0.98999995} - {x: -0.24, y: -0.81} - {x: -0.11, y: -0.62} + m_UseDelaunayMesh: 0 --- !u!50 &1923920629 Rigidbody2D: serializedVersion: 4 @@ -10965,6 +11692,12 @@ Rigidbody2D: m_AngularDrag: 0.05 m_GravityScale: 0 m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 m_Interpolate: 0 m_SleepingMode: 1 m_CollisionDetection: 0 @@ -11028,13 +11761,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1923920627} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0.10594707, w: 0.9943718} m_LocalPosition: {x: -151.7, y: 2.1385326, z: 0} m_LocalScale: {x: 1.4508, y: 1.4508, z: 1.4508} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 11 m_LocalEulerAnglesHint: {x: 0, y: 0, z: -12.163} --- !u!1 &1931640968 GameObject: @@ -11060,13 +11793,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1931640968} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -40, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 635958796} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!212 &1931640970 SpriteRenderer: @@ -11153,7 +11886,6 @@ RectTransform: m_Children: - {fileID: 463791429} m_Father: {fileID: 1547934481} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -11285,7 +12017,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 341583999} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -11410,6 +12141,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2120181086} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 10} m_LocalScale: {x: 1, y: 1, z: 1} @@ -11418,5 +12150,21 @@ Transform: - {fileID: 1212605698} - {fileID: 918429317} m_Father: {fileID: 1449942455} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 855220811} + - {fileID: 162025921} + - {fileID: 1449942455} + - {fileID: 852246590} + - {fileID: 1554778518} + - {fileID: 264299955} + - {fileID: 760674623} + - {fileID: 753870229} + - {fileID: 1368371778} + - {fileID: 1305185925} + - {fileID: 294927381} + - {fileID: 1923920631} + - {fileID: 1151093109} diff --git a/Assets/Scenes/Login.unity b/Assets/Scenes/Login.unity index acf805d..e4760f2 100644 --- a/Assets/Scenes/Login.unity +++ b/Assets/Scenes/Login.unity @@ -3999,6 +3999,9 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: explosionSFX: {fileID: 8300000, guid: 396008ada1d7b7b499d3e85cdbd66542, type: 3} + powerupSFX: {fileID: 8300000, guid: 3b37246743fcfb44da109241bbc1f16d, type: 3} + powerdownSFX: {fileID: 8300000, guid: 8321a6bdcaf12834ea7402197bccb4a5, type: 3} + whooshSFX: {fileID: 8300000, guid: 9ff1952e5fa85cb4c8540e8f409ee0df, type: 3} SourceSFX: {fileID: 1319665561} SourceMusic: {fileID: 804316955} levels: diff --git a/Assets/Scripts/AdsManager.cs b/Assets/Scripts/AdsManager.cs index 26c5302..6a7f266 100644 --- a/Assets/Scripts/AdsManager.cs +++ b/Assets/Scripts/AdsManager.cs @@ -1,158 +1,158 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using GoogleMobileAds.Api; -using UnityEngine; - -public class AdsManager : MonoBehaviour -{ - // Start is called before the first frame update - - public static AdsManager instance; - void Awake(){ - if(instance!= null){Destroy(gameObject);} - instance = this; - } - - const string intAdId = "ca-app-pub-3966734202864173/9071918772"; - const string rewardedAdId = "ca-app-pub-3966734202864173/7802288880"; - void Start() - { - DontDestroyOnLoad(gameObject); - // Initialize the Google Mobile Ads SDK. - MobileAds.Initialize(initStatus => { Debug.Log("admob Init status : " + initStatus.ToString());}); - - StartCoroutine(ReloadAds(true)); - } - - private InterstitialAd interstitialAd; - - /// - /// Loads the interstitial ad. - /// - public void LoadInterstitialAd() - { - // Clean up the old ad before loading a new one. - if (interstitialAd != null) - { - interstitialAd.Destroy(); - interstitialAd = null; - } - - Debug.Log("Loading the interstitial ad."); - - // create our request used to load the ad. - var adRequest = new AdRequest.Builder() - .AddKeyword("unity-admob-sample") - .Build(); - - // send the request to load the ad. - InterstitialAd.Load(intAdId, adRequest, - (InterstitialAd ad, LoadAdError error) => - { - // if error is not null, the load request failed. - if (error != null || ad == null) - { - Debug.LogError("interstitial ad failed to load an ad " + - "with error : " + error); - return; - } - - Debug.Log("Interstitial ad loaded with response : " - + ad.GetResponseInfo()); - - interstitialAd = ad; - }); - - - } - - public void ShowIntAd() - { - if (interstitialAd != null && interstitialAd.CanShowAd()) - { - Debug.Log("Showing interstitial ad."); - interstitialAd.Show(); - } - else - { - Debug.LogError("Interstitial ad is not ready yet."); - } - StartCoroutine(ReloadAds(false)); - - } - - - private RewardedAd rewardedAd; - - /// - /// Loads the rewarded ad. - /// - public void LoadRewardedAd() - { - // Clean up the old ad before loading a new one. - if (rewardedAd != null) - { - rewardedAd.Destroy(); - rewardedAd = null; - } - - Debug.Log("Loading the rewarded ad."); - - // create our request used to load the ad. - var adRequest = new AdRequest.Builder().Build(); - - // send the request to load the ad. - RewardedAd.Load(rewardedAdId, adRequest, - (RewardedAd ad, LoadAdError error) => - { - // if error is not null, the load request failed. - if (error != null || ad == null) - { - Debug.LogError("Rewarded ad failed to load an ad " + - "with error : " + error); - return; - } - - Debug.Log("Rewarded ad loaded with response : " - + ad.GetResponseInfo()); - - rewardedAd = ad; - - rewardedAd.OnAdPaid += OnRewardSuccess; - }); - } - - private void OnRewardSuccess(AdValue obj) - { - // GameManager.AdWatched(); - } - - public void ShowRewardedAd() - { - const string rewardMsg = - "Rewarded ad rewarded the user. Type: {0}, amount: {1}."; - - if (rewardedAd != null && rewardedAd.CanShowAd()) - { - rewardedAd.Show((Reward reward) => - { - // TODO: Reward the user. - Debug.Log(String.Format(rewardMsg, reward.Type, reward.Amount)); - }); - } - - StartCoroutine(ReloadAds(true)); - } - - - IEnumerator ReloadAds(bool rewarded){ - yield return new WaitForSeconds(2); - LoadInterstitialAd(); - if(rewarded){ - LoadRewardedAd(); - } - } - - -} +using System; +using System.Collections; +using System.Collections.Generic; +using GoogleMobileAds.Api; +using UnityEngine; + +public class AdsManager : MonoBehaviour +{ + // Start is called before the first frame update + + public static AdsManager instance; + void Awake(){ + if(instance!= null){Destroy(gameObject);} + instance = this; + } + + const string intAdId = "ca-app-pub-3966734202864173/9071918772"; + const string rewardedAdId = "ca-app-pub-3966734202864173/7802288880"; + void Start() + { + DontDestroyOnLoad(gameObject); + // Initialize the Google Mobile Ads SDK. + MobileAds.Initialize(initStatus => { Debug.Log("admob Init status : " + initStatus.ToString());}); + + StartCoroutine(ReloadAds(true)); + } + + private InterstitialAd interstitialAd; + + /// + /// Loads the interstitial ad. + /// + public void LoadInterstitialAd() + { + // Clean up the old ad before loading a new one. + if (interstitialAd != null) + { + interstitialAd.Destroy(); + interstitialAd = null; + } + + Debug.Log("Loading the interstitial ad."); + + // create our request used to load the ad. + var adRequest = new AdRequest.Builder() + .AddKeyword("unity-admob-sample") + .Build(); + + // send the request to load the ad. + InterstitialAd.Load(intAdId, adRequest, + (InterstitialAd ad, LoadAdError error) => + { + // if error is not null, the load request failed. + if (error != null || ad == null) + { + Debug.LogError("interstitial ad failed to load an ad " + + "with error : " + error); + return; + } + + Debug.Log("Interstitial ad loaded with response : " + + ad.GetResponseInfo()); + + interstitialAd = ad; + }); + + + } + + public void ShowIntAd() + { + if (interstitialAd != null && interstitialAd.CanShowAd()) + { + Debug.Log("Showing interstitial ad."); + interstitialAd.Show(); + } + else + { + Debug.LogError("Interstitial ad is not ready yet."); + } + StartCoroutine(ReloadAds(false)); + + } + + + private RewardedAd rewardedAd; + + /// + /// Loads the rewarded ad. + /// + public void LoadRewardedAd() + { + // Clean up the old ad before loading a new one. + if (rewardedAd != null) + { + rewardedAd.Destroy(); + rewardedAd = null; + } + + Debug.Log("Loading the rewarded ad."); + + // create our request used to load the ad. + var adRequest = new AdRequest.Builder().Build(); + + // send the request to load the ad. + RewardedAd.Load(rewardedAdId, adRequest, + (RewardedAd ad, LoadAdError error) => + { + // if error is not null, the load request failed. + if (error != null || ad == null) + { + Debug.LogError("Rewarded ad failed to load an ad " + + "with error : " + error); + return; + } + + Debug.Log("Rewarded ad loaded with response : " + + ad.GetResponseInfo()); + + rewardedAd = ad; + + rewardedAd.OnAdPaid += OnRewardSuccess; + }); + } + + private void OnRewardSuccess(AdValue obj) + { + // GameManager.AdWatched(); + } + + public void ShowRewardedAd() + { + const string rewardMsg = + "Rewarded ad rewarded the user. Type: {0}, amount: {1}."; + + if (rewardedAd != null && rewardedAd.CanShowAd()) + { + rewardedAd.Show((Reward reward) => + { + // TODO: Reward the user. + Debug.Log(String.Format(rewardMsg, reward.Type, reward.Amount)); + }); + } + + StartCoroutine(ReloadAds(true)); + } + + + IEnumerator ReloadAds(bool rewarded){ + yield return new WaitForSeconds(2); + LoadInterstitialAd(); + if(rewarded){ + LoadRewardedAd(); + } + } + + +} diff --git a/Assets/Scripts/AppleLogin.cs b/Assets/Scripts/AppleLogin.cs new file mode 100644 index 0000000..1ecef2f --- /dev/null +++ b/Assets/Scripts/AppleLogin.cs @@ -0,0 +1,92 @@ +using System.Collections; +using System.Collections.Generic; +using System.Text; +using AppleAuth; +using AppleAuth.Enums; +using AppleAuth.Interfaces; +using AppleAuth.Native; +using UnityEngine; + +public class AppleLogin : MonoBehaviour +{ + public GoogleLoginManager googleLogin; + IAppleAuthManager m_AppleAuthManager; + public string Token { get; private set; } + public string Error { get; private set; } + + public void Initialize() + { + var deserializer = new PayloadDeserializer(); + m_AppleAuthManager = new AppleAuthManager(deserializer); + } + + public void Update() + { + if (m_AppleAuthManager != null) + { + m_AppleAuthManager.Update(); + } + } + + public void LoginToApple() + { + // Initialize the Apple Auth Manager + if (m_AppleAuthManager == null) + { + Initialize(); + } + + // Set the login arguments + var loginArgs = new AppleAuthLoginArgs(LoginOptions.IncludeEmail | LoginOptions.IncludeFullName); + + // Perform the login + m_AppleAuthManager.LoginWithAppleId( + loginArgs, + credential => + { + var appleIDCredential = credential as IAppleIDCredential; + if (appleIDCredential != null) + { + var idToken = Encoding.UTF8.GetString( + appleIDCredential.IdentityToken, + 0, + appleIDCredential.IdentityToken.Length); + Debug.Log("Sign-in with Apple successfully done. IDToken: " + idToken); + Token = idToken; + + if (appleIDCredential == null) + { + MessageDialog.instance.ShowMessage("Error", "Failed to login using Apple ID.\nError Code: A-00"); + }else if(appleIDCredential.Email == null) + { + MessageDialog.instance.ShowMessage("Error", "Failed to login using Apple ID.\nError Code: A-0E"); + + } + else if (appleIDCredential.FullName == null) + { + MessageDialog.instance.ShowMessage("Error", "Failed to login using Apple ID.\nError Code: A-0U"); + + } + var fullname = appleIDCredential.Email; + Debug.Log("Email : " + appleIDCredential.Email); + Debug.Log("User :" + fullname); + + googleLogin.OnAppleSigninDone(fullname, appleIDCredential.Email); + + } + else + { + Debug.Log("Sign-in with Apple error. Message: appleIDCredential is null"); + Error = "Retrieving Apple Id Token failed."; + } + }, + error => + { + Debug.Log("Sign-in with Apple error. Message: " + error); + Error = "Retrieving Apple Id Token failed."; + } + ); + + + } +} diff --git a/Assets/Scripts/AudioManager.cs b/Assets/Scripts/AudioManager.cs index dbffadf..1dbf5a0 100644 --- a/Assets/Scripts/AudioManager.cs +++ b/Assets/Scripts/AudioManager.cs @@ -1,84 +1,102 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public class AudioManager : MonoBehaviour -{ - public static AudioManager instance; - public AudioClip explosionSFX; - [SerializeField]public AudioSource SourceSFX; - [SerializeField]public AudioSource SourceMusic; - [SerializeField]public LevelAudioCombo[] levels; - public static bool isMuteMusic {get{ - if(PlayerPrefs.HasKey("music")){ - return PlayerPrefs.GetInt("music") == 0; - }else{ - return false; - } - }} - public static bool isMuteSFX {get{ - if(PlayerPrefs.HasKey("sfx")){ - return PlayerPrefs.GetInt("sfx") == 0; - }else{ - return false; - } - }} - public static void ToggleMusic(){ - if(isMuteMusic){ - PlayerPrefs.SetInt("music",1); - instance.SourceMusic.volume = instance.defVol; - }else{ - PlayerPrefs.SetInt("music",0); - instance.SourceMusic.volume = 0; - } - PlayerPrefs.Save(); - - } - - float defVol; - public static void ToggleSFX(){ - if(isMuteSFX){ - PlayerPrefs.SetInt("sfx",1); - }else{ - PlayerPrefs.SetInt("sfx",0); - } - PlayerPrefs.Save(); - - } - - void Awake(){ - instance= this; - DontDestroyOnLoad(this); - defVol = SourceMusic.volume; - } - - public static void ChangeMusicToScene(string scene){ - AudioClip chosen = instance.levels[0].clip; - - foreach(LevelAudioCombo level in instance.levels){ - if(level.name == scene){ - chosen = level.clip; - break; - } - } - - ChangeBGMusic(chosen); - } - - public static void ChangeBGMusic(AudioClip clip){ - instance.SourceMusic.Stop(); - instance.SourceMusic.clip = clip; - instance.SourceMusic.Play(); - } - - public static void PlayExplosion(){ - if(isMuteSFX){return;} - instance.SourceSFX.PlayOneShot(instance.explosionSFX); - } -} - -[System.Serializable] -public class LevelAudioCombo{ - public string name; - public AudioClip clip; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class AudioManager : MonoBehaviour +{ + public static AudioManager instance; + public AudioClip explosionSFX; + public AudioClip powerupSFX; + public AudioClip powerdownSFX; + public AudioClip whooshSFX; + [SerializeField]public AudioSource SourceSFX; + [SerializeField]public AudioSource SourceMusic; + [SerializeField]public LevelAudioCombo[] levels; + public static bool isMuteMusic {get{ + if(PlayerPrefs.HasKey("music")){ + return PlayerPrefs.GetInt("music") == 0; + }else{ + return false; + } + }} + public static bool isMuteSFX {get{ + if(PlayerPrefs.HasKey("sfx")){ + return PlayerPrefs.GetInt("sfx") == 0; + }else{ + return false; + } + }} + public static void ToggleMusic(){ + if(isMuteMusic){ + PlayerPrefs.SetInt("music",1); + instance.SourceMusic.volume = instance.defVol; + }else{ + PlayerPrefs.SetInt("music",0); + instance.SourceMusic.volume = 0; + } + PlayerPrefs.Save(); + + } + + float defVol; + public static void ToggleSFX(){ + if(isMuteSFX){ + PlayerPrefs.SetInt("sfx",1); + }else{ + PlayerPrefs.SetInt("sfx",0); + } + PlayerPrefs.Save(); + + } + + void Awake(){ + instance= this; + DontDestroyOnLoad(this); + defVol = SourceMusic.volume; + } + + public static void ChangeMusicToScene(string scene){ + AudioClip chosen = instance.levels[0].clip; + + foreach(LevelAudioCombo level in instance.levels){ + if(level.name == scene){ + chosen = level.clip; + break; + } + } + + ChangeBGMusic(chosen); + } + + public static void ChangeBGMusic(AudioClip clip){ + instance.SourceMusic.Stop(); + instance.SourceMusic.clip = clip; + instance.SourceMusic.Play(); + } + + public static void PlayExplosion(){ + if(isMuteSFX){return;} + instance.SourceSFX.PlayOneShot(instance.explosionSFX); + } + + public static void PlayPowerup(){ + if(isMuteSFX){return;} + instance.SourceSFX.PlayOneShot(instance.powerupSFX); + } + public static void PlayPowerdown(){ + if(isMuteSFX){return;} + instance.SourceSFX.PlayOneShot(instance.powerdownSFX); + } + public static void PlayWhoosh(){ + if(isMuteSFX){return;} + instance.SourceSFX.PlayOneShot(instance.whooshSFX); + } + + +} + +[System.Serializable] +public class LevelAudioCombo{ + public string name; + public AudioClip clip; } \ No newline at end of file diff --git a/Assets/Scripts/MessageBox.cs b/Assets/Scripts/MessageBox.cs index 7f5ef3a..7c0e0c0 100644 --- a/Assets/Scripts/MessageBox.cs +++ b/Assets/Scripts/MessageBox.cs @@ -1,58 +1,58 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.UI; - -public class MessageBox : MonoBehaviour -{ - public static MessageBox instance { get; private set;} - void Awake(){ - if(instance != null){Destroy(gameObject);} - instance = this; - canvasGroup = GetComponent(); - - closeButton.onClick.AddListener(()=>{SetActive(false);}); - } - - private CanvasGroup canvasGroup; - [SerializeField]private Text messageTxt; - [SerializeField]private Text titleTxt; - [SerializeField]private Button closeButton; - void Start() - { - DontDestroyOnLoad(gameObject); - SetActive(false); - } - - void SetActive(bool value){ - // StartCoroutine(setActive(value)); - canvasGroup.alpha= value ? 1 : 0; - canvasGroup.blocksRaycasts = value; - canvasGroup.interactable = value; - } - private static string message; - public static void ShowMessage(string message,string title = "Notice"){ - if(instance == null){Debug.LogError("Message was shown before message box was init");return;} - - instance.showMessage(message,title); - } - - public void showMessage(string _message, string title){ - message = _message; - titleTxt.text = title; - StartCoroutine(_showMessage()); - SetActive(true); - } - - IEnumerator _showMessage(){ - messageTxt.text = ""; - closeButton.gameObject.SetActive(false); - for(int i=0; i < message.Length; i++){ - messageTxt.text += message[i]; - - yield return new WaitForSeconds(0.01f); - } - closeButton.gameObject.SetActive(true); - - } -} +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class MessageBox : MonoBehaviour +{ + public static MessageBox instance { get; private set;} + void Awake(){ + if(instance != null){Destroy(gameObject);} + instance = this; + canvasGroup = GetComponent(); + + closeButton.onClick.AddListener(()=>{SetActive(false);}); + } + + private CanvasGroup canvasGroup; + [SerializeField]private Text messageTxt; + [SerializeField]private Text titleTxt; + [SerializeField]private Button closeButton; + void Start() + { + DontDestroyOnLoad(gameObject); + SetActive(false); + } + + void SetActive(bool value){ + // StartCoroutine(setActive(value)); + canvasGroup.alpha= value ? 1 : 0; + canvasGroup.blocksRaycasts = value; + canvasGroup.interactable = value; + } + private static string message; + public static void ShowMessage(string message,string title = "Notice"){ + if(instance == null){Debug.LogError("Message was shown before message box was init");return;} + + instance.showMessage(message,title); + } + + public void showMessage(string _message, string title){ + message = _message; + titleTxt.text = title; + StartCoroutine(_showMessage()); + SetActive(true); + } + + IEnumerator _showMessage(){ + messageTxt.text = ""; + closeButton.gameObject.SetActive(false); + for(int i=0; i < message.Length; i++){ + messageTxt.text += message[i]; + + yield return new WaitForSeconds(0.01f); + } + closeButton.gameObject.SetActive(true); + + } +} diff --git a/Assets/Scripts/NearMiss.cs b/Assets/Scripts/NearMiss.cs index e594314..85487b0 100644 --- a/Assets/Scripts/NearMiss.cs +++ b/Assets/Scripts/NearMiss.cs @@ -1,14 +1,14 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -public class NearMiss : MonoBehaviour -{ - void OnTriggerExit2D(Collider2D other){ - if(PlayerController.instance.PowerupActive){return;} - if(other.tag == "asteroid"){ - DataManager.AddItem("add_near_miss.php"); - PlayerController.NearMissFX(); - } - } -} +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class NearMiss : MonoBehaviour +{ + void OnTriggerExit2D(Collider2D other){ + if(PlayerController.instance.PowerupActive){return;} + if(other.tag == "asteroid"){ + DataManager.AddItem("add_near_miss.php"); + PlayerController.NearMissFX(); + } + } +} diff --git a/Assets/Scripts/PlayerController.cs b/Assets/Scripts/PlayerController.cs index 44484e8..e884045 100644 --- a/Assets/Scripts/PlayerController.cs +++ b/Assets/Scripts/PlayerController.cs @@ -63,6 +63,9 @@ public class PlayerController : MonoBehaviour if(powerupTimer > 0){ powerupTimer-=Time.deltaTime; + if(powerupTimer <= 0){ + OnPowerdown(); + } } } @@ -102,6 +105,7 @@ public class PlayerController : MonoBehaviour public static void NearMissFX(){ instance.nearMissAnim.gameObject.SetActive(true); instance.nearMissAnim.CrossFade("txt_intro",0.01f); + AudioManager.PlayWhoosh(); } public float PowerupLife = 30; public float PowerupSpeedMult = 1.3f; @@ -109,6 +113,7 @@ public class PlayerController : MonoBehaviour public float powerupTimer = 0; public void ActivatePowerup(){ powerupTimer = PowerupLife; + AudioManager.PlayPowerup(); } public static int AdCounter=0; public async void GameOver(){ @@ -132,6 +137,10 @@ public class PlayerController : MonoBehaviour } } + void OnPowerdown(){ + AudioManager.PlayPowerdown(); + } + public void SpawnExplosionFX(Vector3 pos){ Instantiate(ExplosionFX,pos, Quaternion.identity); AudioManager.PlayExplosion(); diff --git a/ProjectSettings/AndroidResolverDependencies.xml b/ProjectSettings/AndroidResolverDependencies.xml index 733ecd9..995185a 100644 --- a/ProjectSettings/AndroidResolverDependencies.xml +++ b/ProjectSettings/AndroidResolverDependencies.xml @@ -1,81 +1,81 @@ - - - com.google.android.gms:play-services-ads:22.2.0 - com.google.android.gms:play-services-auth:16+ - com.google.android.ump:user-messaging-platform:2.0.0 - com.google.signin:google-signin-support:1.0.4 - - - Assets/Plugins/Android/androidx.annotation.annotation-1.2.0.jar - Assets/Plugins/Android/androidx.annotation.annotation-experimental-1.1.0.aar - Assets/Plugins/Android/androidx.arch.core.core-common-2.1.0.jar - Assets/Plugins/Android/androidx.arch.core.core-runtime-2.1.0.aar - Assets/Plugins/Android/androidx.asynclayoutinflater.asynclayoutinflater-1.0.0.aar - Assets/Plugins/Android/androidx.browser.browser-1.4.0.aar - Assets/Plugins/Android/androidx.collection.collection-1.1.0.jar - Assets/Plugins/Android/androidx.concurrent.concurrent-futures-1.0.0.jar - Assets/Plugins/Android/androidx.coordinatorlayout.coordinatorlayout-1.0.0.aar - Assets/Plugins/Android/androidx.core.core-1.6.0.aar - Assets/Plugins/Android/androidx.cursoradapter.cursoradapter-1.0.0.aar - Assets/Plugins/Android/androidx.customview.customview-1.0.0.aar - Assets/Plugins/Android/androidx.documentfile.documentfile-1.0.0.aar - Assets/Plugins/Android/androidx.drawerlayout.drawerlayout-1.0.0.aar - Assets/Plugins/Android/androidx.fragment.fragment-1.0.0.aar - Assets/Plugins/Android/androidx.interpolator.interpolator-1.0.0.aar - Assets/Plugins/Android/androidx.legacy.legacy-support-core-ui-1.0.0.aar - Assets/Plugins/Android/androidx.legacy.legacy-support-core-utils-1.0.0.aar - Assets/Plugins/Android/androidx.lifecycle.lifecycle-common-2.1.0.jar - Assets/Plugins/Android/androidx.lifecycle.lifecycle-livedata-2.1.0.aar - Assets/Plugins/Android/androidx.lifecycle.lifecycle-livedata-core-2.1.0.aar - Assets/Plugins/Android/androidx.lifecycle.lifecycle-runtime-2.1.0.aar - Assets/Plugins/Android/androidx.lifecycle.lifecycle-service-2.1.0.aar - Assets/Plugins/Android/androidx.lifecycle.lifecycle-viewmodel-2.0.0.aar - Assets/Plugins/Android/androidx.loader.loader-1.0.0.aar - Assets/Plugins/Android/androidx.localbroadcastmanager.localbroadcastmanager-1.0.0.aar - Assets/Plugins/Android/androidx.print.print-1.0.0.aar - Assets/Plugins/Android/androidx.room.room-common-2.2.5.jar - Assets/Plugins/Android/androidx.room.room-runtime-2.2.5.aar - Assets/Plugins/Android/androidx.slidingpanelayout.slidingpanelayout-1.0.0.aar - Assets/Plugins/Android/androidx.sqlite.sqlite-2.1.0.aar - Assets/Plugins/Android/androidx.sqlite.sqlite-framework-2.1.0.aar - Assets/Plugins/Android/androidx.startup.startup-runtime-1.0.0.aar - Assets/Plugins/Android/androidx.swiperefreshlayout.swiperefreshlayout-1.0.0.aar - Assets/Plugins/Android/androidx.tracing.tracing-1.0.0.aar - Assets/Plugins/Android/androidx.versionedparcelable.versionedparcelable-1.1.1.aar - Assets/Plugins/Android/androidx.viewpager.viewpager-1.0.0.aar - Assets/Plugins/Android/androidx.work.work-runtime-2.7.0.aar - Assets/Plugins/Android/com.google.android.gms.play-services-ads-22.2.0.aar - Assets/Plugins/Android/com.google.android.gms.play-services-ads-base-22.2.0.aar - Assets/Plugins/Android/com.google.android.gms.play-services-ads-identifier-18.0.0.aar - Assets/Plugins/Android/com.google.android.gms.play-services-ads-lite-22.2.0.aar - Assets/Plugins/Android/com.google.android.gms.play-services-appset-16.0.1.aar - Assets/Plugins/Android/com.google.android.gms.play-services-auth-16.0.1.aar - Assets/Plugins/Android/com.google.android.gms.play-services-auth-api-phone-16.0.0.aar - Assets/Plugins/Android/com.google.android.gms.play-services-auth-base-16.0.0.aar - Assets/Plugins/Android/com.google.android.gms.play-services-base-18.0.0.aar - Assets/Plugins/Android/com.google.android.gms.play-services-basement-18.0.0.aar - Assets/Plugins/Android/com.google.android.gms.play-services-measurement-base-20.1.2.aar - Assets/Plugins/Android/com.google.android.gms.play-services-measurement-sdk-api-20.1.2.aar - Assets/Plugins/Android/com.google.android.gms.play-services-tasks-18.0.1.aar - Assets/Plugins/Android/com.google.android.ump.user-messaging-platform-2.0.0.aar - Assets/Plugins/Android/com.google.guava.listenablefuture-1.0.jar - Assets/Plugins/Android/com.google.signin.google-signin-support-1.0.4.aar - - - - - - - - - - - - - - - - - - + + + com.google.android.gms:play-services-ads:22.2.0 + com.google.android.gms:play-services-auth:16+ + com.google.android.ump:user-messaging-platform:2.0.0 + com.google.signin:google-signin-support:1.0.4 + + + Assets/Plugins/Android/androidx.annotation.annotation-1.2.0.jar + Assets/Plugins/Android/androidx.annotation.annotation-experimental-1.1.0.aar + Assets/Plugins/Android/androidx.arch.core.core-common-2.1.0.jar + Assets/Plugins/Android/androidx.arch.core.core-runtime-2.1.0.aar + Assets/Plugins/Android/androidx.asynclayoutinflater.asynclayoutinflater-1.0.0.aar + Assets/Plugins/Android/androidx.browser.browser-1.4.0.aar + Assets/Plugins/Android/androidx.collection.collection-1.1.0.jar + Assets/Plugins/Android/androidx.concurrent.concurrent-futures-1.0.0.jar + Assets/Plugins/Android/androidx.coordinatorlayout.coordinatorlayout-1.0.0.aar + Assets/Plugins/Android/androidx.core.core-1.6.0.aar + Assets/Plugins/Android/androidx.cursoradapter.cursoradapter-1.0.0.aar + Assets/Plugins/Android/androidx.customview.customview-1.0.0.aar + Assets/Plugins/Android/androidx.documentfile.documentfile-1.0.0.aar + Assets/Plugins/Android/androidx.drawerlayout.drawerlayout-1.0.0.aar + Assets/Plugins/Android/androidx.fragment.fragment-1.0.0.aar + Assets/Plugins/Android/androidx.interpolator.interpolator-1.0.0.aar + Assets/Plugins/Android/androidx.legacy.legacy-support-core-ui-1.0.0.aar + Assets/Plugins/Android/androidx.legacy.legacy-support-core-utils-1.0.0.aar + Assets/Plugins/Android/androidx.lifecycle.lifecycle-common-2.1.0.jar + Assets/Plugins/Android/androidx.lifecycle.lifecycle-livedata-2.1.0.aar + Assets/Plugins/Android/androidx.lifecycle.lifecycle-livedata-core-2.1.0.aar + Assets/Plugins/Android/androidx.lifecycle.lifecycle-runtime-2.1.0.aar + Assets/Plugins/Android/androidx.lifecycle.lifecycle-service-2.1.0.aar + Assets/Plugins/Android/androidx.lifecycle.lifecycle-viewmodel-2.0.0.aar + Assets/Plugins/Android/androidx.loader.loader-1.0.0.aar + Assets/Plugins/Android/androidx.localbroadcastmanager.localbroadcastmanager-1.0.0.aar + Assets/Plugins/Android/androidx.print.print-1.0.0.aar + Assets/Plugins/Android/androidx.room.room-common-2.2.5.jar + Assets/Plugins/Android/androidx.room.room-runtime-2.2.5.aar + Assets/Plugins/Android/androidx.slidingpanelayout.slidingpanelayout-1.0.0.aar + Assets/Plugins/Android/androidx.sqlite.sqlite-2.1.0.aar + Assets/Plugins/Android/androidx.sqlite.sqlite-framework-2.1.0.aar + Assets/Plugins/Android/androidx.startup.startup-runtime-1.0.0.aar + Assets/Plugins/Android/androidx.swiperefreshlayout.swiperefreshlayout-1.0.0.aar + Assets/Plugins/Android/androidx.tracing.tracing-1.0.0.aar + Assets/Plugins/Android/androidx.versionedparcelable.versionedparcelable-1.1.1.aar + Assets/Plugins/Android/androidx.viewpager.viewpager-1.0.0.aar + Assets/Plugins/Android/androidx.work.work-runtime-2.7.0.aar + Assets/Plugins/Android/com.google.android.gms.play-services-ads-22.2.0.aar + Assets/Plugins/Android/com.google.android.gms.play-services-ads-base-22.2.0.aar + Assets/Plugins/Android/com.google.android.gms.play-services-ads-identifier-18.0.0.aar + Assets/Plugins/Android/com.google.android.gms.play-services-ads-lite-22.2.0.aar + Assets/Plugins/Android/com.google.android.gms.play-services-appset-16.0.1.aar + Assets/Plugins/Android/com.google.android.gms.play-services-auth-16.0.1.aar + Assets/Plugins/Android/com.google.android.gms.play-services-auth-api-phone-16.0.0.aar + Assets/Plugins/Android/com.google.android.gms.play-services-auth-base-16.0.0.aar + Assets/Plugins/Android/com.google.android.gms.play-services-base-18.0.0.aar + Assets/Plugins/Android/com.google.android.gms.play-services-basement-18.0.0.aar + Assets/Plugins/Android/com.google.android.gms.play-services-measurement-base-20.1.2.aar + Assets/Plugins/Android/com.google.android.gms.play-services-measurement-sdk-api-20.1.2.aar + Assets/Plugins/Android/com.google.android.gms.play-services-tasks-18.0.1.aar + Assets/Plugins/Android/com.google.android.ump.user-messaging-platform-2.0.0.aar + Assets/Plugins/Android/com.google.guava.listenablefuture-1.0.jar + Assets/Plugins/Android/com.google.signin.google-signin-support-1.0.4.aar + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ProjectSettings/GooglePlayGameSettings.txt b/ProjectSettings/GooglePlayGameSettings.txt index 3389fc9..8f98efe 100644 --- a/ProjectSettings/GooglePlayGameSettings.txt +++ b/ProjectSettings/GooglePlayGameSettings.txt @@ -1,2 +1,2 @@ -lastUpgrade=01101 -proj.pluginVersion=0.11.01 +lastUpgrade=01101 +proj.pluginVersion=0.11.01