diff --git a/UnityProjects/.gitignore b/UnityProjects/UnioForUniy/.gitignore similarity index 100% rename from UnityProjects/.gitignore rename to UnityProjects/UnioForUniy/.gitignore diff --git a/UnityProjects/UnioForUniy/Assets/UnioTest/Materials/toioLed.mat b/UnityProjects/UnioForUniy/Assets/UnioTest/Materials/toioLed.mat new file mode 100644 index 0000000..9543575 --- /dev/null +++ b/UnityProjects/UnioForUniy/Assets/UnioTest/Materials/toioLed.mat @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: toioLed + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHAPREMULTIPLY_ON + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 10 + - _GlossMapScale: 1 + - _Glossiness: 0.967 + - _GlossyReflections: 1 + - _Metallic: 0.045 + - _Mode: 3 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 0 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 0.627451} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/UnityProjects/UnioForUniy/Assets/UnioTest/Scenes/SampleScene.unity b/UnityProjects/UnioForUniy/Assets/UnioTest/Scenes/SampleScene.unity index 9d1edf1..9b23509 100644 --- a/UnityProjects/UnioForUniy/Assets/UnioTest/Scenes/SampleScene.unity +++ b/UnityProjects/UnioForUniy/Assets/UnioTest/Scenes/SampleScene.unity @@ -121,6 +121,84 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &2848084 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2848085} + - component: {fileID: 2848087} + - component: {fileID: 2848086} + m_Layer: 5 + m_Name: SerialNumbers + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2848085 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2848084} + 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: 936890897} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 140, y: -40} + m_SizeDelta: {x: 240, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2848086 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2848084} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &2848087 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2848084} + m_CullTransparentMesh: 0 --- !u!1 &28841686 GameObject: m_ObjectHideFlags: 0 @@ -215,6 +293,84 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 28841686} m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &73965814 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 73965815} + - component: {fileID: 73965817} + - component: {fileID: 73965816} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &73965815 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 73965814} + 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: 1049342396} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &73965816 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 73965814} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Sound Midi Note +--- !u!222 &73965817 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 73965814} + m_CullTransparentMesh: 1 --- !u!1 &84146308 GameObject: m_ObjectHideFlags: 0 @@ -437,7 +593,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 100, y: -100} + m_AnchoredPosition: {x: 100, y: -140} m_SizeDelta: {x: 160, y: 30} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &226830534 @@ -648,6 +804,7 @@ MonoBehaviour: m_EditorClassIdentifier: webSocketServerAddress: 127.0.0.1 webSocketServerPort: 12345 + serialNumbersText: {fileID: 2848086} --- !u!1 &484092755 GameObject: m_ObjectHideFlags: 0 @@ -834,6 +991,84 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 492057884} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &521414419 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 521414420} + - component: {fileID: 521414422} + - component: {fileID: 521414421} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &521414420 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 521414419} + 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: 1813398953} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &521414421 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 521414419} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Magnet +--- !u!222 &521414422 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 521414419} + m_CullTransparentMesh: 1 --- !u!1 &607341922 GameObject: m_ObjectHideFlags: 0 @@ -940,7 +1175,7 @@ GameObject: - component: {fileID: 629243866} - component: {fileID: 629243865} m_Layer: 5 - m_Name: LED + m_Name: Lamp m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -963,7 +1198,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 100, y: -200} + m_AnchoredPosition: {x: 100, y: -240} m_SizeDelta: {x: 160, y: 30} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &629243865 @@ -1185,7 +1420,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 100, y: -140} + m_AnchoredPosition: {x: 100, y: -180} m_SizeDelta: {x: 160, y: 30} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &786192119 @@ -1531,6 +1766,10 @@ RectTransform: - {fileID: 629243864} - {fileID: 1363880851} - {fileID: 1852149339} + - {fileID: 1813398953} + - {fileID: 2082369928} + - {fileID: 1049342396} + - {fileID: 2848085} m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1716,7 +1955,7 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1018332027} m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1090929635 +--- !u!1 &1049342395 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1724,67 +1963,275 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1090929636} - - component: {fileID: 1090929639} - - component: {fileID: 1090929638} - - component: {fileID: 1090929637} - m_Layer: 0 - m_Name: BossR + - component: {fileID: 1049342396} + - component: {fileID: 1049342399} + - component: {fileID: 1049342398} + - component: {fileID: 1049342397} + m_Layer: 5 + m_Name: SoundMidiNote m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1090929636 -Transform: +--- !u!224 &1049342396 +RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1090929635} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.386, y: 0.50142854, z: 0} - m_LocalScale: {x: 0.1, y: 0.14285713, z: 0.3} - m_Children: [] - m_Father: {fileID: 339096401} - m_RootOrder: 6 + m_GameObject: {fileID: 1049342395} + 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: 73965815} + m_Father: {fileID: 936890897} + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!65 &1090929637 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1090929635} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &1090929638 -MeshRenderer: + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 100, y: -480} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1049342397 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1090929635} + m_GameObject: {fileID: 1049342395} m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 4b78eebbb9fc924429804ffd7f566ef7, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1049342398} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 339096402} + m_MethodName: OnButtonClick + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 1049342397} + m_ObjectArgumentAssemblyTypeName: UnityEngine.UI.Button, UnityEngine.UI + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1049342398 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1049342395} + 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_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!222 &1049342399 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1049342395} + m_CullTransparentMesh: 1 +--- !u!1 &1076721946 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1076721947} + - component: {fileID: 1076721949} + - component: {fileID: 1076721948} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1076721947 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1076721946} + 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: 2082369928} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1076721948 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1076721946} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Sound Effect +--- !u!222 &1076721949 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1076721946} + m_CullTransparentMesh: 1 +--- !u!1 &1090929635 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1090929636} + - component: {fileID: 1090929639} + - component: {fileID: 1090929638} + - component: {fileID: 1090929637} + m_Layer: 0 + m_Name: BossR + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1090929636 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1090929635} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.386, y: 0.50142854, z: 0} + m_LocalScale: {x: 0.1, y: 0.14285713, z: 0.3} + m_Children: [] + m_Father: {fileID: 339096401} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1090929637 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1090929635} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1090929638 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1090929635} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4b78eebbb9fc924429804ffd7f566ef7, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} m_ProbeAnchor: {fileID: 0} m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 @@ -1944,7 +2391,7 @@ MonoBehaviour: m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: LED + m_Text: Lamp --- !u!222 &1298603615 CanvasRenderer: m_ObjectHideFlags: 0 @@ -1989,7 +2436,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 100, y: -260} + m_AnchoredPosition: {x: 100, y: -300} m_SizeDelta: {x: 160, y: 30} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1363880852 @@ -2119,7 +2566,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 100, y: -40} + m_AnchoredPosition: {x: 100, y: -80} m_SizeDelta: {x: 160, y: 30} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1481830103 @@ -2213,6 +2660,136 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1481830101} m_CullTransparentMesh: 1 +--- !u!1 &1813398952 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1813398953} + - component: {fileID: 1813398956} + - component: {fileID: 1813398955} + - component: {fileID: 1813398954} + m_Layer: 5 + m_Name: Magnet + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1813398953 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1813398952} + 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: 521414420} + m_Father: {fileID: 936890897} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 100, y: -380} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1813398954 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1813398952} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1813398955} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 339096402} + m_MethodName: OnButtonClick + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 1813398954} + m_ObjectArgumentAssemblyTypeName: UnityEngine.UI.Button, UnityEngine.UI + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1813398955 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1813398952} + 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_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!222 &1813398956 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1813398952} + m_CullTransparentMesh: 1 --- !u!1 &1852149338 GameObject: m_ObjectHideFlags: 0 @@ -2249,7 +2826,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 100, y: -300} + m_AnchoredPosition: {x: 100, y: -340} m_SizeDelta: {x: 160, y: 30} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1852149340 @@ -2672,3 +3249,133 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2076385469} m_CullTransparentMesh: 1 +--- !u!1 &2082369927 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2082369928} + - component: {fileID: 2082369931} + - component: {fileID: 2082369930} + - component: {fileID: 2082369929} + m_Layer: 5 + m_Name: SoundEffect + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2082369928 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2082369927} + 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: 1076721947} + m_Father: {fileID: 936890897} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 100, y: -440} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2082369929 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2082369927} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2082369930} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 339096402} + m_MethodName: OnButtonClick + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 2082369929} + m_ObjectArgumentAssemblyTypeName: UnityEngine.UI.Button, UnityEngine.UI + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &2082369930 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2082369927} + 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_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!222 &2082369931 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2082369927} + m_CullTransparentMesh: 1 diff --git a/UnityProjects/UnioForUniy/Assets/UnioTest/Scripts/UnioTest.cs b/UnityProjects/UnioForUniy/Assets/UnioTest/Scripts/UnioTest.cs index 9b859df..baa27a7 100644 --- a/UnityProjects/UnioForUniy/Assets/UnioTest/Scripts/UnioTest.cs +++ b/UnityProjects/UnioForUniy/Assets/UnioTest/Scripts/UnioTest.cs @@ -1,9 +1,9 @@ using System; +using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; using UnityEngine; using WebSocketSharp; -using WebSocketSharp.Net; namespace Unio { @@ -12,7 +12,7 @@ public class NetData public int serial; public string uuid; public int[] data; - public NetData() + public NetData () { serial = 0; uuid = ""; @@ -22,50 +22,60 @@ public NetData() public class Data { - public int serial; - public string uuid; - public byte[] data; - public Data() + public int serial; //{ private set; get; } + public string uuid; //{ private set; get; } + public byte[] data; //{ private set; get; } + public Data () { serial = 0; uuid = ""; data = new byte[0]; } - } + public Data (Data src) + { + this.serial = src.serial; + this.uuid = src.uuid; + this.data = src.data; + } + + public Data (int serial, string uuid, byte[] data) + { + this.serial = serial; + this.uuid = uuid; + this.data = data; + } + } public class DataConverter { - public static Data TryConvert(NetData rd) + public static Data TryConvert (NetData rd) { if (rd == null || rd.uuid == null || rd.uuid == "" || rd.data == null) return null; - Data data = new Data(); - data.serial = rd.serial; - data.uuid = rd.uuid.ToLower(); - data.data = new byte[rd.data.Length]; + byte[] d = new byte[rd.data.Length]; for (int i = 0; i < rd.data.Length; i++) { if (rd.data[i] < 0) rd.data[i] = 0; else if (rd.data[i] > 255) rd.data[i] = 255; - - data.data[i] = (byte)rd.data[i]; + d[i] = (byte) rd.data[i]; } + Data data = new Data (rd.serial, rd.uuid.ToUpper (), d); return data; } - public static NetData TryConvert(Data rd) + public static NetData TryConvert (Data rd) { if (rd == null || rd.uuid == null || rd.uuid == "" || rd.data == null) return null; - NetData data = new NetData(); + NetData data = new NetData (); data.serial = rd.serial; - data.uuid = rd.uuid.ToUpper(); + data.uuid = rd.uuid; data.data = new int[rd.data.Length]; for (int i = 0; i < rd.data.Length; i++) { @@ -78,224 +88,441 @@ public static NetData TryConvert(Data rd) public class ConnectionRequestData : Data { - public ConnectionRequestData() - { - // Special meaning - serial = 0; - uuid = ""; - data = null; - } + public ConnectionRequestData () : base (0, "", null) { } } - // - public class PostureAngleRequestData : Data + public class BatteryData : Data { - public static readonly string Uuid = "10B20106-5B3B-4571-9508-CF3EFCD7BBAE"; - public PostureAngleRequestData(int serialNumber) + public static readonly string Uuid = "10B20108-5B3B-4571-9508-CF3EFCD7BBAE"; + public byte batteryLevel; + public BatteryData (Data d) : base (d) { - serial = serialNumber; - uuid = Uuid; - data = new byte[2] {0x83, 0x02}; + batteryLevel = d.data[0]; } } - public class MotorControlData : Data + public class ButtonData : Data { - public static readonly string Uuid = "10B20102-5B3B-4571-9508-CF3EFCD7BBAE"; - public static readonly int DataLength = 7; + public static readonly string Uuid = "10B20107-5B3B-4571-9508-CF3EFCD7BBAE"; + public static readonly byte ButtonStatePressed = 0x80; + public static readonly byte ButtonStateReleased = 0x00; - public static readonly byte Type = 0x01; - public static readonly byte LeftId = 0x01; - public static readonly byte RightId = 0x02; + public byte buttonId; + public byte buttonState; - public MotorControlData(int serialNumber) + public ButtonData(Data src) : base(src) { - serial = serialNumber; - uuid = Uuid; + buttonId = data[0]; + buttonState = data[1]; } + } - public MotorControlData(int serialNumber, bool isLeftForward, byte leftSpeed, bool isRightForward, byte rightSpeed) + public class LampControlData : Data + { + public static readonly string Uuid = "10B20103-5B3B-4571-9508-CF3EFCD7BBAE"; + public static readonly byte ControlTypeAllOff = 0x01; + public static readonly byte ControlTypeLimitedTime = 0x03; + public static readonly byte ControlTypeContinuous = 0x04; + public static readonly byte LampCount = 0x01; + public static readonly byte LampId = 0x01; + + // All off + public LampControlData (int serialNumber) : base (serialNumber, Uuid, new byte[1] { ControlTypeAllOff }) { } + + // One shot + public LampControlData (int serialNumber, byte duration, byte red, byte green, byte blue) + : base (serialNumber, Uuid, new byte[7] { ControlTypeLimitedTime, duration, LampCount, LampId, red, green, blue }) { } + + // Sequence + // operationCount must be the same as (duration_red_green_blue.Count / 4) + public LampControlData (int serialNumber, byte repeatCount, byte operationCount, byte[] duration_red_green_blue) { - serial = serialNumber; - uuid = Uuid; - data = new byte[7] {Type, - LeftId, (byte)(isLeftForward ? 0x01 : 0x02), leftSpeed, - RightId, (byte)(isRightForward ? 0x01 : 0x02), rightSpeed}; + this.serial = serialNumber; + this.uuid = Uuid; + this.data = new byte[3 + 6 * (int)operationCount]; + this.data[0] = ControlTypeContinuous; + this.data[1] = repeatCount; + this.data[2] = operationCount; + for (int n = 0; n < (int)operationCount; n++) + { + this.data[3 + 6 * n] = duration_red_green_blue[4 * n]; + this.data[3 + 6 * n + 1] = LampCount; + this.data[3 + 6 * n + 2] = LampId; + this.data[3 + 6 * n + 3] = duration_red_green_blue[4 * n + 1]; + this.data[3 + 6 * n + 4] = duration_red_green_blue[4 * n + 2]; + this.data[3 + 6 * n + 5] = duration_red_green_blue[4 * n + 3]; + + } } } - public class MotionSensorRequestData : Data + public class MagneticSensorRequestData : Data { - public static readonly string Uuid = "10B20106-5B3B-4571-9508-CF3EFCD7BBAE"; + public static readonly string Uuid = "10B20106-5B3B-4571-9508-CF3EFCD7BBAE"; + public static readonly byte InformationType = 0x82; + + public MagneticSensorRequestData (int serialNumber) : base (serialNumber, Uuid, new byte[1] { InformationType }) { } + } - public MotionSensorRequestData(int serialNumber) + public class MagneticSensorData : Data + { + public static readonly string Uuid = "10B20106-5B3B-4571-9508-CF3EFCD7BBAE"; + public static readonly byte InformationType = 0x02; + + public byte magnetStatus; + public byte magneticForceStrength; + public sbyte magneticForceDirectionX; + public sbyte magneticForceDirectionY; + public sbyte magneticForceDirectionZ; + + public MagneticSensorData (Data d) : base (d) { - serial = serialNumber; - uuid = Uuid; - data = new byte[1] { 0x81 }; + magnetStatus = d.data[1]; + magneticForceStrength = d.data[1]; + magneticForceDirectionX = Convert.ToSByte (d.data[2]); + magneticForceDirectionY = Convert.ToSByte (d.data[3]); + magneticForceDirectionZ = Convert.ToSByte (d.data[4]); } } + public class MotionSensorRequestData : Data + { + public static readonly string Uuid = "10B20106-5B3B-4571-9508-CF3EFCD7BBAE"; + public static readonly byte InformationType = 0x81; + public MotionSensorRequestData (int serialNumber) : base (serialNumber, Uuid, new byte[1] { InformationType }) { } + } - public class LedData : Data + public class MotionSensorData : Data { - public static readonly string Uuid = "10B20103-5B3B-4571-9508-CF3EFCD7BBAE"; - - public LedData(int serialNumber) + public static readonly string Uuid = "10B20106-5B3B-4571-9508-CF3EFCD7BBAE"; + public static readonly byte InformationType = 0x01; + public static readonly byte LevelNotLevel = 0x00; + public static readonly byte CollisionNoCollision = 0x00; + public static readonly byte DoubleTapNoDoubleTap = 0x00; + public static readonly byte PositionPositivePosition = 0x01; + public static readonly byte PostureTopSideUp = 1; + public static readonly byte PostureBottomSideUp = 2; + public static readonly byte PostureBackSideUp = 3; + public static readonly byte PostureFrontSideUp = 4; + public static readonly byte PostureRightSideUp = 5; + public static readonly byte PostureLeftSideUp = 6; + public static readonly byte ShakeNoShake = 0x00; + + public byte levelDetection; + public byte collisionDetection; + public byte doubleTapDetection; + public byte postureDetection; + public byte shakeDetection; + + public MotionSensorData (Data d) : base (d) { - serial = serialNumber; - uuid = Uuid; - // data = new byte[1] { 0x81 }; - - /* - 0 UInt8 制御の種類 0x03(点灯・消灯) -1 UInt8 ランプを制御する時間 0x10(160 ミリ秒) -2 UInt8 制御するランプの数 0x01 -3 UInt8 制御するランプの ID 0x01 -4 UInt8 ランプの Red の値 0xFF -5 UInt8 ランプの Green の値 0x00 -6 UInt8 ランプの Blue の値 0x00 -*/ - data = new byte[7] - { - 0x03, 0x80, 0x01, 0x01, 0xff, 0x00, 0xff - }; + levelDetection = data[1]; + collisionDetection = data[2]; + doubleTapDetection = data[3]; + postureDetection = data[4]; + shakeDetection = data[5]; } - } -} - -public class UnioTest : MonoBehaviour -{ - [SerializeField] string webSocketServerAddress = "127.0.0.1"; - [SerializeField] int webSocketServerPort = 12345; - WebSocket client; - HashSet serialNumbers = new HashSet(); + } - private Quaternion localRotation; - void Start () + // TODO: Insufficient. A little more implementation is needed to support all the features + public class MotorControlData : Data { - localRotation = transform.localRotation; + public static readonly string Uuid = "10B20102-5B3B-4571-9508-CF3EFCD7BBAE"; + public static readonly byte ControlTypeBasic = 0x01; + public static readonly byte ControlTypeTarget = 0x03; + public static readonly byte LeftId = 0x01; + public static readonly byte RightId = 0x02; + public static readonly byte MoveTypeRotateAndMove = 1; + public static readonly byte MoveTypeRotateAndMoveWithoutBackword = 2; + public static readonly byte MoveTypeRotateThenMove = 3; - string serverUrl = "ws://" + webSocketServerAddress + ":" + webSocketServerPort + "/"; - client = new WebSocket(serverUrl); - client.OnMessage += (sender, e) => { + public MotorControlData (int serialNumber, bool isLeftForward, byte leftSpeed, bool isRightForward, byte rightSpeed) : base (serialNumber, Uuid, + new byte[7] { ControlTypeBasic, LeftId, (byte) (isLeftForward ? 0x01 : 0x02), leftSpeed, RightId, (byte) (isRightForward ? 0x01 : 0x02), rightSpeed}) { } - Debug.Log("OnMessage: " + e.Data); + // With target + public MotorControlData (int serialNumber, byte controlIdValue, byte timeout, byte moveType, byte maxIndicationSpeed, byte speedChangeType, ushort targetX, ushort targetY, ushort targetAngle) + { + this.serial = serialNumber; + this.uuid = Uuid; + byte[] targetXB = BitConverter.GetBytes(targetX); + byte[] targetYB = BitConverter.GetBytes(targetY); + byte[] targetAngleB = BitConverter.GetBytes(targetAngle); + this.data = new byte[13] {ControlTypeTarget, controlIdValue, timeout, moveType, maxIndicationSpeed, speedChangeType, 0x00, targetXB[0], targetXB[1], targetYB[0], targetYB[1], targetAngleB[0], targetAngleB[1]}; + } + } - Unio.NetData nd = JsonUtility.FromJson(e.Data); + public class PostureAngleRequestData : Data + { + public static readonly string Uuid = "10B20106-5B3B-4571-9508-CF3EFCD7BBAE"; + public static readonly byte InformationType = 0x83; + public static readonly byte NotificationTypeEuler = 0x01; + public static readonly byte NotificationTypeQuaternion = 0x02; - if (nd.serial == 0) - return; - serialNumbers.Add(nd.serial); + public PostureAngleRequestData (int serialNumber, byte notificationType) : base (serialNumber, Uuid, new byte[2] { InformationType, notificationType }) { } + } + + public class PostureAngleData : Data + { + public static readonly string Uuid = "10B20106-5B3B-4571-9508-CF3EFCD7BBAE"; + public static readonly byte InformationType = 0x03; + public static readonly byte Euler = 0x01; + public static readonly byte Quaternion = 0x02; + public Quaternion posture; - Unio.Data d = Unio.DataConverter.TryConvert(nd); + public PostureAngleData (Data d) : base (d) + { + if (d.data[1] == Euler) + { + int x = BitConverter.ToInt16 (data, 2); + int y = BitConverter.ToInt16 (data, 4); + int z = BitConverter.ToInt16 (data, 6); + posture = new Quaternion (); + posture.eulerAngles = new Vector3 (y, z + 180, x); - if (nd.uuid == Unio.PostureAngleRequestData.Uuid) // Posture + } + else if (d.data[1] == Quaternion) { - int w = BitConverter.ToInt16(d.data, 2); - int x = BitConverter.ToInt16(d.data, 4); - int y = BitConverter.ToInt16(d.data, 6); - int z = BitConverter.ToInt16(d.data, 8); + int w = BitConverter.ToInt16 (data, 2); + int x = BitConverter.ToInt16 (data, 4); + int y = BitConverter.ToInt16 (data, 6); + int z = BitConverter.ToInt16 (data, 8); float fw = w / 1000f; float fx = x / 1000f; float fy = y / 1000f; float fz = z / 1000f; // Convert right-handed to left-handed - Quaternion qin = new Quaternion(-fy, fz, fx, -fw); + posture = new Quaternion (-fy, fz, fx, -fw); // Flip around z-axis - qin.eulerAngles = new Vector3(qin.eulerAngles.x, qin.eulerAngles.y, qin.eulerAngles.z + 180); - localRotation = qin; - Debug.Log("Posture quaternion: " + nd.data); + posture.eulerAngles = new Vector3 (-posture.eulerAngles.x, posture.eulerAngles.y, -posture.eulerAngles.z + 180); } + } + } - }; + public class ReadSensorPositionIdData : Data + { + public static readonly string Uuid = "10B20101-5B3B-4571-9508-CF3EFCD7BBAE"; + public static byte InformationType = 0x01; + public ushort cubeCenterX { private set; get; } + public ushort cubeCenterY { private set; get; } + public ushort cubeAngle { private set; get; } + public ushort readSensorX { private set; get; } + public ushort readSensorY { private set; get; } + + public ReadSensorPositionIdData (Data src) : base (src) + { + cubeCenterX = BitConverter.ToUInt16 (data, 1); + cubeCenterY = BitConverter.ToUInt16 (data, 3); + cubeAngle = BitConverter.ToUInt16 (data, 5); + readSensorX = BitConverter.ToUInt16 (data, 7); + readSensorY = BitConverter.ToUInt16 (data, 9); + } + } + + public class ReadSensorPositionIdMissedData : Data + { + public static readonly string Uuid = "10B20101-5B3B-4571-9508-CF3EFCD7BBAE"; + public static byte InformationType = 0x03; + public ReadSensorPositionIdMissedData (Data src) : base (src) { } + } - client.OnOpen += (sender, e) => { + public class ReadSensorStandardIdData : Data + { + public static readonly string Uuid = "10B20101-5B3B-4571-9508-CF3EFCD7BBAE"; + public static byte InformationType = 0x02; + public uint standardId { private set; get; } + public ushort cubeAngle { private set; get; } - }; + public ReadSensorStandardIdData (Data d) : base (d) + { + standardId = BitConverter.ToUInt32 (data, 1); + cubeAngle = BitConverter.ToUInt16 (data, 5); + } + } - client.OnClose += (sender, e) => { - client = null; - }; + public class ReadSensorStandardIdMissedData : Data + { + public static readonly string Uuid = "10B20101-5B3B-4571-9508-CF3EFCD7BBAE"; + public static byte InformationType = 0x04; - client.Connect(); + public ReadSensorStandardIdMissedData (Data src) : base (src) { } } - void Update() + // TODO: Insufficient. A little more implementation is needed to support all the features + public class SoundControlData : Data { - transform.localRotation = localRotation; + public static readonly string Uuid = "10B20104-5B3B-4571-9508-CF3EFCD7BBAE"; + public static readonly byte ControlTypeSoundEffect = 0x02; + public static readonly byte ControlTypeMidiNote = 0x03; - if (client == null || !client.IsAlive) - return; + // Stop + public SoundControlData (int serialNumber) : base (serialNumber, Uuid, new byte[1] { 0x01 }) { } // Stop - if (Input.GetKeyDown(KeyCode.C)) // Connect - { - Unio.ConnectionRequestData d = new Unio.ConnectionRequestData(); - string s = JsonUtility.ToJson(d); - Debug.Log(s); - client.Send(s); - } + // Sound effect + public SoundControlData (int serialNumber, byte controlType, byte soundEffectId, byte volume) : base (serialNumber, Uuid, new byte[3] { controlType, soundEffectId, volume }) { } - if (serialNumbers.Count == 0) - return; - int sn = serialNumbers.ToList()[0]; + // MIDI note + public SoundControlData (int serialNumber, byte controlType, byte repeatCount, byte duration, byte midiNoteNumber, byte volume) : base (serialNumber, Uuid, + new byte[6] { controlType, repeatCount, 0x01, duration, midiNoteNumber, volume }) { } + } +} + +public class UnioTest : MonoBehaviour +{ + [SerializeField] string webSocketServerAddress = "127.0.0.1"; + [SerializeField] int webSocketServerPort = 12345; + [SerializeField] UnityEngine.UI.Text serialNumbersText = null; + WebSocket client; + HashSet serialNumbers = new HashSet (); + ConcurrentQueue dataQueue = new ConcurrentQueue (); - if (Input.GetKeyDown(KeyCode.G)) // Go forward + void Start () + { + string serverUrl = "ws://" + webSocketServerAddress + ":" + webSocketServerPort + "/"; + client = new WebSocket (serverUrl); + client.OnMessage += (sender, e) => { - Unio.MotorControlData md = new Unio.MotorControlData(sn, true, 100, true, 100); - string s = JsonUtility.ToJson(md); - Debug.Log(s); - client.Send(s); - } - else if (Input.GetKeyUp(KeyCode.G)) // Stop + Debug.Log ("OnMessage: " + e.Data); + + Unio.NetData nd = JsonUtility.FromJson (e.Data); + + if (nd.serial == 0) + return; + serialNumbers.Add (nd.serial); + + Unio.Data d = Unio.DataConverter.TryConvert (nd); + dataQueue.Enqueue (d); + }; + + client.OnOpen += (sender, e) => { - Unio.MotorControlData md = new Unio.MotorControlData(sn, true, 0, true, 0); - string s = JsonUtility.ToJson(md); - Debug.Log(s); - client.Send(s); - } - if (Input.GetKey(KeyCode.P)) // Posture angle request + }; + + client.OnClose += (sender, e) => { - Unio.PostureAngleRequestData md = new Unio.PostureAngleRequestData(sn); - string s = JsonUtility.ToJson(md); - Debug.Log(s); - client.Send(s); - } + client = null; + }; - if (Input.GetKeyDown(KeyCode.M)) // Motion sensor request + client.Connect (); + } + + void Update () + { + if (serialNumbers.Count == 0) + serialNumbersText.text = "Connected count: 0"; + else { - Unio.MotionSensorRequestData md = new Unio.MotionSensorRequestData(sn); - string s = JsonUtility.ToJson(md); - Debug.Log(s); - client.Send(s); + string ss = ""; + int i = 0; + foreach (int n in serialNumbers) + { + ss += n; + i ++; + if (i != serialNumbers.Count) + ss += ", "; + } + string s = "Serial numbers: [" + ss + "]"; + serialNumbersText.text = s; } - if (Input.GetKeyDown(KeyCode.L)) // LED control + while (dataQueue.Count != 0) { - Unio.LedData l = new Unio.LedData(sn); - string s = JsonUtility.ToJson(l); - Debug.Log(s); - client.Send(s); + Unio.Data d = null; + if (dataQueue.TryDequeue (out d) && d != null) + { + if (d.data == null || d.data.Length == 0) + { + // Serial number + Debug.Log ("Serial: " + d.serial); + } + else if (d.uuid == Unio.BatteryData.Uuid) + { + Unio.BatteryData batteryData = new Unio.BatteryData (d); + Debug.Log ("Serial: " + d.serial); + Debug.Log ("Battery level (%): " + batteryData.batteryLevel); + } + else if (d.uuid == Unio.ButtonData.Uuid) + { + Unio.ButtonData buttonData = new Unio.ButtonData (d); + Debug.Log ("Serial: " + d.serial); + Debug.Log ("Button Id: " + buttonData.buttonId); + Debug.Log ("Button state: " + buttonData.buttonState); + } + else if (d.uuid == Unio.MotionSensorData.Uuid && d.data[0] == Unio.MotionSensorData.InformationType) + { + Unio.MotionSensorData motionSensorData = new Unio.MotionSensorData (d); + Debug.Log ("Serial: " + d.serial); + Debug.Log ("Collision detection: " + motionSensorData.collisionDetection); + Debug.Log ("Double-tap detection: " + motionSensorData.doubleTapDetection); + Debug.Log ("Level detection: " + motionSensorData.levelDetection); + Debug.Log ("Posture detection: " + motionSensorData.postureDetection); + Debug.Log ("Shake detection: " + motionSensorData.shakeDetection); + } + else if (d.uuid == Unio.MagneticSensorData.Uuid && d.data[0] == Unio.MagneticSensorData.InformationType) + { + Unio.MagneticSensorData magneticSensorData = new Unio.MagneticSensorData (d); + Debug.Log ("Serial: " + d.serial); + Debug.Log ("Magnet status: " + magneticSensorData.magnetStatus); + Debug.Log ("Magnetic force strength: " + magneticSensorData.magneticForceStrength); + Debug.Log ("Magnetic force direction X: " + magneticSensorData.magneticForceDirectionX); + Debug.Log ("Magnetic force direction Y: " + magneticSensorData.magneticForceDirectionY); + Debug.Log ("Magnetic force direction Z: " + magneticSensorData.magneticForceDirectionZ); + } + else if (d.uuid == Unio.PostureAngleData.Uuid && d.data[0] == Unio.PostureAngleData.InformationType) + { + Unio.PostureAngleData postureAngleData = new Unio.PostureAngleData (d); + transform.localRotation = postureAngleData.posture; + Debug.Log ("Serial: " + d.serial); + Debug.Log ("Posture quaternion: " + postureAngleData.posture); + } + else if (d.uuid == Unio.ReadSensorPositionIdData.Uuid && d.data[0] == Unio.ReadSensorPositionIdData.InformationType) + { + Unio.ReadSensorPositionIdData readSensorPositionIdData = new Unio.ReadSensorPositionIdData (d); + Debug.Log ("Serial: " + d.serial); + Debug.Log ("Cube center X: " + readSensorPositionIdData.cubeCenterX); + Debug.Log ("Cube center Y: " + readSensorPositionIdData.cubeCenterY); + Debug.Log ("Cube angle: " + readSensorPositionIdData.cubeAngle); + Debug.Log ("Read sensor X: " + readSensorPositionIdData.readSensorX); + Debug.Log ("Read sensor Y: " + readSensorPositionIdData.readSensorY); + } + else if (d.uuid == Unio.ReadSensorStandardIdData.Uuid && d.data[0] == Unio.ReadSensorStandardIdData.InformationType) + { + Unio.ReadSensorStandardIdData readSensorStandardIdData = new Unio.ReadSensorStandardIdData (d); + Debug.Log ("Serial: " + d.serial); + Debug.Log ("Standard Id: " + readSensorStandardIdData.standardId); + Debug.Log ("Cube angle: " + readSensorStandardIdData.cubeAngle); + } + else if (d.uuid == Unio.ReadSensorPositionIdMissedData.Uuid && d.data[0] == Unio.ReadSensorPositionIdMissedData.InformationType) + { + Unio.ReadSensorPositionIdMissedData readSensorPositionIdMissedData = new Unio.ReadSensorPositionIdMissedData (d); + Debug.Log ("Serial: " + d.serial); + Debug.Log ("Position Id missed"); + } + else if (d.uuid == Unio.ReadSensorStandardIdMissedData.Uuid && d.data[0] == Unio.ReadSensorStandardIdMissedData.InformationType) + { + Unio.ReadSensorStandardIdMissedData readSensorStandardIdMissedData = new Unio.ReadSensorStandardIdMissedData (d); + Debug.Log ("Serial: " + d.serial); + Debug.Log ("Standard Id missed"); + } + } } - else if (Input.GetKeyUp(KeyCode.L)) - { - } + if (client == null || !client.IsAlive) + return; } - void OnDestroy() + void OnDestroy () { if (client != null) { - client.Close(); + client.Close (); client = null; } } - public void OnButtonClick(UnityEngine.UI.Button sender) + public void OnButtonClick (UnityEngine.UI.Button sender) { if (sender == null) return; @@ -305,52 +532,75 @@ public void OnButtonClick(UnityEngine.UI.Button sender) if (sender.name == "Connect") { - Unio.ConnectionRequestData d = new Unio.ConnectionRequestData(); - string s = JsonUtility.ToJson(d); - Debug.Log(s); - client.Send(s); - + Unio.ConnectionRequestData d = new Unio.ConnectionRequestData (); + string s = JsonUtility.ToJson (d); + Debug.Log (s); + client.Send (s); } if (serialNumbers.Count == 0) return; - int sn = serialNumbers.ToList()[0]; + int sn = serialNumbers.ToList () [0]; - if (sender.name == "LED") + if (sender.name == "Lamp") { - Unio.LedData l = new Unio.LedData(sn); - string s = JsonUtility.ToJson(l); - Debug.Log(s); - client.Send(s); + Unio.LampControlData l = new Unio.LampControlData (serialNumber: sn, duration: 0x80, red: 0xff, green: 0x00, blue: 0xff); + string s = JsonUtility.ToJson (l); + Debug.Log (s); + client.Send (s); } if (sender.name == "MotorRun") { - Unio.MotorControlData md = new Unio.MotorControlData(sn, true, 100, true, 100); - string s = JsonUtility.ToJson(md); - Debug.Log(s); - client.Send(s); + Unio.MotorControlData md = new Unio.MotorControlData (serialNumber: sn, isLeftForward: true, leftSpeed: 100, isRightForward: true, rightSpeed: 100); + string s = JsonUtility.ToJson (md); + Debug.Log (s); + client.Send (s); } if (sender.name == "MotorStop") { - Unio.MotorControlData md = new Unio.MotorControlData(sn, true, 0, true, 0); - string s = JsonUtility.ToJson(md); - Debug.Log(s); - client.Send(s); + Unio.MotorControlData md = new Unio.MotorControlData (serialNumber: sn, isLeftForward: true, leftSpeed: 0, isRightForward: true, rightSpeed: 0); + string s = JsonUtility.ToJson (md); + Debug.Log (s); + client.Send (s); } if (sender.name == "Posture") { - Unio.PostureAngleRequestData md = new Unio.PostureAngleRequestData(sn); - string s = JsonUtility.ToJson(md); - Debug.Log(s); - client.Send(s); + Unio.PostureAngleRequestData md = new Unio.PostureAngleRequestData (sn, Unio.PostureAngleRequestData.NotificationTypeQuaternion); + string s = JsonUtility.ToJson (md); + Debug.Log (s); + client.Send (s); } if (sender.name == "Motion") { - Unio.MotionSensorRequestData md = new Unio.MotionSensorRequestData(sn); - string s = JsonUtility.ToJson(md); - Debug.Log(s); - client.Send(s); + Unio.MotionSensorRequestData md = new Unio.MotionSensorRequestData (sn); + string s = JsonUtility.ToJson (md); + Debug.Log (s); + client.Send (s); + } + if (sender.name == "Magnet") + { + Unio.MagneticSensorRequestData md = new Unio.MagneticSensorRequestData (sn); + string s = JsonUtility.ToJson (md); + Debug.Log (s); + client.Send (s); + } + if (sender.name == "SoundEffect") + { + Unio.SoundControlData d = new Unio.SoundControlData (serialNumber: sn, controlType: Unio.SoundControlData.ControlTypeSoundEffect, soundEffectId: 0, volume: 0x80); + string s = JsonUtility.ToJson (d); + Debug.Log (s); + client.Send (s); + + } + if (sender.name == "SoundMidiNote") + { + // 72 means C6 + Unio.SoundControlData d = new Unio.SoundControlData (serialNumber: sn, controlType: Unio.SoundControlData.ControlTypeMidiNote, repeatCount: 0x01, duration: 10, midiNoteNumber: 72, volume: 0x80); + string s = JsonUtility.ToJson (d); + Debug.Log (s); + client.Send (s); + } } -} +} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/LICENSE-Newtonsoft-JSON.txt b/UnityProjects/UnioForUniy/LICENSE-Newtonsoft-JSON.txt new file mode 100644 index 0000000..05bc493 --- /dev/null +++ b/UnityProjects/UnioForUniy/LICENSE-Newtonsoft-JSON.txt @@ -0,0 +1,9 @@ +The MIT License (MIT) + +Copyright (c) 2007 James Newton-King + +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. \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ext.nunit@1.0.6/LICENSE.md b/UnityProjects/UnioForUniy/LICENSE-websocket-sharp.txt similarity index 92% rename from UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ext.nunit@1.0.6/LICENSE.md rename to UnityProjects/UnioForUniy/LICENSE-websocket-sharp.txt index f920417..0590ab0 100644 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ext.nunit@1.0.6/LICENSE.md +++ b/UnityProjects/UnioForUniy/LICENSE-websocket-sharp.txt @@ -1,4 +1,6 @@ -Copyright (c) 2018 Charlie Poole, Rob Prouse +The MIT License (MIT) + +Copyright (c) 2010-2021 sta.blockhead Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/UnityProjects/UnioForUniy/Library/APIUpdater/project-dependencies.graph b/UnityProjects/UnioForUniy/Library/APIUpdater/project-dependencies.graph deleted file mode 100644 index 3ee09a5..0000000 Binary files a/UnityProjects/UnioForUniy/Library/APIUpdater/project-dependencies.graph and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/AnnotationManager b/UnityProjects/UnioForUniy/Library/AnnotationManager deleted file mode 100644 index 71fb30d..0000000 Binary files a/UnityProjects/UnioForUniy/Library/AnnotationManager and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/ArtifactDB b/UnityProjects/UnioForUniy/Library/ArtifactDB deleted file mode 100644 index 04c7f74..0000000 Binary files a/UnityProjects/UnioForUniy/Library/ArtifactDB and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/ArtifactDB-lock b/UnityProjects/UnioForUniy/Library/ArtifactDB-lock deleted file mode 100644 index 054d397..0000000 Binary files a/UnityProjects/UnioForUniy/Library/ArtifactDB-lock and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/AssetImportState b/UnityProjects/UnioForUniy/Library/AssetImportState deleted file mode 100644 index 21c67d7..0000000 --- a/UnityProjects/UnioForUniy/Library/AssetImportState +++ /dev/null @@ -1 +0,0 @@ --2;0;0;0;-1 \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/BuildPlayer.prefs b/UnityProjects/UnioForUniy/Library/BuildPlayer.prefs deleted file mode 100644 index e69de29..0000000 diff --git a/UnityProjects/UnioForUniy/Library/BuildSettings.asset b/UnityProjects/UnioForUniy/Library/BuildSettings.asset deleted file mode 100644 index ab42333..0000000 Binary files a/UnityProjects/UnioForUniy/Library/BuildSettings.asset and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/CurrentLayout-default.dwlt b/UnityProjects/UnioForUniy/Library/CurrentLayout-default.dwlt deleted file mode 100644 index b9ca581..0000000 --- a/UnityProjects/UnioForUniy/Library/CurrentLayout-default.dwlt +++ /dev/null @@ -1,1293 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &1 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_PixelRect: - serializedVersion: 2 - x: 0 - y: 42.285717 - width: 2194.286 - height: 1152 - m_ShowMode: 4 - m_Title: Hierarchy - m_RootView: {fileID: 7} - m_MinSize: {x: 875, y: 300} - m_MaxSize: {x: 10000, y: 10000} - m_Maximized: 1 ---- !u!114 &2 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} - m_Name: GameView - m_EditorClassIdentifier: - m_Children: [] - m_Position: - serializedVersion: 2 - x: 992 - y: 0 - width: 748 - height: 538 - m_MinSize: {x: 200, y: 200} - m_MaxSize: {x: 4000, y: 4000} - m_ActualView: {fileID: 18} - m_Panes: - - {fileID: 18} - m_Selected: 0 - m_LastSelected: 0 ---- !u!114 &3 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_Children: - - {fileID: 10} - - {fileID: 4} - m_Position: - serializedVersion: 2 - x: 0 - y: 30 - width: 2195 - height: 1102 - m_MinSize: {x: 882, y: 342} - m_MaxSize: {x: 16007, y: 8042} - vertical: 0 - controlID: 148 ---- !u!114 &4 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_Children: [] - m_Position: - serializedVersion: 2 - x: 1740 - y: 0 - width: 455 - height: 1102 - m_MinSize: {x: 277, y: 71} - m_MaxSize: {x: 4002, y: 4021} - m_ActualView: {fileID: 15} - m_Panes: - - {fileID: 15} - m_Selected: 0 - m_LastSelected: 0 ---- !u!114 &5 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_Children: [] - m_Position: - serializedVersion: 2 - x: 0 - y: 0 - width: 258 - height: 538 - m_MinSize: {x: 201, y: 221} - m_MaxSize: {x: 4001, y: 4021} - m_ActualView: {fileID: 16} - m_Panes: - - {fileID: 16} - m_Selected: 0 - m_LastSelected: 0 ---- !u!114 &6 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} - m_Name: ConsoleWindow - m_EditorClassIdentifier: - m_Children: [] - m_Position: - serializedVersion: 2 - x: 0 - y: 538 - width: 1740 - height: 564 - m_MinSize: {x: 101, y: 121} - m_MaxSize: {x: 4001, y: 4021} - m_ActualView: {fileID: 19} - m_Panes: - - {fileID: 14} - - {fileID: 19} - - {fileID: 13} - m_Selected: 1 - m_LastSelected: 0 ---- !u!114 &7 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12008, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_Children: - - {fileID: 8} - - {fileID: 3} - - {fileID: 9} - m_Position: - serializedVersion: 2 - x: 0 - y: 0 - width: 2195 - height: 1152 - m_MinSize: {x: 875, y: 300} - m_MaxSize: {x: 10000, y: 10000} ---- !u!114 &8 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12011, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_Children: [] - m_Position: - serializedVersion: 2 - x: 0 - y: 0 - width: 2195 - height: 30 - m_MinSize: {x: 0, y: 0} - m_MaxSize: {x: 0, y: 0} - m_LastLoadedLayoutName: ---- !u!114 &9 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12042, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_Children: [] - m_Position: - serializedVersion: 2 - x: 0 - y: 1132 - width: 2195 - height: 20 - m_MinSize: {x: 0, y: 0} - m_MaxSize: {x: 0, y: 0} ---- !u!114 &10 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_Children: - - {fileID: 11} - - {fileID: 6} - m_Position: - serializedVersion: 2 - x: 0 - y: 0 - width: 1740 - height: 1102 - m_MinSize: {x: 605, y: 342} - m_MaxSize: {x: 12005, y: 8042} - vertical: 1 - controlID: 83 ---- !u!114 &11 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_Children: - - {fileID: 5} - - {fileID: 12} - - {fileID: 2} - m_Position: - serializedVersion: 2 - x: 0 - y: 0 - width: 1740 - height: 538 - m_MinSize: {x: 605, y: 221} - m_MaxSize: {x: 12005, y: 4021} - vertical: 0 - controlID: 84 ---- !u!114 &12 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} - m_Name: SceneView - m_EditorClassIdentifier: - m_Children: [] - m_Position: - serializedVersion: 2 - x: 258 - y: 0 - width: 734 - height: 538 - m_MinSize: {x: 200, y: 200} - m_MaxSize: {x: 4000, y: 4000} - m_ActualView: {fileID: 17} - m_Panes: - - {fileID: 17} - m_Selected: 0 - m_LastSelected: 0 ---- !u!114 &13 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 12070, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_MinSize: {x: 880, y: 216} - m_MaxSize: {x: 4000, y: 4000} - m_TitleContent: - m_Text: Profiler - m_Image: {fileID: 2169972056302973491, guid: 0000000000000000d000000000000000, - type: 0} - m_Tooltip: - m_Pos: - serializedVersion: 2 - x: 0 - y: 610.28577 - width: 1739 - height: 543 - m_ViewDataDictionary: {fileID: 0} - m_VertSplit: - ID: 101 - splitterInitialOffset: 268 - currentActiveSplitter: -1 - realSizes: f900000011010000 - relativeSizes: - - 0.4770115 - - 0.5229885 - minSizes: 6400000064000000 - maxSizes: 0000000000000000 - lastTotalSize: 522 - splitSize: 6 - xOffset: 0 - m_Recording: 1 - m_ActiveNativePlatformSupportModule: - m_CurrentArea: 0 - m_ProfilerModules: - - id: 0 - - id: 1 - - id: 2 - - id: 3 - - id: 4 - - id: 5 - - id: 6 - - id: 7 - - id: 8 - - id: 9 - - id: 10 - - id: 11 - - id: 12 - m_ClearOnPlay: 0 - references: - version: 1 - 00000000: - type: {class: CPUProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor} - data: - m_PaneScroll: {x: 0, y: 0} - m_ViewType: 0 - m_UpdateViewLive: 0 - m_ProfilerViewFilteringOptions: 1 - m_FrameDataHierarchyView: - m_Serialized: 1 - m_TreeViewState: - scrollPos: {x: 0, y: 0} - m_SelectedIDs: 1c010000 - m_LastClickedID: 284 - m_ExpandedIDs: 01000000050000000600000007000000250000002f000000390000003f0000004200000043000000490000004a0000004f00000050000000510000005700000058000000590000005a0000005c0000005e00000060000000620000006400000071000000890000008d0000009300000094000000950000009c000000a2000000a5000000a6000000a7000000a8000000a9000000aa000000b0000000b6000000b8000000b9000000bb000000bc000000bd000000be000000c0000000c1000000c2000000c3000000c4000000c5000000c6000000c7000000c8000000c9000000ca000000d1000000d2000000d3000000d4000000d6000000d7000000d9000000db000000dc000000de000000e0000000e1000000e3000000e4000000f0000000f6000000f7000000fb000000fd000000070100000b0100000c0100000d0100001c01000020010000210100002201000026010000270100002d0100002f0100003101000032010000350100003d010000560100005e0100007c01000093010000a0010000a1010000a3010000a7010000c3010000c5010000 - m_RenameOverlay: - m_UserAcceptedRename: 0 - m_Name: - m_OriginalName: - m_EditFieldRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0 - height: 0 - m_UserData: 0 - m_IsWaitingForDelay: 0 - m_IsRenaming: 0 - m_OriginalEventType: 11 - m_IsRenamingFilename: 0 - m_ClientGUIView: {fileID: 0} - m_SearchString: - m_MultiColumnHeaderState: - m_Columns: - - width: 224 - sortedAscending: 1 - - width: 80 - sortedAscending: 0 - - width: 80 - sortedAscending: 0 - - width: 80 - sortedAscending: 0 - - width: 80 - sortedAscending: 0 - - width: 94 - sortedAscending: 0 - - width: 80 - sortedAscending: 0 - - width: 25 - sortedAscending: 1 - m_VisibleColumns: 0000000001000000020000000300000004000000050000000600000007000000 - m_SortedColumns: 01000000050000000700000006000000 - m_ThreadIndex: 0 - m_DetailedViewType: 0 - m_DetailedViewSpliterState: - ID: 0 - splitterInitialOffset: 0 - currentActiveSplitter: -1 - realSizes: 0000000000000000 - relativeSizes: - - 0.7 - - 0.3 - minSizes: c201000032000000 - maxSizes: 0000000000000000 - lastTotalSize: 0 - splitSize: 6 - xOffset: 0 - m_DetailedObjectsView: - m_SelectedID: 0 - m_TreeViewState: - scrollPos: {x: 0, y: 0} - m_SelectedIDs: - m_LastClickedID: 0 - m_ExpandedIDs: - m_RenameOverlay: - m_UserAcceptedRename: 0 - m_Name: - m_OriginalName: - m_EditFieldRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0 - height: 0 - m_UserData: 0 - m_IsWaitingForDelay: 0 - m_IsRenaming: 0 - m_OriginalEventType: 11 - m_IsRenamingFilename: 0 - m_ClientGUIView: {fileID: 0} - m_SearchString: - m_MultiColumnHeaderState: - m_Columns: [] - m_VisibleColumns: - m_SortedColumns: - m_VertSplit: - ID: 0 - splitterInitialOffset: 0 - currentActiveSplitter: 0 - realSizes: - relativeSizes: [] - minSizes: - maxSizes: - lastTotalSize: 0 - splitSize: 0 - xOffset: 0 - m_DetailedCallsView: - m_SelectedID: -1 - m_VertSplit: - ID: 0 - splitterInitialOffset: 0 - currentActiveSplitter: 0 - realSizes: - relativeSizes: [] - minSizes: - maxSizes: - lastTotalSize: 0 - splitSize: 0 - xOffset: 0 - m_CalleesTreeView: - m_ViewState: - scrollPos: {x: 0, y: 0} - m_SelectedIDs: - m_LastClickedID: 0 - m_ExpandedIDs: - m_RenameOverlay: - m_UserAcceptedRename: 0 - m_Name: - m_OriginalName: - m_EditFieldRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0 - height: 0 - m_UserData: 0 - m_IsWaitingForDelay: 0 - m_IsRenaming: 0 - m_OriginalEventType: 11 - m_IsRenamingFilename: 0 - m_ClientGUIView: {fileID: 0} - m_SearchString: - m_ViewHeaderState: - m_Columns: - - width: 150 - sortedAscending: 1 - - width: 60 - sortedAscending: 0 - - width: 60 - sortedAscending: 0 - - width: 60 - sortedAscending: 0 - - width: 60 - sortedAscending: 0 - m_VisibleColumns: 0000000001000000020000000300000004000000 - m_SortedColumns: 03000000 - m_CallersTreeView: - m_ViewState: - scrollPos: {x: 0, y: 0} - m_SelectedIDs: - m_LastClickedID: 0 - m_ExpandedIDs: - m_RenameOverlay: - m_UserAcceptedRename: 0 - m_Name: - m_OriginalName: - m_EditFieldRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0 - height: 0 - m_UserData: 0 - m_IsWaitingForDelay: 0 - m_IsRenaming: 0 - m_OriginalEventType: 11 - m_IsRenamingFilename: 0 - m_ClientGUIView: {fileID: 0} - m_SearchString: - m_ViewHeaderState: - m_Columns: - - width: 150 - sortedAscending: 1 - - width: 60 - sortedAscending: 0 - - width: 60 - sortedAscending: 0 - - width: 60 - sortedAscending: 0 - - width: 60 - sortedAscending: 0 - m_VisibleColumns: 0000000001000000020000000300000004000000 - m_SortedColumns: 03000000 - m_ThreadName: Main Thread - 00000001: - type: {class: GPUProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor} - data: - m_PaneScroll: {x: 0, y: 0} - m_ViewType: 0 - m_UpdateViewLive: 0 - m_ProfilerViewFilteringOptions: 1 - m_FrameDataHierarchyView: - m_Serialized: 1 - m_TreeViewState: - scrollPos: {x: 0, y: 0} - m_SelectedIDs: - m_LastClickedID: 0 - m_ExpandedIDs: - m_RenameOverlay: - m_UserAcceptedRename: 0 - m_Name: - m_OriginalName: - m_EditFieldRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0 - height: 0 - m_UserData: 0 - m_IsWaitingForDelay: 0 - m_IsRenaming: 0 - m_OriginalEventType: 11 - m_IsRenamingFilename: 0 - m_ClientGUIView: {fileID: 0} - m_SearchString: - m_MultiColumnHeaderState: - m_Columns: - - width: 200 - sortedAscending: 1 - - width: 80 - sortedAscending: 0 - - width: 80 - sortedAscending: 0 - - width: 80 - sortedAscending: 0 - m_VisibleColumns: 00000000010000000200000003000000 - m_SortedColumns: 03000000 - m_ThreadIndex: 0 - m_DetailedViewType: 0 - m_DetailedViewSpliterState: - ID: 0 - splitterInitialOffset: 0 - currentActiveSplitter: -1 - realSizes: 0000000000000000 - relativeSizes: - - 0.7 - - 0.3 - minSizes: c201000032000000 - maxSizes: 0000000000000000 - lastTotalSize: 0 - splitSize: 6 - xOffset: 0 - m_DetailedObjectsView: - m_SelectedID: 0 - m_TreeViewState: - scrollPos: {x: 0, y: 0} - m_SelectedIDs: - m_LastClickedID: 0 - m_ExpandedIDs: - m_RenameOverlay: - m_UserAcceptedRename: 0 - m_Name: - m_OriginalName: - m_EditFieldRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0 - height: 0 - m_UserData: 0 - m_IsWaitingForDelay: 0 - m_IsRenaming: 0 - m_OriginalEventType: 11 - m_IsRenamingFilename: 0 - m_ClientGUIView: {fileID: 0} - m_SearchString: - m_MultiColumnHeaderState: - m_Columns: [] - m_VisibleColumns: - m_SortedColumns: - m_VertSplit: - ID: 0 - splitterInitialOffset: 0 - currentActiveSplitter: 0 - realSizes: - relativeSizes: [] - minSizes: - maxSizes: - lastTotalSize: 0 - splitSize: 0 - xOffset: 0 - m_DetailedCallsView: - m_SelectedID: -1 - m_VertSplit: - ID: 0 - splitterInitialOffset: 0 - currentActiveSplitter: 0 - realSizes: - relativeSizes: [] - minSizes: - maxSizes: - lastTotalSize: 0 - splitSize: 0 - xOffset: 0 - m_CalleesTreeView: - m_ViewState: - scrollPos: {x: 0, y: 0} - m_SelectedIDs: - m_LastClickedID: 0 - m_ExpandedIDs: - m_RenameOverlay: - m_UserAcceptedRename: 0 - m_Name: - m_OriginalName: - m_EditFieldRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0 - height: 0 - m_UserData: 0 - m_IsWaitingForDelay: 0 - m_IsRenaming: 0 - m_OriginalEventType: 11 - m_IsRenamingFilename: 0 - m_ClientGUIView: {fileID: 0} - m_SearchString: - m_ViewHeaderState: - m_Columns: - - width: 150 - sortedAscending: 1 - - width: 60 - sortedAscending: 0 - - width: 60 - sortedAscending: 0 - - width: 60 - sortedAscending: 0 - - width: 60 - sortedAscending: 0 - m_VisibleColumns: 0000000001000000020000000300000004000000 - m_SortedColumns: 03000000 - m_CallersTreeView: - m_ViewState: - scrollPos: {x: 0, y: 0} - m_SelectedIDs: - m_LastClickedID: 0 - m_ExpandedIDs: - m_RenameOverlay: - m_UserAcceptedRename: 0 - m_Name: - m_OriginalName: - m_EditFieldRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0 - height: 0 - m_UserData: 0 - m_IsWaitingForDelay: 0 - m_IsRenaming: 0 - m_OriginalEventType: 11 - m_IsRenamingFilename: 0 - m_ClientGUIView: {fileID: 0} - m_SearchString: - m_ViewHeaderState: - m_Columns: - - width: 150 - sortedAscending: 1 - - width: 60 - sortedAscending: 0 - - width: 60 - sortedAscending: 0 - - width: 60 - sortedAscending: 0 - - width: 60 - sortedAscending: 0 - m_VisibleColumns: 0000000001000000020000000300000004000000 - m_SortedColumns: 03000000 - m_ThreadName: Main Thread - 00000002: - type: {class: RenderingProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor} - data: - m_PaneScroll: {x: 0, y: 0} - 00000003: - type: {class: MemoryProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor} - data: - m_PaneScroll: {x: 0, y: 0} - m_ViewSplit: - ID: 0 - splitterInitialOffset: 0 - currentActiveSplitter: -1 - realSizes: 0000000000000000 - relativeSizes: - - 0.7 - - 0.3 - minSizes: c201000032000000 - maxSizes: 0000000000000000 - lastTotalSize: 0 - splitSize: 6 - xOffset: 0 - 00000004: - type: {class: AudioProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor} - data: - m_PaneScroll: {x: 0, y: 0} - m_ShowInactiveDSPChains: 0 - m_HighlightAudibleDSPChains: 1 - m_DSPGraphZoomFactor: 1 - 00000005: - type: {class: VideoProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor} - data: - m_PaneScroll: {x: 0, y: 0} - 00000006: - type: {class: PhysicsProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor} - data: - m_PaneScroll: {x: 0, y: 0} - 00000007: - type: {class: Physics2DProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor} - data: - m_PaneScroll: {x: 0, y: 0} - 00000008: - type: {class: NetworkingMessagesProfilerModule, ns: UnityEditorInternal.Profiling, - asm: UnityEditor} - data: - m_PaneScroll: {x: 0, y: 0} - 00000009: - type: {class: NetworkingOperationsProfilerModule, ns: UnityEditorInternal.Profiling, - asm: UnityEditor} - data: - m_PaneScroll: {x: 0, y: 0} - m_NetworkSplit: - ID: 0 - splitterInitialOffset: 0 - currentActiveSplitter: -1 - realSizes: 0000000000000000 - relativeSizes: - - 0.2 - - 0.8 - minSizes: 6400000064000000 - maxSizes: 0000000000000000 - lastTotalSize: 0 - splitSize: 6 - xOffset: 0 - msgNames: - - UserMessage - - ObjectDestroy - - ClientRpc - - ObjectSpawn - - Owner - - Command - - LocalPlayerTransform - - SyncEvent - - SyncVars - - SyncList - - ObjectSpawnScene - - NetworkInfo - - SpawnFinished - - ObjectHide - - CRC - - ClientAuthority - 0000000A: - type: {class: UIProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor} - data: - m_PaneScroll: {x: 0, y: 0} - 0000000B: - type: {class: UIDetailsProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor} - data: - m_PaneScroll: {x: 0, y: 0} - 0000000C: - type: {class: GlobalIlluminationProfilerModule, ns: UnityEditorInternal.Profiling, - asm: UnityEditor} - data: - m_PaneScroll: {x: 0, y: 0} ---- !u!114 &14 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12014, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_MinSize: {x: 230, y: 250} - m_MaxSize: {x: 10000, y: 10000} - m_TitleContent: - m_Text: Project - m_Image: {fileID: -5179483145760003458, guid: 0000000000000000d000000000000000, - type: 0} - m_Tooltip: - m_Pos: - serializedVersion: 2 - x: 0 - y: 610.28577 - width: 1739 - height: 543 - m_ViewDataDictionary: {fileID: 0} - m_SearchFilter: - m_NameFilter: - m_ClassNames: [] - m_AssetLabels: [] - m_AssetBundleNames: [] - m_VersionControlStates: [] - m_SoftLockControlStates: [] - m_ReferencingInstanceIDs: - m_SceneHandles: - m_ShowAllHits: 0 - m_SkipHidden: 0 - m_SearchArea: 1 - m_Folders: - - Assets/UnioTest/Scripts - m_ViewMode: 1 - m_StartGridSize: 16 - m_LastFolders: - - Assets/UnioTest/Scripts - m_LastFoldersGridSize: 16 - m_LastProjectPath: C:\Users\akihi\Documents\UnityProjects\Unio\UnityProjects\UnioForUniy - m_LockTracker: - m_IsLocked: 0 - m_FolderTreeState: - scrollPos: {x: 0, y: 0} - m_SelectedIDs: 62340000 - m_LastClickedID: 13410 - m_ExpandedIDs: 000000005e340000603400006234000000ca9a3b - m_RenameOverlay: - m_UserAcceptedRename: 0 - m_Name: - m_OriginalName: - m_EditFieldRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0 - height: 0 - m_UserData: 0 - m_IsWaitingForDelay: 0 - m_IsRenaming: 0 - m_OriginalEventType: 11 - m_IsRenamingFilename: 1 - m_ClientGUIView: {fileID: 6} - m_SearchString: - m_CreateAssetUtility: - m_EndAction: {fileID: 0} - m_InstanceID: 0 - m_Path: - m_Icon: {fileID: 0} - m_ResourceFile: - m_AssetTreeState: - scrollPos: {x: 0, y: 0} - m_SelectedIDs: - m_LastClickedID: 0 - m_ExpandedIDs: 000000005e3400006034000062340000 - m_RenameOverlay: - m_UserAcceptedRename: 0 - m_Name: - m_OriginalName: - m_EditFieldRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0 - height: 0 - m_UserData: 0 - m_IsWaitingForDelay: 0 - m_IsRenaming: 0 - m_OriginalEventType: 11 - m_IsRenamingFilename: 1 - m_ClientGUIView: {fileID: 0} - m_SearchString: - m_CreateAssetUtility: - m_EndAction: {fileID: 0} - m_InstanceID: 0 - m_Path: - m_Icon: {fileID: 0} - m_ResourceFile: - m_ListAreaState: - m_SelectedInstanceIDs: d8340000 - m_LastClickedInstanceID: 13528 - m_HadKeyboardFocusLastEvent: 0 - m_ExpandedInstanceIDs: c6230000cc3f000000000000f2c40200b63f000052700000 - m_RenameOverlay: - m_UserAcceptedRename: 0 - m_Name: Scripts - m_OriginalName: Scripts - m_EditFieldRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0 - height: 0 - m_UserData: 13410 - m_IsWaitingForDelay: 0 - m_IsRenaming: 0 - m_OriginalEventType: 0 - m_IsRenamingFilename: 1 - m_ClientGUIView: {fileID: 6} - m_CreateAssetUtility: - m_EndAction: {fileID: 0} - m_InstanceID: 0 - m_Path: - m_Icon: {fileID: 0} - m_ResourceFile: - m_NewAssetIndexInList: -1 - m_ScrollPosition: {x: 0, y: 0} - m_GridSize: 16 - m_SkipHiddenPackages: 0 - m_DirectoriesAreaWidth: 207 ---- !u!114 &15 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12019, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_MinSize: {x: 275, y: 50} - m_MaxSize: {x: 4000, y: 4000} - m_TitleContent: - m_Text: Inspector - m_Image: {fileID: -440750813802333266, guid: 0000000000000000d000000000000000, - type: 0} - m_Tooltip: - m_Pos: - serializedVersion: 2 - x: 1740.0001 - y: 72.571434 - width: 453 - height: 1081 - m_ViewDataDictionary: {fileID: 0} - m_OpenAddComponentMenu: 0 - m_ObjectsLockedBeforeSerialization: [] - m_InstanceIDsLockedBeforeSerialization: - m_LockTracker: - m_IsLocked: 0 - m_PreviewResizer: - m_CachedPref: 160 - m_ControlHash: -371814159 - m_PrefName: Preview_InspectorPreview - m_PreviewWindow: {fileID: 0} - m_LastInspectedObjectInstanceID: -1 - m_LastVerticalScrollValue: 0 ---- !u!114 &16 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12061, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_MinSize: {x: 200, y: 200} - m_MaxSize: {x: 4000, y: 4000} - m_TitleContent: - m_Text: Hierarchy - m_Image: {fileID: -3734745235275155857, guid: 0000000000000000d000000000000000, - type: 0} - m_Tooltip: - m_Pos: - serializedVersion: 2 - x: 0 - y: 72.571434 - width: 257 - height: 517 - m_ViewDataDictionary: {fileID: 0} - m_SceneHierarchy: - m_TreeViewState: - scrollPos: {x: 0, y: 0} - m_SelectedIDs: 5ee2ffff - m_LastClickedID: -7586 - m_ExpandedIDs: 60e2fffff6f9ffff6afbffff8c340000ac340000 - m_RenameOverlay: - m_UserAcceptedRename: 0 - m_Name: - m_OriginalName: - m_EditFieldRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 0 - height: 0 - m_UserData: 0 - m_IsWaitingForDelay: 0 - m_IsRenaming: 0 - m_OriginalEventType: 11 - m_IsRenamingFilename: 0 - m_ClientGUIView: {fileID: 5} - m_SearchString: - m_ExpandedScenes: [] - m_CurrenRootInstanceID: 0 - m_LockTracker: - m_IsLocked: 0 - m_CurrentSortingName: TransformSorting - m_WindowGUID: 4c969a2b90040154d917609493e03593 ---- !u!114 &17 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12013, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_MinSize: {x: 200, y: 200} - m_MaxSize: {x: 4000, y: 4000} - m_TitleContent: - m_Text: Scene - m_Image: {fileID: 8634526014445323508, guid: 0000000000000000d000000000000000, - type: 0} - m_Tooltip: - m_Pos: - serializedVersion: 2 - x: 258.28574 - y: 72.571434 - width: 732 - height: 517 - m_ViewDataDictionary: {fileID: 0} - m_ShowContextualTools: 0 - m_WindowGUID: cc27987af1a868c49b0894db9c0f5429 - m_Gizmos: 1 - m_SceneIsLit: 1 - m_SceneLighting: 1 - m_2DMode: 1 - m_isRotationLocked: 0 - m_PlayAudio: 0 - m_AudioPlay: 0 - m_Position: - m_Target: {x: 318.71063, y: 648.68726, z: -37.950752} - speed: 2 - m_Value: {x: 318.71063, y: 648.68726, z: -37.950752} - m_RenderMode: 0 - m_CameraMode: - drawMode: 0 - name: Shaded - section: Shading Mode - m_ValidateTrueMetals: 0 - m_DoValidateTrueMetals: 0 - m_ExposureSliderValue: 0 - m_ExposureSliderMax: 10 - m_SceneViewState: - showFog: 1 - showMaterialUpdate: 0 - showSkybox: 1 - showFlares: 1 - showImageEffects: 1 - showParticleSystems: 1 - m_Grid: - xGrid: - m_Fade: - m_Target: 0 - speed: 2 - m_Value: 1 - m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} - m_Pivot: {x: 0, y: 0, z: 0} - m_Size: {x: 1, y: 1} - yGrid: - m_Fade: - m_Target: 0 - speed: 2 - m_Value: 1 - m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} - m_Pivot: {x: 0, y: 0, z: 0} - m_Size: {x: 1, y: 1} - zGrid: - m_Fade: - m_Target: 1 - speed: 2 - m_Value: 1 - m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} - m_Pivot: {x: 0, y: 0, z: 0} - m_Size: {x: 1, y: 1} - m_ShowGrid: 1 - m_GridAxis: 1 - m_gridOpacity: 0.5 - m_Rotation: - m_Target: {x: 0, y: 0, z: 0, w: 1} - speed: 2 - m_Value: {x: 0, y: 0, z: 0, w: 1} - m_Size: - m_Target: 261.45767 - speed: 2 - m_Value: 261.45767 - m_Ortho: - m_Target: 1 - speed: 2 - m_Value: 1 - m_CameraSettings: - m_Speed: 1 - m_SpeedNormalized: 0.5 - m_SpeedMin: 0.001 - m_SpeedMax: 2 - m_EasingEnabled: 1 - m_EasingDuration: 0.4 - m_AccelerationEnabled: 1 - m_FieldOfViewHorizontalOrVertical: 60 - m_NearClip: 0.03 - m_FarClip: 10000 - m_DynamicClip: 1 - m_OcclusionCulling: 0 - m_LastSceneViewRotation: {x: 0.110156186, y: -0.017889513, z: 0.0019823348, w: 0.9937539} - m_LastSceneViewOrtho: 1 - m_ReplacementShader: {fileID: 0} - m_ReplacementString: - m_SceneVisActive: 1 - m_LastLockedObject: {fileID: 0} - m_ViewIsLockedToObject: 0 ---- !u!114 &18 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_MinSize: {x: 200, y: 200} - m_MaxSize: {x: 4000, y: 4000} - m_TitleContent: - m_Text: Game - m_Image: {fileID: 4621777727084837110, guid: 0000000000000000d000000000000000, - type: 0} - m_Tooltip: - m_Pos: - serializedVersion: 2 - x: 992.00006 - y: 72.571434 - width: 746 - height: 517 - m_ViewDataDictionary: {fileID: 0} - m_SerializedViewNames: [] - m_SerializedViewValues: [] - m_SerializedCustomFieldsNames: [] - m_SerializedCustomFieldsValues: [] - m_PlayModeViewName: GameView - m_ShowGizmos: 0 - m_TargetDisplay: 0 - m_ClearColor: {r: 0, g: 0, b: 0, a: 0} - m_TargetSize: {x: 1305.5, y: 868} - m_TextureFilterMode: 0 - m_TextureHideFlags: 61 - m_RenderIMGUI: 1 - m_MaximizeOnPlay: 0 - m_UseMipMap: 0 - m_VSyncEnabled: 0 - m_Gizmos: 0 - m_Stats: 0 - m_SelectedSizes: 00000000000000000000000000000000000000000000000000000000000000000000000000000000 - m_ZoomArea: - m_HRangeLocked: 0 - m_VRangeLocked: 0 - hZoomLockedByDefault: 0 - vZoomLockedByDefault: 0 - m_HBaseRangeMin: -373.00003 - m_HBaseRangeMax: 373.00003 - m_VBaseRangeMin: -248.00002 - m_VBaseRangeMax: 248.00002 - m_HAllowExceedBaseRangeMin: 1 - m_HAllowExceedBaseRangeMax: 1 - m_VAllowExceedBaseRangeMin: 1 - m_VAllowExceedBaseRangeMax: 1 - m_ScaleWithWindow: 0 - m_HSlider: 0 - m_VSlider: 0 - m_IgnoreScrollWheelUntilClicked: 0 - m_EnableMouseInput: 1 - m_EnableSliderZoomHorizontal: 0 - m_EnableSliderZoomVertical: 0 - m_UniformScale: 1 - m_UpDirection: 1 - m_DrawArea: - serializedVersion: 2 - x: 0 - y: 21 - width: 746 - height: 496 - m_Scale: {x: 0.99999994, y: 0.99999994} - m_Translation: {x: 373, y: 248} - m_MarginLeft: 0 - m_MarginRight: 0 - m_MarginTop: 0 - m_MarginBottom: 0 - m_LastShownAreaInsideMargins: - serializedVersion: 2 - x: -373.00003 - y: -248.00002 - width: 746.00006 - height: 496.00003 - m_MinimalGUI: 1 - m_defaultScale: 0.99999994 - m_LastWindowPixelSize: {x: 1305.5, y: 904.75} - m_ClearInEditMode: 1 - m_NoCameraWarning: 1 - m_LowResolutionForAspectRatios: 00000000000000000000 - m_XRRenderMode: 0 - m_RenderTexture: {fileID: 0} ---- !u!114 &19 -MonoBehaviour: - m_ObjectHideFlags: 52 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 1 - m_Script: {fileID: 12003, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_MinSize: {x: 100, y: 100} - m_MaxSize: {x: 4000, y: 4000} - m_TitleContent: - m_Text: Console - m_Image: {fileID: -4950941429401207979, guid: 0000000000000000d000000000000000, - type: 0} - m_Tooltip: - m_Pos: - serializedVersion: 2 - x: 0 - y: 610.28577 - width: 1739 - height: 543 - m_ViewDataDictionary: {fileID: 0} diff --git a/UnityProjects/UnioForUniy/Library/EditorOnlyScriptingSettings.json b/UnityProjects/UnioForUniy/Library/EditorOnlyScriptingSettings.json deleted file mode 100644 index 8e1824c..0000000 --- a/UnityProjects/UnioForUniy/Library/EditorOnlyScriptingSettings.json +++ /dev/null @@ -1 +0,0 @@ -{"m_DefineSymbols":[],"m_AllowUnsafeCode":false} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/EditorSnapSettings.asset b/UnityProjects/UnioForUniy/Library/EditorSnapSettings.asset deleted file mode 100644 index 7a90624..0000000 --- a/UnityProjects/UnioForUniy/Library/EditorSnapSettings.asset +++ /dev/null @@ -1,20 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &1 -MonoBehaviour: - m_ObjectHideFlags: 61 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 13954, guid: 0000000000000000e000000000000000, type: 0} - m_Name: - m_EditorClassIdentifier: - m_SnapEnabled: 0 - m_SnapSettings: - m_SnapValue: {x: 0.25, y: 0.25, z: 0.25} - m_SnapMultiplier: {x: 2048, y: 2048, z: 2048} - m_Rotation: 15 - m_Scale: 1 diff --git a/UnityProjects/UnioForUniy/Library/EditorUserBuildSettings.asset b/UnityProjects/UnioForUniy/Library/EditorUserBuildSettings.asset deleted file mode 100644 index 6a32c09..0000000 Binary files a/UnityProjects/UnioForUniy/Library/EditorUserBuildSettings.asset and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/EditorUserSettings.asset b/UnityProjects/UnioForUniy/Library/EditorUserSettings.asset deleted file mode 100644 index 4681d1d..0000000 --- a/UnityProjects/UnioForUniy/Library/EditorUserSettings.asset +++ /dev/null @@ -1,19 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!162 &1 -EditorUserSettings: - m_ObjectHideFlags: 0 - serializedVersion: 4 - m_ConfigSettings: - vcSharedLogLevel: - value: 0d5e400f0650 - flags: 0 - m_VCAutomaticAdd: 1 - m_VCDebugCom: 0 - m_VCDebugCmd: 0 - m_VCDebugOut: 0 - m_SemanticMergeMode: 2 - m_VCShowFailedCheckout: 1 - m_VCOverwriteFailedCheckoutAssets: 1 - m_VCOverlayIcons: 1 - m_VCAllowAsyncUpdate: 0 diff --git a/UnityProjects/UnioForUniy/Library/InspectorExpandedItems.asset b/UnityProjects/UnioForUniy/Library/InspectorExpandedItems.asset deleted file mode 100644 index fb4b2d5..0000000 Binary files a/UnityProjects/UnioForUniy/Library/InspectorExpandedItems.asset and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/LastSceneManagerSetup.txt b/UnityProjects/UnioForUniy/Library/LastSceneManagerSetup.txt deleted file mode 100644 index 3300e32..0000000 --- a/UnityProjects/UnioForUniy/Library/LastSceneManagerSetup.txt +++ /dev/null @@ -1,5 +0,0 @@ -sceneSetups: -- path: Assets/UnioTest/Scenes/SampleScene.unity - isLoaded: 1 - isActive: 1 - isSubScene: 0 diff --git a/UnityProjects/UnioForUniy/Library/LibraryFormatVersion.txt b/UnityProjects/UnioForUniy/Library/LibraryFormatVersion.txt deleted file mode 100644 index 6185f09..0000000 --- a/UnityProjects/UnioForUniy/Library/LibraryFormatVersion.txt +++ /dev/null @@ -1,2 +0,0 @@ -unityRebuildLibraryVersion: 11 -unityForwardCompatibleVersion: 40 diff --git a/UnityProjects/UnioForUniy/Library/MonoManager.asset b/UnityProjects/UnioForUniy/Library/MonoManager.asset deleted file mode 100644 index 855f015..0000000 Binary files a/UnityProjects/UnioForUniy/Library/MonoManager.asset and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/.npmignore b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/.npmignore deleted file mode 100644 index 1586aea..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/.npmignore +++ /dev/null @@ -1,6 +0,0 @@ - -automation/** -utr_output/** -.Editor/** -.yamato/** -*.zip* \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/CHANGELOG.md b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/CHANGELOG.md deleted file mode 100644 index 3c6c85d..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/CHANGELOG.md +++ /dev/null @@ -1,31 +0,0 @@ -# Changelog -All notable changes to this package will be documented in this file. - -The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). - -## [1.2.16] - 2019-02-11 -Update stylesheet to pass USS validation - -## [1.2.15] - 2018-11-16 -Added support for non-experimental UIElements. - -## [1.2.11] - 2018-09-04 -Made some performance improvements to reduce impact on ReloadAssemblies. - -## [1.2.9] - 2018-08-13 -Test issues for the Collab History Window are now fixed. - -## [1.2.7] - 2018-08-07 -Toolbar drop-down will no longer show up when package is uninstalled. - -## [1.2.6] - 2018-06-15 -Fixed an issue where Collab's History window wouldn't load properly. - -## [1.2.5] - 2018-05-21 -This is the first release of *Unity Package CollabProxy*. - -### Added -- Collab history and toolbar windows -- Collab view and presenter classes -- Collab Editor tests for view and presenter diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/DEPENDENCIES.md b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/DEPENDENCIES.md deleted file mode 100644 index 57808d5..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/DEPENDENCIES.md +++ /dev/null @@ -1,9 +0,0 @@ - - - - Unity.CollabProxy.Dependencies - 1.1.0-experimental - Rohit Garg - Dependencies for the CollabProxy package - - diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/AssemblyInfo.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/AssemblyInfo.cs deleted file mode 100644 index d7266b6..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/AssemblyInfo.cs +++ /dev/null @@ -1,4 +0,0 @@ -using System.Runtime.CompilerServices; -using UnityEngine; - -[assembly: InternalsVisibleTo("Unity.CollabProxy.EditorTests")] diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Bootstrap.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Bootstrap.cs deleted file mode 100644 index 029ce1c..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Bootstrap.cs +++ /dev/null @@ -1,24 +0,0 @@ -using UnityEditor; -using UnityEditor.Collaboration; -using UnityEngine; - -namespace CollabProxy.UI -{ - [InitializeOnLoad] - public class Bootstrap - { - private const float kCollabToolbarButtonWidth = 78.0f; - - static Bootstrap() - { - Collab.ShowHistoryWindow = CollabHistoryWindow.ShowHistoryWindow; - Collab.ShowToolbarAtPosition = CollabToolbarWindow.ShowCenteredAtPosition; - Collab.IsToolbarVisible = CollabToolbarWindow.IsVisible; - Collab.CloseToolbar = CollabToolbarWindow.CloseToolbar; - Toolbar.AddSubToolbar(new CollabToolbarButton - { - Width = kCollabToolbarButtonWidth - }); - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/CollabAnalytics.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/CollabAnalytics.cs deleted file mode 100644 index c7f90aa..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/CollabAnalytics.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; - -namespace UnityEditor.Collaboration -{ - internal static class CollabAnalytics - { - [Serializable] - private struct CollabUserActionAnalyticsEvent - { - public string category; - public string action; - } - - public static void SendUserAction(string category, string action) - { - EditorAnalytics.SendCollabUserAction(new CollabUserActionAnalyticsEvent() { category = category, action = action }); - } - - public static readonly string historyCategoryString = "History"; - }; -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/CollabHistoryWindow.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/CollabHistoryWindow.cs deleted file mode 100644 index b855bce..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/CollabHistoryWindow.cs +++ /dev/null @@ -1,330 +0,0 @@ -using System; -using System.Linq; -using System.Collections.Generic; -using UnityEditor.Collaboration; - -#if UNITY_2019_1_OR_NEWER -using UnityEditor.UIElements; -using UnityEngine.UIElements; -#else -using UnityEditor.Experimental.UIElements; -using UnityEngine.Experimental.UIElements; -using UnityEngine.Experimental.UIElements.StyleEnums; -#endif - -using UnityEngine; -using UnityEditor.Connect; - -namespace UnityEditor -{ - internal class CollabHistoryWindow : EditorWindow, ICollabHistoryWindow - { -#if UNITY_2019_1_OR_NEWER - private const string ResourcesPath = "Packages/com.unity.collab-proxy/Editor/Resources/Styles/"; -#else - private const string ResourcesPath = "StyleSheets/"; -#endif - - - const string kWindowTitle = "Collab History"; - const string kServiceUrl = "developer.cloud.unity3d.com"; - - [MenuItem("Window/Asset Management/Collab History", false, 1)] - public static void ShowHistoryWindow() - { - EditorWindow.GetWindow(kWindowTitle); - } - - [MenuItem("Window/Asset Management/Collab History", true)] - public static bool ValidateShowHistoryWindow() - { - return Collab.instance.IsCollabEnabledForCurrentProject(); - } - - CollabHistoryPresenter m_Presenter; - Dictionary m_Views; - List m_HistoryItems = new List(); - HistoryState m_State; - VisualElement m_Container; - PagedListView m_Pager; - ScrollView m_HistoryView; - int m_ItemsPerPage = 5; - string m_InProgressRev; - bool m_RevisionActionsEnabled; - - public CollabHistoryWindow() - { - minSize = new Vector2(275, 50); - } - - public void OnEnable() - { - SetupGUI(); - name = "CollabHistory"; - - if (m_Presenter == null) - { - m_Presenter = new CollabHistoryPresenter(this, new CollabHistoryItemFactory(), new RevisionsService(Collab.instance, UnityConnect.instance)); - } - m_Presenter.OnWindowEnabled(); - } - - public void OnDisable() - { - m_Presenter.OnWindowDisabled(); - } - - public bool revisionActionsEnabled - { - get { return m_RevisionActionsEnabled; } - set - { - if (m_RevisionActionsEnabled == value) - return; - - m_RevisionActionsEnabled = value; - foreach (var historyItem in m_HistoryItems) - { - historyItem.RevisionActionsEnabled = value; - } - } - } - - private void AddStyleSheetPath(VisualElement root, string path) - { -#if UNITY_2019_1_OR_NEWER - root.styleSheets.Add(EditorGUIUtility.Load(path) as StyleSheet); -#else - root.AddStyleSheetPath(path); -#endif - } - - - public void SetupGUI() - { -#if UNITY_2019_1_OR_NEWER - var root = this.rootVisualElement; -#else - var root = this.GetRootVisualContainer(); -#endif - AddStyleSheetPath(root, ResourcesPath + "CollabHistoryCommon.uss"); - if (EditorGUIUtility.isProSkin) - { - AddStyleSheetPath(root, ResourcesPath + "CollabHistoryDark.uss"); - } - else - { - AddStyleSheetPath(root, ResourcesPath + "CollabHistoryLight.uss"); - } - - m_Container = new VisualElement(); - m_Container.StretchToParentSize(); - root.Add(m_Container); - - m_Pager = new PagedListView() - { - name = "PagedElement", - pageSize = m_ItemsPerPage - }; - - var errorView = new StatusView() - { - message = "An Error Occurred", - icon = EditorGUIUtility.LoadIconRequired("Collab.Warning") as Texture, - }; - - var noInternetView = new StatusView() - { - message = "No Internet Connection", - icon = EditorGUIUtility.LoadIconRequired("Collab.NoInternet") as Texture, - }; - - var maintenanceView = new StatusView() - { - message = "Maintenance", - }; - - var loginView = new StatusView() - { - message = "Sign in to access Collaborate", - buttonText = "Sign in...", - callback = SignInClick, - }; - - var noSeatView = new StatusView() - { - message = "Ask your project owner for access to Unity Teams", - buttonText = "Learn More", - callback = NoSeatClick, - }; - - var waitingView = new StatusView() - { - message = "Updating...", - }; - - m_HistoryView = new ScrollView() { name = "HistoryContainer", showHorizontal = false}; - m_HistoryView.contentContainer.StretchToParentWidth(); - m_HistoryView.Add(m_Pager); - - m_Views = new Dictionary() - { - {HistoryState.Error, errorView}, - {HistoryState.Offline, noInternetView}, - {HistoryState.Maintenance, maintenanceView}, - {HistoryState.LoggedOut, loginView}, - {HistoryState.NoSeat, noSeatView}, - {HistoryState.Waiting, waitingView}, - {HistoryState.Ready, m_HistoryView} - }; - } - - public void UpdateState(HistoryState state, bool force) - { - if (state == m_State && !force) - return; - - m_State = state; - switch (state) - { - case HistoryState.Ready: - UpdateHistoryView(m_Pager); - break; - case HistoryState.Disabled: - Close(); - return; - } - - m_Container.Clear(); - m_Container.Add(m_Views[m_State]); - } - - public void UpdateRevisions(IEnumerable datas, string tip, int totalRevisions, int currentPage) - { - var elements = new List(); - var isFullDateObtained = false; // Has everything from this date been obtained? - m_HistoryItems.Clear(); - - if (datas != null) - { - DateTime currentDate = DateTime.MinValue; - foreach (var data in datas) - { - if (data.timeStamp.Date != currentDate.Date) - { - elements.Add(new CollabHistoryRevisionLine(data.timeStamp, isFullDateObtained)); - currentDate = data.timeStamp; - } - - var item = new CollabHistoryItem(data); - m_HistoryItems.Add(item); - - var container = new VisualElement(); - container.style.flexDirection = FlexDirection.Row; - if (data.current) - { - isFullDateObtained = true; - container.AddToClassList("currentRevision"); - container.AddToClassList("obtainedRevision"); - } - else if (data.obtained) - { - container.AddToClassList("obtainedRevision"); - } - else - { - container.AddToClassList("absentRevision"); - } - // If we use the index as-is, the latest commit will become #1, but we want it to be last - container.Add(new CollabHistoryRevisionLine(data.index)); - container.Add(item); - elements.Add(container); - } - } - - m_HistoryView.scrollOffset = new Vector2(0, 0); - m_Pager.totalItems = totalRevisions; - m_Pager.curPage = currentPage; - m_Pager.items = elements; - } - - public string inProgressRevision - { - get { return m_InProgressRev; } - set - { - m_InProgressRev = value; - foreach (var historyItem in m_HistoryItems) - { - historyItem.SetInProgressStatus(value); - } - } - } - - public int itemsPerPage - { - set - { - if (m_ItemsPerPage == value) - return; - m_Pager.pageSize = m_ItemsPerPage; - } - } - - public PageChangeAction OnPageChangeAction - { - set { m_Pager.OnPageChanged = value; } - } - - public RevisionAction OnGoBackAction - { - set { CollabHistoryItem.s_OnGoBack = value; } - } - - public RevisionAction OnUpdateAction - { - set { CollabHistoryItem.s_OnUpdate = value; } - } - - public RevisionAction OnRestoreAction - { - set { CollabHistoryItem.s_OnRestore = value; } - } - - public ShowBuildAction OnShowBuildAction - { - set { CollabHistoryItem.s_OnShowBuild = value; } - } - - public Action OnShowServicesAction - { - set { CollabHistoryItem.s_OnShowServices = value; } - } - - void UpdateHistoryView(VisualElement history) - { - } - - void NoSeatClick() - { - var connection = UnityConnect.instance; - var env = connection.GetEnvironment(); - // Map environment to url - prod is special - if (env == "production") - env = ""; - else - env += "-"; - - var url = "https://" + env + kServiceUrl - + "/orgs/" + connection.GetOrganizationId() - + "/projects/" + connection.GetProjectName() - + "/unity-teams/"; - Application.OpenURL(url); - } - - void SignInClick() - { - UnityConnect.instance.ShowLogin(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/CollabToolbarButton.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/CollabToolbarButton.cs deleted file mode 100644 index eebe4ac..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/CollabToolbarButton.cs +++ /dev/null @@ -1,297 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using UnityEditor.Collaboration; -using UnityEditor.Connect; -using UnityEditor.Web; -using UnityEngine; - -namespace UnityEditor -{ - internal class CollabToolbarButton : SubToolbar, IDisposable - { - // Must match s_CollabIcon array - enum CollabToolbarState - { - NeedToEnableCollab, - UpToDate, - Conflict, - OperationError, - ServerHasChanges, - FilesToPush, - InProgress, - Disabled, - Offline - } - - private class CollabToolbarContent - { - readonly string m_iconName; - readonly string m_toolTip; - readonly CollabToolbarState m_state; - - static Dictionary m_CollabIcons; - - public CollabToolbarState RegisteredForState - { - get { return m_state; } - } - - public GUIContent GuiContent - { - get - { - if (m_CollabIcons == null) - { - m_CollabIcons = new Dictionary(); - } - - if (!m_CollabIcons.ContainsKey(this)) - { - m_CollabIcons.Add(this, EditorGUIUtility.TrTextContentWithIcon("Collab", m_toolTip, m_iconName)); - } - - return m_CollabIcons[this]; - } - } - - public CollabToolbarContent(CollabToolbarState state, string iconName, string toolTip) - { - m_state = state; - m_iconName = iconName; - m_toolTip = toolTip; - } - } - - CollabToolbarContent[] m_toolbarContents; - CollabToolbarState m_CollabToolbarState = CollabToolbarState.UpToDate; - const float kCollabButtonWidth = 78.0f; - ButtonWithAnimatedIconRotation m_CollabButton; - string m_DynamicTooltip; - static bool m_ShowCollabTooltip = false; - - private GUIContent currentCollabContent - { - get - { - CollabToolbarContent toolbarContent = - m_toolbarContents.FirstOrDefault(c => c.RegisteredForState.Equals(m_CollabToolbarState)); - GUIContent content = new GUIContent(toolbarContent == null? m_toolbarContents.First().GuiContent : toolbarContent.GuiContent); - if (!m_ShowCollabTooltip) - { - content.tooltip = null; - } - else if (m_DynamicTooltip != "") - { - content.tooltip = m_DynamicTooltip; - } - - if (Collab.instance.AreTestsRunning()) - { - content.text = "CTF"; - } - - return content; - } - } - - public CollabToolbarButton() - { - m_toolbarContents = new[] - { - new CollabToolbarContent(CollabToolbarState.NeedToEnableCollab, "CollabNew", " You need to enable collab."), - new CollabToolbarContent(CollabToolbarState.UpToDate, "Collab", " You are up to date."), - new CollabToolbarContent(CollabToolbarState.Conflict, "CollabConflict", " Please fix your conflicts prior to publishing."), - new CollabToolbarContent(CollabToolbarState.OperationError, "CollabError", " Last operation failed. Please retry later."), - new CollabToolbarContent(CollabToolbarState.ServerHasChanges, "CollabPull", " Please update, there are server changes."), - new CollabToolbarContent(CollabToolbarState.FilesToPush, "CollabPush", " You have files to publish."), - new CollabToolbarContent(CollabToolbarState.InProgress, "CollabProgress", " Operation in progress."), - new CollabToolbarContent(CollabToolbarState.Disabled, "CollabNew", " Collab is disabled."), - new CollabToolbarContent(CollabToolbarState.Offline, "CollabNew", " Please check your network connection.") - }; - - Collab.instance.StateChanged += OnCollabStateChanged; - UnityConnect.instance.StateChanged += OnUnityConnectStateChanged; - UnityConnect.instance.UserStateChanged += OnUnityConnectUserStateChanged; - } - - void OnUnityConnectUserStateChanged(UserInfo state) - { - UpdateCollabToolbarState(); - } - - void OnUnityConnectStateChanged(ConnectInfo state) - { - UpdateCollabToolbarState(); - } - - public override void OnGUI(Rect rect) - { - DoCollabDropDown(rect); - } - - Rect GUIToScreenRect(Rect guiRect) - { - Vector2 screenPoint = GUIUtility.GUIToScreenPoint(new Vector2(guiRect.x, guiRect.y)); - guiRect.x = screenPoint.x; - guiRect.y = screenPoint.y; - return guiRect; - } - - void ShowPopup(Rect rect) - { - // window should be centered on the button - ReserveRight(kCollabButtonWidth / 2, ref rect); - ReserveBottom(5, ref rect); - // calculate screen rect before saving assets since it might open the AssetSaveDialog window - var screenRect = GUIToScreenRect(rect); - // save all the assets - AssetDatabase.SaveAssets(); - if (Collab.ShowToolbarAtPosition != null && Collab.ShowToolbarAtPosition(screenRect)) - { - GUIUtility.ExitGUI(); - } - } - - void DoCollabDropDown(Rect rect) - { - UpdateCollabToolbarState(); - GUIStyle collabButtonStyle = "OffsetDropDown"; - bool showPopup = Toolbar.requestShowCollabToolbar; - Toolbar.requestShowCollabToolbar = false; - - bool enable = !EditorApplication.isPlaying; - - using (new EditorGUI.DisabledScope(!enable)) - { - bool animate = m_CollabToolbarState == CollabToolbarState.InProgress; - - EditorGUIUtility.SetIconSize(new Vector2(12, 12)); - if (GetCollabButton().OnGUI(rect, currentCollabContent, animate, collabButtonStyle)) - { - showPopup = true; - } - EditorGUIUtility.SetIconSize(Vector2.zero); - } - - if (m_CollabToolbarState == CollabToolbarState.Disabled) - return; - - if (showPopup) - { - ShowPopup(rect); - } - } - - public void OnCollabStateChanged(CollabInfo info) - { - UpdateCollabToolbarState(); - } - - public void UpdateCollabToolbarState() - { - var currentCollabState = CollabToolbarState.UpToDate; - bool networkAvailable = UnityConnect.instance.connectInfo.online && UnityConnect.instance.connectInfo.loggedIn; - m_DynamicTooltip = ""; - - if (UnityConnect.instance.isDisableCollabWindow) - { - currentCollabState = CollabToolbarState.Disabled; - } - else if (networkAvailable) - { - Collab collab = Collab.instance; - CollabInfo currentInfo = collab.collabInfo; - UnityErrorInfo errInfo; - bool error = false; - if (collab.GetError((UnityConnect.UnityErrorFilter.ByContext | UnityConnect.UnityErrorFilter.ByChild), out errInfo)) - { - error = (errInfo.priority <= (int)UnityConnect.UnityErrorPriority.Error); - m_DynamicTooltip = errInfo.shortMsg; - } - - if (!currentInfo.ready) - { - currentCollabState = CollabToolbarState.InProgress; - } - else if (error) - { - currentCollabState = CollabToolbarState.OperationError; - } - else if (currentInfo.inProgress) - { - currentCollabState = CollabToolbarState.InProgress; - } - else - { - bool collabEnable = Collab.instance.IsCollabEnabledForCurrentProject(); - - if (UnityConnect.instance.projectInfo.projectBound == false || !collabEnable) - { - currentCollabState = CollabToolbarState.NeedToEnableCollab; - } - else if (currentInfo.update) - { - currentCollabState = CollabToolbarState.ServerHasChanges; - } - else if (currentInfo.conflict) - { - currentCollabState = CollabToolbarState.Conflict; - } - else if (currentInfo.publish) - { - currentCollabState = CollabToolbarState.FilesToPush; - } - } - } - else - { - currentCollabState = CollabToolbarState.Offline; - } - - if (Collab.IsToolbarVisible != null) - { - if (currentCollabState != m_CollabToolbarState || - Collab.IsToolbarVisible() == m_ShowCollabTooltip) - { - m_CollabToolbarState = currentCollabState; - m_ShowCollabTooltip = !Collab.IsToolbarVisible(); - Toolbar.RepaintToolbar(); - } - } - } - - void ReserveRight(float width, ref Rect pos) - { - pos.x += width; - } - - void ReserveBottom(float height, ref Rect pos) - { - pos.y += height; - } - - ButtonWithAnimatedIconRotation GetCollabButton() - { - if (m_CollabButton == null) - { - const int repaintsPerSecond = 20; - const float animSpeed = 500f; - const bool mouseDownButton = true; - m_CollabButton = new ButtonWithAnimatedIconRotation(() => (float)EditorApplication.timeSinceStartup * animSpeed, Toolbar.RepaintToolbar, repaintsPerSecond, mouseDownButton); - } - - return m_CollabButton; - } - - public void Dispose() - { - Collab.instance.StateChanged -= OnCollabStateChanged; - UnityConnect.instance.StateChanged -= OnUnityConnectStateChanged; - UnityConnect.instance.UserStateChanged -= OnUnityConnectUserStateChanged; - - if (m_CollabButton != null) - m_CollabButton.Clear(); - } - } -} // namespace \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/CollabToolbarWindow.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/CollabToolbarWindow.cs deleted file mode 100644 index 2793875..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/CollabToolbarWindow.cs +++ /dev/null @@ -1,137 +0,0 @@ -using UnityEngine; -using UnityEditor.Collaboration; -using UnityEditor.Web; -using UnityEditor.Connect; - -namespace UnityEditor -{ - [InitializeOnLoad] - internal class WebViewStatic : ScriptableSingleton - { - [SerializeField] - WebView m_WebView; - - static public WebView GetWebView() - { - return instance.m_WebView; - } - - static public void SetWebView(WebView webView) - { - instance.m_WebView = webView; - } - } - - [InitializeOnLoad] - internal class CollabToolbarWindow : WebViewEditorStaticWindow, IHasCustomMenu - { - internal override WebView webView - { - get {return WebViewStatic.GetWebView(); } - set {WebViewStatic.SetWebView(value); } - } - - private const string kWindowName = "Unity Collab Toolbar"; - - private static long s_LastClosedTime; - private static CollabToolbarWindow s_CollabToolbarWindow; - - public static bool s_ToolbarIsVisible = false; - - const int kWindowWidth = 320; - const int kWindowHeight = 350; - - public static void CloseToolbar() - { - foreach (CollabToolbarWindow window in Resources.FindObjectsOfTypeAll()) - window.Close(); - } - - [MenuItem("Window/Asset Management/Collab Toolbar", false /*IsValidateFunction*/, 2, true /* IsInternalMenu */)] - public static CollabToolbarWindow ShowToolbarWindow() - { - //Create a new window if it does not exist - if (s_CollabToolbarWindow == null) - { - s_CollabToolbarWindow = GetWindow(false, kWindowName) as CollabToolbarWindow; - } - - return s_CollabToolbarWindow; - } - - [MenuItem("Window/Asset Management/Collab Toolbar", true /*IsValidateFunction*/)] - public static bool ValidateShowToolbarWindow() - { - return true; - } - - public static bool IsVisible() - { - return s_ToolbarIsVisible; - } - - public static bool ShowCenteredAtPosition(Rect buttonRect) - { - buttonRect.x -= kWindowWidth / 2; - // We could not use realtimeSinceStartUp since it is set to 0 when entering/exitting playmode, we assume an increasing time when comparing time. - long nowMilliSeconds = System.DateTime.Now.Ticks / System.TimeSpan.TicksPerMillisecond; - bool justClosed = nowMilliSeconds < s_LastClosedTime + 50; - if (!justClosed) - { - // Method may have been triggered programmatically, without a user event to consume. - if (Event.current.type != EventType.Layout) - { - Event.current.Use(); - } - if (s_CollabToolbarWindow == null) - s_CollabToolbarWindow = CreateInstance() as CollabToolbarWindow; - var windowSize = new Vector2(kWindowWidth, kWindowHeight); - s_CollabToolbarWindow.initialOpenUrl = "file:///" + EditorApplication.userJavascriptPackagesPath + "unityeditor-collab-toolbar/dist/index.html"; - s_CollabToolbarWindow.Init(); - s_CollabToolbarWindow.ShowAsDropDown(buttonRect, windowSize); - s_CollabToolbarWindow.OnFocus(); - return true; - } - return false; - } - - // Receives HTML title - public void OnReceiveTitle(string title) - { - titleContent.text = title; - } - - public new void OnInitScripting() - { - base.OnInitScripting(); - } - - public override void OnEnable() - { - minSize = new Vector2(kWindowWidth, kWindowHeight); - maxSize = new Vector2(kWindowWidth, kWindowHeight); - initialOpenUrl = "file:///" + EditorApplication.userJavascriptPackagesPath + "unityeditor-collab-toolbar/dist/index.html"; - base.OnEnable(); - s_ToolbarIsVisible = true; - } - - internal new void OnDisable() - { - s_LastClosedTime = System.DateTime.Now.Ticks / System.TimeSpan.TicksPerMillisecond; - if (s_CollabToolbarWindow) - { - s_ToolbarIsVisible = false; - NotifyVisibility(s_ToolbarIsVisible); - } - s_CollabToolbarWindow = null; - - base.OnDisable(); - } - - public new void OnDestroy() - { - OnLostFocus(); - base.OnDestroy(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Presenters/CollabHistoryPresenter.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Presenters/CollabHistoryPresenter.cs deleted file mode 100644 index 91d500b..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Presenters/CollabHistoryPresenter.cs +++ /dev/null @@ -1,228 +0,0 @@ -using System.Collections.Generic; -using UnityEditor.Connect; -using UnityEditor.Web; - -namespace UnityEditor.Collaboration -{ - internal class CollabHistoryPresenter - { - public const int ItemsPerPage = 5; - ICollabHistoryWindow m_Window; - ICollabHistoryItemFactory m_Factory; - IRevisionsService m_Service; - ConnectInfo m_ConnectState; - CollabInfo m_CollabState; - bool m_IsCollabError; - int m_TotalRevisions; - int m_CurrentPage; - int m_RequestedPage; - bool m_FetchInProgress; - - BuildAccess m_BuildAccess; - string m_ProgressRevision; - public bool BuildServiceEnabled {get; set; } - - public CollabHistoryPresenter(ICollabHistoryWindow window, ICollabHistoryItemFactory factory, IRevisionsService service) - { - m_Window = window; - m_Factory = factory; - m_Service = service; - m_CurrentPage = 0; - m_BuildAccess = new BuildAccess(); - m_Service.FetchRevisionsCallback += OnFetchRevisions; - } - - public void OnWindowEnabled() - { - UnityConnect.instance.StateChanged += OnConnectStateChanged; - Collab.instance.StateChanged += OnCollabStateChanged; - Collab.instance.RevisionUpdated += OnCollabRevisionUpdated; - Collab.instance.JobsCompleted += OnCollabJobsCompleted; - Collab.instance.ErrorOccurred += OnCollabError; - Collab.instance.ErrorCleared += OnCollabErrorCleared; - EditorApplication.playModeStateChanged += OnPlayModeStateChanged; - m_ConnectState = UnityConnect.instance.GetConnectInfo(); - m_CollabState = Collab.instance.GetCollabInfo(); - - m_Window.revisionActionsEnabled = !EditorApplication.isPlayingOrWillChangePlaymode; - - // Setup window callbacks - m_Window.OnPageChangeAction = OnUpdatePage; - m_Window.OnUpdateAction = OnUpdate; - m_Window.OnRestoreAction = OnRestore; - m_Window.OnGoBackAction = OnGoBack; - m_Window.OnShowBuildAction = ShowBuildForCommit; - m_Window.OnShowServicesAction = ShowServicePage; - m_Window.itemsPerPage = ItemsPerPage; - - // Initialize data - UpdateBuildServiceStatus(); - var state = RecalculateState(); - // Only try to load the page if we're ready - if (state == HistoryState.Ready) - OnUpdatePage(m_CurrentPage); - m_Window.UpdateState(state, true); - } - - public void OnWindowDisabled() - { - UnityConnect.instance.StateChanged -= OnConnectStateChanged; - Collab.instance.StateChanged -= OnCollabStateChanged; - Collab.instance.RevisionUpdated -= OnCollabRevisionUpdated; - Collab.instance.JobsCompleted -= OnCollabJobsCompleted; - EditorApplication.playModeStateChanged -= OnPlayModeStateChanged; - } - - private void OnConnectStateChanged(ConnectInfo state) - { - m_ConnectState = state; - - m_Window.UpdateState(RecalculateState(), false); - } - - private void OnCollabStateChanged(CollabInfo state) - { - // Sometimes a collab state change will trigger even though everything is the same - if (m_CollabState.Equals(state)) - return; - - if (m_CollabState.tip != state.tip) - OnUpdatePage(m_CurrentPage); - - m_CollabState = state; - m_Window.UpdateState(RecalculateState(), false); - if (state.inProgress) - { - m_Window.inProgressRevision = m_ProgressRevision; - } - else - { - m_Window.inProgressRevision = null; - } - } - - private void OnCollabRevisionUpdated(CollabInfo state) - { - OnUpdatePage(m_CurrentPage); - } - - private void OnCollabJobsCompleted(CollabInfo state) - { - m_ProgressRevision = null; - } - - private void OnCollabError() - { - m_IsCollabError = true; - m_Window.UpdateState(RecalculateState(), false); - } - - private void OnCollabErrorCleared() - { - m_IsCollabError = false; - m_FetchInProgress = true; - m_Service.GetRevisions(m_CurrentPage * ItemsPerPage, ItemsPerPage); - m_Window.UpdateState(RecalculateState(), false); - } - - private void OnPlayModeStateChanged(PlayModeStateChange stateChange) - { - // If entering play mode, disable - if (stateChange == PlayModeStateChange.ExitingEditMode || - stateChange == PlayModeStateChange.EnteredPlayMode) - { - m_Window.revisionActionsEnabled = false; - } - // If exiting play mode, enable! - else if (stateChange == PlayModeStateChange.EnteredEditMode || - stateChange == PlayModeStateChange.ExitingPlayMode) - { - m_Window.revisionActionsEnabled = true; - } - } - - private HistoryState RecalculateState() - { - if (!m_ConnectState.online) - return HistoryState.Offline; - if (m_ConnectState.maintenance || m_CollabState.maintenance) - return HistoryState.Maintenance; - if (!m_ConnectState.loggedIn) - return HistoryState.LoggedOut; - if (!m_CollabState.seat) - return HistoryState.NoSeat; - if (!Collab.instance.IsCollabEnabledForCurrentProject()) - return HistoryState.Disabled; - if (!Collab.instance.IsConnected() || !m_CollabState.ready || m_FetchInProgress) - return HistoryState.Waiting; - if (m_ConnectState.error || m_IsCollabError) - return HistoryState.Error; - - return HistoryState.Ready; - } - - // TODO: Eventually this can be a listener on the build service status - public void UpdateBuildServiceStatus() - { - foreach (var service in UnityConnectServiceCollection.instance.GetAllServiceInfos()) - { - if (service.name.Equals("Build")) - { - BuildServiceEnabled = service.enabled; - } - } - } - - public void ShowBuildForCommit(string revisionID) - { - m_BuildAccess.ShowBuildForCommit(revisionID); - } - - public void ShowServicePage() - { - m_BuildAccess.ShowServicePage(); - } - - public void OnUpdatePage(int page) - { - m_FetchInProgress = true; - m_Service.GetRevisions(page * ItemsPerPage, ItemsPerPage); - m_Window.UpdateState(RecalculateState(), false); - m_RequestedPage = page; - } - - private void OnFetchRevisions(RevisionsResult data) - { - m_FetchInProgress = false; - IEnumerable items = null; - if (data != null) - { - m_CurrentPage = m_RequestedPage; - m_TotalRevisions = data.RevisionsInRepo; - items = m_Factory.GenerateElements(data.Revisions, m_TotalRevisions, m_CurrentPage * ItemsPerPage, m_Service.tipRevision, m_Window.inProgressRevision, m_Window.revisionActionsEnabled, BuildServiceEnabled, m_Service.currentUser); - } - - // State must be recalculated prior to inserting items - m_Window.UpdateState(RecalculateState(), false); - m_Window.UpdateRevisions(items, m_Service.tipRevision, m_TotalRevisions, m_CurrentPage); - } - - private void OnRestore(string revisionId, bool updatetorevision) - { - m_ProgressRevision = revisionId; - Collab.instance.ResyncToRevision(revisionId); - } - - private void OnGoBack(string revisionId, bool updatetorevision) - { - m_ProgressRevision = revisionId; - Collab.instance.GoBackToRevision(revisionId, false); - } - - private void OnUpdate(string revisionId, bool updatetorevision) - { - m_ProgressRevision = revisionId; - Collab.instance.Update(revisionId, updatetorevision); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/BuildStatusButton.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/BuildStatusButton.cs deleted file mode 100644 index ac3754d..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/BuildStatusButton.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System; -using UnityEditor; -using UnityEditor.Collaboration; -using UnityEngine; - -#if UNITY_2019_1_OR_NEWER -using UnityEngine.UIElements; -#else -using UnityEngine.Experimental.UIElements; -#endif - -namespace UnityEditor.Collaboration -{ - internal class BuildStatusButton : Button - { - private readonly string iconPrefix = "Icons/Collab.Build"; - private readonly string iconSuffix = ".png"; - Label labelElement = new Label(); - Image iconElement = new Image() {name = "BuildIcon"}; - - public BuildStatusButton(Action clickEvent) : base(clickEvent) - { - iconElement.image = EditorGUIUtility.Load(iconPrefix + iconSuffix) as Texture; - labelElement.text = "Build Now"; - Add(iconElement); - Add(labelElement); - } - - public BuildStatusButton(Action clickEvent, BuildState state, int failures) : base(clickEvent) - { - switch (state) - { - case BuildState.InProgress: - iconElement.image = EditorGUIUtility.Load(iconPrefix + iconSuffix) as Texture; - labelElement.text = "In progress"; - break; - - case BuildState.Failed: - iconElement.image = EditorGUIUtility.Load(iconPrefix + "Failed" + iconSuffix) as Texture; - labelElement.text = failures + ((failures == 1) ? " failure" : " failures"); - break; - - case BuildState.Success: - iconElement.image = EditorGUIUtility.Load(iconPrefix + "Succeeded" + iconSuffix) as Texture; - labelElement.text = "success"; - break; - } - - Add(iconElement); - Add(labelElement); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/CollabHistoryDropDown.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/CollabHistoryDropDown.cs deleted file mode 100644 index e3bb05a..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/CollabHistoryDropDown.cs +++ /dev/null @@ -1,78 +0,0 @@ -using UnityEngine; -using System.Collections.Generic; -using UnityEditor.Connect; - -#if UNITY_2019_1_OR_NEWER -using UnityEngine.UIElements; -#else -using UnityEngine.Experimental.UIElements; -#endif - - -namespace UnityEditor.Collaboration -{ - internal class CollabHistoryDropDown : VisualElement - { - private readonly VisualElement m_FilesContainer; - private readonly Label m_ToggleLabel; - private int m_ChangesTotal; - private string m_RevisionId; - - public CollabHistoryDropDown(ICollection changes, int changesTotal, bool changesTruncated, string revisionId) - { - m_FilesContainer = new VisualElement(); - m_ChangesTotal = changesTotal; - m_RevisionId = revisionId; - - m_ToggleLabel = new Label(ToggleText(false)); - m_ToggleLabel.AddManipulator(new Clickable(ToggleDropdown)); - Add(m_ToggleLabel); - - foreach (ChangeData change in changes) - { - m_FilesContainer.Add(new CollabHistoryDropDownItem(change.path, change.action)); - } - - if (changesTruncated) - { - m_FilesContainer.Add(new Button(ShowAllClick) - { - text = "Show all on dashboard" - }); - } - } - - private void ToggleDropdown() - { - if (Contains(m_FilesContainer)) - { - CollabAnalytics.SendUserAction(CollabAnalytics.historyCategoryString, "CollapseAssets"); - Remove(m_FilesContainer); - m_ToggleLabel.text = ToggleText(false); - } - else - { - CollabAnalytics.SendUserAction(CollabAnalytics.historyCategoryString, "ExpandAssets"); - Add(m_FilesContainer); - m_ToggleLabel.text = ToggleText(true); - } - } - - private string ToggleText(bool open) - { - var icon = open ? "\u25bc" : "\u25b6"; - var change = m_ChangesTotal == 1 ? "Change" : "Changes"; - return string.Format("{0} {1} Asset {2}", icon, m_ChangesTotal, change); - } - - private void ShowAllClick() - { - var host = UnityConnect.instance.GetConfigurationURL(CloudConfigUrl.CloudServicesDashboard); - var org = UnityConnect.instance.GetOrganizationId(); - var proj = UnityConnect.instance.GetProjectGUID(); - var url = string.Format("{0}/collab/orgs/{1}/projects/{2}/commits?commit={3}", host, org, proj, m_RevisionId); - CollabAnalytics.SendUserAction(CollabAnalytics.historyCategoryString, "ShowAllOnDashboard"); - Application.OpenURL(url); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/CollabHistoryDropDownItem.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/CollabHistoryDropDownItem.cs deleted file mode 100644 index 3ad43f2..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/CollabHistoryDropDownItem.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using UnityEngine; - -#if UNITY_2019_1_OR_NEWER -using UnityEngine.UIElements; -#else -using UnityEngine.Experimental.UIElements; -#endif - - -namespace UnityEditor.Collaboration -{ - internal class CollabHistoryDropDownItem : VisualElement - { - public CollabHistoryDropDownItem(string path, string action) - { - var fileName = Path.GetFileName(path); - var isFolder = Path.GetFileNameWithoutExtension(path).Equals(fileName); - var fileIcon = GetIconElement(action, fileName, isFolder); - var metaContainer = new VisualElement(); - var fileNameLabel = new Label - { - name = "FileName", - text = fileName - }; - var filePathLabel = new Label - { - name = "FilePath", - text = path - }; - metaContainer.Add(fileNameLabel); - metaContainer.Add(filePathLabel); - Add(fileIcon); - Add(metaContainer); - } - - private Image GetIconElement(string action, string fileName, bool isFolder) - { - var prefix = isFolder ? "Folder" : "File"; - var actionName = action.First().ToString().ToUpper() + action.Substring(1); - // Use the same icon for renamed and moved files - actionName = actionName.Equals("Renamed") ? "Moved" : actionName; - var iconElement = new Image - { - name = "FileIcon", - image = EditorGUIUtility.LoadIcon("Icons/Collab." + prefix + actionName + ".png") - }; - return iconElement; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/CollabHistoryItem.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/CollabHistoryItem.cs deleted file mode 100644 index 24e5d1d..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/CollabHistoryItem.cs +++ /dev/null @@ -1,229 +0,0 @@ -using System; -using System.Linq; -using System.Security.Cryptography; -using UnityEditor.Connect; -using UnityEditor.Web; -using UnityEngine; - -#if UNITY_2019_1_OR_NEWER -using UnityEngine.UIElements; -#else -using UnityEngine.Experimental.UIElements; -using UnityEngine.Experimental.UIElements.StyleEnums; -#endif - -namespace UnityEditor.Collaboration -{ - internal class CollabHistoryItem : VisualElement - { - public static RevisionAction s_OnRestore; - public static RevisionAction s_OnGoBack; - public static RevisionAction s_OnUpdate; - public static ShowBuildAction s_OnShowBuild; - public static Action s_OnShowServices; - - private readonly string m_RevisionId; - private readonly string m_FullDescription; - private readonly DateTime m_TimeStamp; - private readonly Button m_Button; - private readonly HistoryProgressSpinner m_ProgressSpinner; - private VisualElement m_ActionsTray; - private VisualElement m_Details; - private Label m_Description; - private Label m_TimeAgo; - private readonly Button m_ExpandCollapseButton; - private bool m_Expanded; - - private const int kMaxDescriptionChars = 500; - - public bool RevisionActionsEnabled - { - set - { - m_Button.SetEnabled(value); - } - } - - public DateTime timeStamp - { - get { return m_TimeStamp; } - } - - public CollabHistoryItem(RevisionData data) - { - m_RevisionId = data.id; - m_TimeStamp = data.timeStamp; - name = "HistoryItem"; - m_ActionsTray = new VisualElement {name = "HistoryItemActionsTray"}; - m_ProgressSpinner = new HistoryProgressSpinner(); - m_Details = new VisualElement {name = "HistoryDetail"}; - var author = new Label(data.authorName) {name = "Author"}; - m_TimeAgo = new Label(TimeAgo.GetString(m_TimeStamp)); - m_FullDescription = data.comment; - var shouldTruncate = ShouldTruncateDescription(m_FullDescription); - if (shouldTruncate) - { - m_Description = new Label(GetTruncatedDescription(m_FullDescription)); - } - else - { - m_Description = new Label(m_FullDescription); - } - m_Description.name = "RevisionDescription"; - var dropdown = new CollabHistoryDropDown(data.changes, data.changesTotal, data.changesTruncated, data.id); - if (data.current) - { - m_Button = new Button(Restore) {name = "ActionButton", text = "Restore"}; - } - else if (data.obtained) - { - m_Button = new Button(GoBackTo) {name = "ActionButton", text = "Go back to..."}; - } - else - { - m_Button = new Button(UpdateTo) {name = "ActionButton", text = "Update"}; - } - m_Button.SetEnabled(data.enabled); - m_ProgressSpinner.ProgressEnabled = data.inProgress; - - m_ActionsTray.Add(m_ProgressSpinner); - m_ActionsTray.Add(m_Button); - - m_Details.Add(author); - m_Details.Add(m_TimeAgo); - m_Details.Add(m_Description); - - if (shouldTruncate) - { - m_ExpandCollapseButton = new Button(ToggleDescription) { name = "ToggleDescription", text = "Show More" }; - m_Details.Add(m_ExpandCollapseButton); - } - - if (data.buildState != BuildState.None) - { - BuildStatusButton buildButton; - if (data.buildState == BuildState.Configure) - buildButton = new BuildStatusButton(ShowServicePage); - else - buildButton = new BuildStatusButton(ShowBuildForCommit, data.buildState, data.buildFailures); - - m_Details.Add(buildButton); - } - - m_Details.Add(m_ActionsTray); - m_Details.Add(dropdown); - - Add(m_Details); - - this.schedule.Execute(UpdateTimeAgo).Every(1000 * 20); - } - - public static void SetUpCallbacks(RevisionAction Restore, RevisionAction GoBack, RevisionAction Update) - { - s_OnRestore = Restore; - s_OnGoBack = GoBack; - s_OnUpdate = Update; - } - - public void SetInProgressStatus(string revisionIdInProgress) - { - if (String.IsNullOrEmpty(revisionIdInProgress)) - { - m_Button.SetEnabled(true); - m_ProgressSpinner.ProgressEnabled = false; - } - else - { - m_Button.SetEnabled(false); - if (m_RevisionId.Equals(revisionIdInProgress)) - { - m_ProgressSpinner.ProgressEnabled = true; - } - } - } - - void ShowBuildForCommit() - { - CollabAnalytics.SendUserAction(CollabAnalytics.historyCategoryString, "ShowBuild"); - if (s_OnShowBuild != null) - { - s_OnShowBuild(m_RevisionId); - } - } - - void ShowServicePage() - { - CollabAnalytics.SendUserAction(CollabAnalytics.historyCategoryString, "ShowServices"); - if (s_OnShowServices != null) - { - s_OnShowServices(); - } - } - - void Restore() - { - CollabAnalytics.SendUserAction(CollabAnalytics.historyCategoryString, "Restore"); - if (s_OnRestore != null) - { - s_OnRestore(m_RevisionId, false); - } - } - - void GoBackTo() - { - CollabAnalytics.SendUserAction(CollabAnalytics.historyCategoryString, "GoBackTo"); - if (s_OnGoBack != null) - { - s_OnGoBack(m_RevisionId, false); - } - } - - void UpdateTo() - { - CollabAnalytics.SendUserAction(CollabAnalytics.historyCategoryString, "Update"); - if (s_OnUpdate != null) - { - s_OnUpdate(m_RevisionId, true); - } - } - - void UpdateTimeAgo() - { - m_TimeAgo.text = TimeAgo.GetString(m_TimeStamp); - } - - bool ShouldTruncateDescription(string description) - { - return description.Contains(Environment.NewLine) || description.Length > kMaxDescriptionChars; - } - - string GetTruncatedDescription(string description) - { - string result = description.Contains(Environment.NewLine) ? - description.Substring(0, description.IndexOf(Environment.NewLine)) : description; - if (result.Length > kMaxDescriptionChars) - { - result = result.Substring(0, kMaxDescriptionChars) + "..."; - } - return result; - } - - void ToggleDescription() - { - if (m_Expanded) - { - CollabAnalytics.SendUserAction(CollabAnalytics.historyCategoryString, "CollapseDescription"); - m_Expanded = false; - m_ExpandCollapseButton.text = "Show More"; - m_Description.text = GetTruncatedDescription(m_FullDescription); - } - else - { - CollabAnalytics.SendUserAction(CollabAnalytics.historyCategoryString, "ExpandDescription"); - m_Expanded = true; - m_ExpandCollapseButton.text = "Show Less"; - m_Description.text = m_FullDescription; - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/CollabHistoryItemFactory.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/CollabHistoryItemFactory.cs deleted file mode 100644 index e7d7aa6..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/CollabHistoryItemFactory.cs +++ /dev/null @@ -1,121 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using UnityEditor.Collaboration; -using UnityEngine; - -#if UNITY_2019_1_OR_NEWER -using UnityEngine.UIElements; -#else -using UnityEngine.Experimental.UIElements; -using UnityEngine.Experimental.UIElements.StyleEnums; -#endif - - -namespace UnityEditor.Collaboration -{ - internal class CollabHistoryItemFactory : ICollabHistoryItemFactory - { - const int k_MaxChangesPerRevision = 10; - - public IEnumerable GenerateElements(IEnumerable revisions, int totalRevisions, int startIndex, string tipRev, string inProgressRevision, bool revisionActionsEnabled, bool buildServiceEnabled, string currentUser) - { - int index = startIndex; - - foreach (var rev in revisions) - { - index++; - var current = rev.revisionID == tipRev; - - // Calculate build status - BuildState buildState = BuildState.None; - int buildFailures = 0; - if (rev.buildStatuses != null && rev.buildStatuses.Length > 0) - { - bool inProgress = false; - foreach (CloudBuildStatus buildStatus in rev.buildStatuses) - { - if (buildStatus.complete) - { - if (!buildStatus.success) - { - buildFailures++; - } - } - else - { - inProgress = true; - break; - } - } - - if (inProgress) - { - buildState = BuildState.InProgress; - } - else if (buildFailures > 0) - { - buildState = BuildState.Failed; - } - else - { - buildState = BuildState.Success; - } - } - else if (current && !buildServiceEnabled) - { - buildState = BuildState.Configure; - } - - // Calculate the number of changes performed on files and folders (not meta files) - var paths = new Dictionary(); - foreach (ChangeAction change in rev.entries) - { - if (change.path.EndsWith(".meta")) - { - var path = change.path.Substring(0, change.path.Length - 5); - // Actions taken on meta files are secondary to any actions taken on the main file - if (!paths.ContainsKey(path)) - paths[path] = new ChangeData() {path = path, action = change.action}; - } - else - { - paths[change.path] = new ChangeData() {path = change.path, action = change.action}; - } - } - - var displayName = (rev.author != currentUser) ? rev.authorName : "You"; - - var item = new RevisionData - { - id = rev.revisionID, - index = totalRevisions - index + 1, - timeStamp = TimeStampToDateTime(rev.timeStamp), - authorName = displayName, - comment = rev.comment, - - obtained = rev.isObtained, - current = current, - inProgress = (rev.revisionID == inProgressRevision), - enabled = revisionActionsEnabled, - - buildState = buildState, - buildFailures = buildFailures, - - changes = paths.Values.Take(k_MaxChangesPerRevision).ToList(), - changesTotal = paths.Values.Count, - changesTruncated = paths.Values.Count > k_MaxChangesPerRevision, - }; - - yield return item; - } - } - - private static DateTime TimeStampToDateTime(double timeStamp) - { - DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); - dateTime = dateTime.AddSeconds(timeStamp).ToLocalTime(); - return dateTime; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/CollabHistoryRevisionLine.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/CollabHistoryRevisionLine.cs deleted file mode 100644 index 2b8fe65..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/CollabHistoryRevisionLine.cs +++ /dev/null @@ -1,94 +0,0 @@ -using System; -using UnityEditor; -using UnityEditor.Collaboration; -using UnityEngine; - -#if UNITY_2019_1_OR_NEWER -using UnityEngine.UIElements; -#else -using UnityEngine.Experimental.UIElements; -#endif - -namespace UnityEditor.Collaboration -{ - internal class CollabHistoryRevisionLine : VisualElement - { - public CollabHistoryRevisionLine(int number) - { - AddNumber(number); - AddLine("topLine"); - AddLine("bottomLine"); - AddIndicator(); - } - - public CollabHistoryRevisionLine(DateTime date, bool isFullDateObtained) - { - AddLine(isFullDateObtained ? "obtainedDateLine" : "absentDateLine"); - AddHeader(GetFormattedHeader(date)); - AddToClassList("revisionLineHeader"); - } - - private void AddHeader(string content) - { - Add(new Label - { - text = content - }); - } - - private void AddIndicator() - { - Add(new VisualElement - { - name = "RevisionIndicator" - }); - } - - private void AddLine(string className = null) - { - var line = new VisualElement - { - name = "RevisionLine" - }; - if (!String.IsNullOrEmpty(className)) - { - line.AddToClassList(className); - } - Add(line); - } - - private void AddNumber(int number) - { - Add(new Label - { - text = number.ToString(), - name = "RevisionIndex" - }); - } - - private string GetFormattedHeader(DateTime date) - { - string result = "Commits on " + date.ToString("MMM d"); - switch (date.Day) - { - case 1: - case 21: - case 31: - result += "st"; - break; - case 2: - case 22: - result += "nd"; - break; - case 3: - case 23: - result += "rd"; - break; - default: - result += "th"; - break; - } - return result; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/HistoryProgressSpinner.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/HistoryProgressSpinner.cs deleted file mode 100644 index fad3b82..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/HistoryProgressSpinner.cs +++ /dev/null @@ -1,69 +0,0 @@ -using UnityEngine; - -#if UNITY_2019_1_OR_NEWER -using UnityEngine.UIElements; -#else -using UnityEngine.Experimental.UIElements; -#endif - -namespace UnityEditor.Collaboration -{ - internal class HistoryProgressSpinner : Image - { - private readonly Texture2D[] m_StatusWheelTextures; - private bool m_ProgressEnabled; - private IVisualElementScheduledItem m_Animation; - - public bool ProgressEnabled - { - set - { - if (m_ProgressEnabled == value) - return; - - m_ProgressEnabled = value; - visible = value; - - - if (value) - { - if (m_Animation == null) - { - m_Animation = this.schedule.Execute(AnimateProgress).Every(33); - } - else - { - m_Animation.Resume(); - } - } - else - { - if (m_Animation != null) - { - m_Animation.Pause(); - } - } - } - } - - public HistoryProgressSpinner() - { - m_StatusWheelTextures = new Texture2D[12]; - for (int i = 0; i < 12; i++) - { - m_StatusWheelTextures[i] = EditorGUIUtility.LoadIcon("WaitSpin" + i.ToString("00")); - } - image = m_StatusWheelTextures[0]; - style.width = m_StatusWheelTextures[0].width; - style.height = m_StatusWheelTextures[0].height; - visible = false; - } - - private void AnimateProgress(TimerState obj) - { - int frame = (int)Mathf.Repeat(Time.realtimeSinceStartup * 10, 11.99f); - image = m_StatusWheelTextures[frame]; - MarkDirtyRepaint(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/ICollabHistoryItemFactory.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/ICollabHistoryItemFactory.cs deleted file mode 100644 index 03239a3..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/ICollabHistoryItemFactory.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using UnityEditor.Collaboration; - -#if UNITY_2019_1_OR_NEWER -using UnityEngine.UIElements; -#else -using UnityEngine.Experimental.UIElements; -#endif - -namespace UnityEditor.Collaboration -{ - internal interface ICollabHistoryItemFactory - { - IEnumerable GenerateElements(IEnumerable revsRevisions, int mTotalRevisions, int startIndex, string tipRev, string inProgressRevision, bool revisionActionsEnabled, bool buildServiceEnabled, string currentUser); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/PagedListView.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/PagedListView.cs deleted file mode 100644 index 472a70e..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/PagedListView.cs +++ /dev/null @@ -1,192 +0,0 @@ -using System; -using System.Collections.Generic; - -#if UNITY_2019_1_OR_NEWER -using UnityEngine.UIElements; -#else -using UnityEngine.Experimental.UIElements; -using UnityEngine.Experimental.UIElements.StyleEnums; -#endif - -namespace UnityEditor.Collaboration -{ - internal interface IPagerData - { - int curPage { get; } - int totalPages { get; } - PageChangeAction OnPageChanged { get; } - } - - internal class PagerElement : VisualElement - { - IPagerData m_Data; - readonly Label m_PageText; - readonly Button m_DownButton; - readonly Button m_UpButton; - - public PagerElement(IPagerData dataSource) - { - m_Data = dataSource; - - this.style.flexDirection = FlexDirection.Row; - this.style.alignSelf = Align.Center; - - Add(m_DownButton = new Button(OnPageDownClicked) {text = "\u25c5 Newer"}); - m_DownButton.AddToClassList("PagerDown"); - - m_PageText = new Label(); - m_PageText.AddToClassList("PagerLabel"); - Add(m_PageText); - - Add(m_UpButton = new Button(OnPageUpClicked) {text = "Older \u25bb"}); - m_UpButton.AddToClassList("PagerUp"); - - UpdateControls(); - } - - void OnPageDownClicked() - { - CollabAnalytics.SendUserAction(CollabAnalytics.historyCategoryString, "NewerPage"); - m_Data.OnPageChanged(m_Data.curPage - 1); - } - - void OnPageUpClicked() - { - CollabAnalytics.SendUserAction(CollabAnalytics.historyCategoryString, "OlderPage"); - m_Data.OnPageChanged(m_Data.curPage + 1); - } - - public void Refresh() - { - UpdateControls(); - } - - void UpdateControls() - { - var curPage = m_Data.curPage; - var totalPages = m_Data.totalPages; - - m_PageText.text = (curPage + 1) + " / " + totalPages; - m_DownButton.SetEnabled(curPage > 0); - m_UpButton.SetEnabled(curPage < totalPages - 1); - } - } - - internal enum PagerLocation - { - Top, - Bottom, - } - - internal class PagedListView : VisualElement, IPagerData - { - public const int DefaultItemsPerPage = 10; - - readonly VisualElement m_ItemContainer; - readonly PagerElement m_PagerTop, m_PagerBottom; - int m_PageSize = DefaultItemsPerPage; - IEnumerable m_Items; - int m_TotalItems; - int m_CurPage; - - public int pageSize - { - set { m_PageSize = value; } - } - - public IEnumerable items - { - set - { - m_Items = value; - LayoutItems(); - } - } - - public int totalItems - { - set - { - if (m_TotalItems == value) - return; - - m_TotalItems = value; - UpdatePager(); - } - } - - public PageChangeAction OnPageChanged { get; set; } - - public PagedListView() - { - m_PagerTop = new PagerElement(this); - - m_ItemContainer = new VisualElement() - { - name = "PagerItems", - }; - Add(m_ItemContainer); - m_Items = new List(); - - m_PagerBottom = new PagerElement(this); - } - - void LayoutItems() - { - m_ItemContainer.Clear(); - foreach (var item in m_Items) - { - m_ItemContainer.Add(item); - } - } - - void UpdatePager() - { - if (m_PagerTop.parent != this && totalPages > 1 && curPage > 0) - Insert(0, m_PagerTop); - if (m_PagerTop.parent == this && (totalPages <= 1 || curPage == 0)) - Remove(m_PagerTop); - - if (m_PagerBottom.parent != this && totalPages > 1) - Add(m_PagerBottom); - if (m_PagerBottom.parent == this && totalPages <= 1) - Remove(m_PagerBottom); - - m_PagerTop.Refresh(); - m_PagerBottom.Refresh(); - } - - int pageCount - { - get - { - var pages = m_TotalItems / m_PageSize; - if (m_TotalItems % m_PageSize > 0) - pages++; - - return pages; - } - } - - public int curPage - { - get { return m_CurPage; } - set - { - m_CurPage = value; - UpdatePager(); - } - } - - public int totalPages - { - get - { - var extraPage = 0; - if (m_TotalItems % m_PageSize > 0) - extraPage = 1; - return m_TotalItems / m_PageSize + extraPage; - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/StatusView.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/StatusView.cs deleted file mode 100644 index 9b50e7a..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Collab/Views/StatusView.cs +++ /dev/null @@ -1,88 +0,0 @@ -using System; -using UnityEditor; -using UnityEngine; - -#if UNITY_2019_1_OR_NEWER -using UnityEngine.UIElements; -#else -using UnityEngine.Experimental.UIElements; -using UnityEngine.Experimental.UIElements.StyleEnums; -#endif - -namespace UnityEditor.Collaboration -{ - internal class StatusView : VisualElement - { - Image m_Image; - Label m_Message; - Button m_Button; - Action m_Callback; - - public Texture icon - { - get { return m_Image.image; } - set - { - m_Image.image = value; - m_Image.visible = value != null; - // Until "display: hidden" is added, this is the only way to hide an element - m_Image.style.height = value != null ? 150 : 0; - } - } - - public string message - { - get { return m_Message.text; } - set - { - m_Message.text = value; - m_Message.visible = value != null; - } - } - - public string buttonText - { - get { return m_Button.text; } - set - { - m_Button.text = value; - UpdateButton(); - } - } - - public Action callback - { - get { return m_Callback; } - set - { - m_Callback = value; - UpdateButton(); - } - } - - public StatusView() - { - name = "StatusView"; - - this.StretchToParentSize(); - - m_Image = new Image() { name = "StatusIcon", visible = false, style = { height = 0f }}; - m_Message = new Label() { name = "StatusMessage", visible = false}; - m_Button = new Button(InternalCallaback) { name = "StatusButton", visible = false}; - - Add(m_Image); - Add(m_Message); - Add(m_Button); - } - - private void UpdateButton() - { - m_Button.visible = m_Button.text != null && m_Callback != null; - } - - private void InternalCallaback() - { - m_Callback(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Resources/Styles/CollabHistoryCommon.uss b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Resources/Styles/CollabHistoryCommon.uss deleted file mode 100644 index b20f08e..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Resources/Styles/CollabHistoryCommon.uss +++ /dev/null @@ -1,259 +0,0 @@ -.unity-button { - min-height:0; - -unity-text-align:middle-center; - margin-left:4px; - margin-top:3px; - margin-right:4px; - margin-bottom:3px; - border-left-width:6px; - border-top-width:4px; - border-right-width:6px; - border-bottom-width:4px; - padding-left:6px; - padding-top:2px; - padding-right:6px; - padding-bottom:3px; -} - -.unity-label { - overflow: hidden; - margin-left:4px; - margin-top:2px; - margin-right:4px; - margin-bottom:2px; - padding-left:2px; - padding-top:1px; - min-height: 0; -} - -#HistoryContainer { - flex: 1 0 0; -} - -#HistoryItem { - flex: 1 0 0; - flex-direction: row; -} - -#HistoryDetail { - margin-top: 10px; - margin-left: 10px; - margin-bottom: 10px; - margin-right: 10px; - padding-top: 4px; - flex: 1 0 0; -} - -#Author { - -unity-font-style: bold; - font-size: 12px; -} - -#HistoryDetail > Button { - align-self: flex-end; -} - -CollabHistoryRevisionLine { - width: 40px; -} - -#RevisionLine { - flex: 1 0 0; - margin-left: 35px; - width: 1.5px; -} - -#RevisionLine.topLine { - height: 20px; - flex: 0 0 auto; -} - -#RevisionLine.absentDateLine { - background-color: #797676; -} - -.absentRevision #RevisionLine { - background-color: #797676; -} - -.currentRevision #RevisionLine.topLine { - background-color: #797676; -} - -#RevisionIndex { - position: absolute; - min-width: 23px; - -unity-text-align: middle-right; - top: 15.8px; - font-size: 9px; -} - -#RevisionIndicator { - position: absolute; - background-color: #000; - border-radius: 3px; - width: 8px; - height: 8px; - border-bottom-width: 2px; - border-left-width: 2px; - border-right-width: 2px; - border-top-width: 2px; - top: 20px; - left: 32px; -} - -.revisionLineHeader { - width: 200px; - height: 20px; -} - -.revisionLineHeader > .unity-label { - position: absolute; - margin-left: 47px; - margin-top: 3px; -} - -#PagerItems { - flex-direction: column; -} - -PagerElement > .unity-label { - margin-top: 8px; -} - -.absentRevision #RevisionIndicator { - border-color: #797676; -} - -.absentRevision #RevisionIndex { - color: #797676; -} - -.currentRevision #HistoryDetail { - border-top-width: 2px; -} - -#HistoryItem #RevisionDescription { - white-space: normal; -} - -#HistoryItem #ToggleDescription { - align-self: flex-start; - padding-top: 0; - padding-left: 0; - padding-right: 0; - padding-bottom: 2px; -} - -#HistoryItem #ActionButton { - position: absolute; - right: 0; -} - -#HistoryItem #BuildIcon { - width: 16px; - height: 13px; -} - -#HistoryItemActionsTray { - flex: 1 0 0; - flex-direction: row; - align-items: center; - height: 38px; - margin-left: 10px; - margin-right: 10px; -} - -CollabHistoryDropDown { - border-top-width: 1px; -} - -CollabHistoryDropDown > .unity-label { - padding-top: 10px; - padding-bottom: 10px; -} - -CollabHistoryDropDownItem { - flex-direction: row; - border-top-width: 1px; - overflow: hidden; -} - -#FileIcon { - align-self: center; - width: 26px; - height: 26px; -} - -#FileName { - -unity-font-style: bold; - padding-bottom: 0; - margin-bottom: 0; -} - -#FileIcon { - padding-top: 0; - margin-top: 0; -} - -#ErrorBar { - height: 24px; - background-color: #ff0000; - color: #000; - font-size: 12px; -} - -#ErrorBar > #CloseButton { - position: absolute; - right: 0; - top: 0; - width: 24px; - height: 24px; - color: #000; - font-size: 18px; - -unity-font-style: bold; -} - -#StatusView { - flex-direction: column; - justify-content: center; - align-self: center; - align-items: center; - flex: 1 0 0; -} - -#StatusView > #StatusIcon { - width: 115px; - height: 150px; -} - -#StatusView > #StatusMessage { - font-size: 22px; - width: 230px; - white-space: normal; - -unity-text-align: middle-center; -} - -#StatusView > #StatusButton { - font-size: 12px; - margin-top: 20px; - background-image: none; - width: 108px; - height: 29px; -} - -BuildStatusButton.unity-button { - flex-direction: row; - align-self: flex-end; - align-items: center; - margin-right: 10px; - padding-left:0; - padding-top:0; - padding-right:0; - padding-bottom:0; -} - -BuildStatusButton.unity-button .unity-label { - padding-left: 2px; -} - diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Resources/Styles/CollabHistoryDark.uss b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Resources/Styles/CollabHistoryDark.uss deleted file mode 100644 index de436f8..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Resources/Styles/CollabHistoryDark.uss +++ /dev/null @@ -1,86 +0,0 @@ -#HistoryContainer { - background-color: #292929; -} - -.obtainedRevision #HistoryDetail { - background-color: #333; -} - -.absentRevision #HistoryDetail { - background-color: #595959; -} - -#StatusView { - background-color: #292929; -} - -#StatusView > #StatusMessage { - color: #959995; -} - -BuildStatusButton.unity-button { - color: #B4B4B4; - background-image: resource("Builtin Skins/DarkSkin/Images/btn.png"); -} - -BuildStatusButton.unity-button:hover { - color: #FFF; -} - -BuildStatusButton.unity-button:hover:active { - background-image: resource("Builtin Skins/DarkSkin/Images/btn act.png"); -} - -BuildStatusButton.unity-button:checked { - color: #F0F0F0; - background-image: resource("Builtin Skins/DarkSkin/Images/btn on.png"); -} - -BuildStatusButton.unity-button:hover:checked { - color: #FFF; -} - -BuildStatusButton.unity-button:hover:active:checked { - background-image: resource("Builtin Skins/DarkSkin/Images/btn onact.png"); -} - -BuildStatusButton.unity-button:focus:checked { - background-image: resource("Builtin Skins/DarkSkin/Images/btn on focus.png"); -} - -CollabHistoryDropDown { - border-color: #292929; -} - -CollabHistoryDropDownItem { - border-color: #292929; -} - -#RevisionLine.obtainedDateLine { - background-color: #0cb4cc; -} - -.obtainedRevision #RevisionLine { - background-color: #0cb4cc; -} - -#RevisionIndex { - color: #0cb4cc; -} - -#RevisionIndicator { - border-color: #0cb4cc; -} - -.currentRevision #RevisionIndicator { - background-color: #0cb4cc; -} - -.currentRevision #HistoryDetail { - border-color: #0cb4cc; -} - -#StatusView > #StatusButton { - background-color: #0cb4cc; - border-color: #0cb4cc; -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Resources/Styles/CollabHistoryLight.uss b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Resources/Styles/CollabHistoryLight.uss deleted file mode 100644 index 3f9b85f..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Resources/Styles/CollabHistoryLight.uss +++ /dev/null @@ -1,86 +0,0 @@ -#HistoryContainer { - background-color: #a2a2a2; -} - -.obtainedRevision #HistoryDetail { - background-color: #c2c2c2; -} - -.absentRevision #HistoryDetail { - background-color: #dedede; -} - -#StatusView { - background-color: #a2a2a3; -} - -#StatusView > #StatusMessage { - color: #000; -} - -BuildStatusButton.unity-button { - color: #111; - background-image: resource("Builtin Skins/LightSkin/Images/btn.png"); -} - -BuildStatusButton.unity-button:hover { - color: #000; -} - -BuildStatusButton.unity-button:hover:active { - background-image: resource("Builtin Skins/LightSkin/Images/btn act.png"); -} - -BuildStatusButton.unity-button:checked { - color: #F0F0F0; - background-image: resource("Builtin Skins/LightSkin/Images/btn on.png"); -} - -BuildStatusButton.unity-button:hover:checked { - color: #000; -} - -BuildStatusButton.unity-button:hover:active:checked { - background-image: resource("Builtin Skins/LightSkin/Images/btn onact.png"); -} - -BuildStatusButton.unity-button:focus:checked { - background-image: resource("Builtin Skins/LightSkin/Images/btn on focus.png"); -} - -CollabHistoryDropDown { - border-color: #a2a2a2; -} - -CollabHistoryDropDownItem { - border-color: #a2a2a2; -} - -#RevisionLine.obtainedDateLine { - background-color: #018d98; -} - -.obtainedRevision #RevisionLine { - background-color: #018d98; -} - -#RevisionIndex { - color: #018d98; -} - -#RevisionIndicator { - border-color: #018d98; -} - -.currentRevision #RevisionIndicator { - background-color: #018d98; -} - -.currentRevision #HistoryDetail { - border-color: #018d98; -} - -#StatusView > #StatusButton { - background-color: #018d98; - border-color: #018d98; -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Unity.CollabProxy.Editor.asmdef b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Unity.CollabProxy.Editor.asmdef deleted file mode 100644 index 66511e1..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Editor/Unity.CollabProxy.Editor.asmdef +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "Unity.CollabProxy.Editor", - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [] -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/LICENSE.md b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/LICENSE.md deleted file mode 100644 index 31bde4e..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/LICENSE.md +++ /dev/null @@ -1,31 +0,0 @@ -**Unity Companion Package License v1.0 ("_License_")** - -Copyright © 2017 Unity Technologies ApS ("**_Unity_**") - -Unity hereby grants to you a worldwide, non-exclusive, no-charge, and royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute the software that is made available with this License ("**_Software_**"), subject to the following terms and conditions: - -1. *Unity Companion Use Only*. Exercise of the license granted herein is limited to exercise for the creation, use, and/or distribution of applications, software, or other content pursuant to a valid Unity development engine software license ("**_Engine License_**"). That means while use of the Software is not limited to use in the software licensed under the Engine License, the Software may not be used for any purpose other than the creation, use, and/or distribution of Engine License-dependent applications, software, or other content. No other exercise of the license granted herein is permitted. - -1. *No Modification of Engine License*. Neither this License nor any exercise of the license granted herein modifies the Engine License in any way. - -1. *Ownership & Grant Back to You*. - - 3.1. You own your content. In this License, "derivative works" means derivatives of the Software itself--works derived only from the Software by you under this License (for example, modifying the code of the Software itself to improve its efficacy); “derivative works” of the Software do not include, for example, games, apps, or content that you create using the Software. You keep all right, title, and interest to your own content. - - 3.2. Unity owns its content. While you keep all right, title, and interest to your own content per the above, as between Unity and you, Unity will own all right, title, and interest to all intellectual property rights (including patent, trademark, and copyright) in the Software and derivative works of the Software, and you hereby assign and agree to assign all such rights in those derivative works to Unity. - - 3.3. You have a license to those derivative works. Subject to this License, Unity grants to you the same worldwide, non-exclusive, no-charge, and royalty-free copyright license to derivative works of the Software you create as is granted to you for the Software under this License. - -1. *Trademarks*. You are not granted any right or license under this License to use any trademarks, service marks, trade names, products names, or branding of Unity or its affiliates ("**_Trademarks_**"). Descriptive uses of Trademarks are permitted; see, for example, Unity’s Branding Usage Guidelines at [https://unity3d.com/public-relations/brand](https://unity3d.com/public-relations/brand). - -1. *Notices & Third-Party Rights*. This License, including the copyright notice above, must be provided in all substantial portions of the Software and derivative works thereof (or, if that is impracticable, in any other location where such notices are customarily placed). Further, if the Software is accompanied by a Unity "third-party notices" or similar file, you acknowledge and agree that software identified in that file is governed by those separate license terms. - -1. *DISCLAIMER, LIMITATION OF LIABILITY*. THE SOFTWARE AND ANY DERIVATIVE WORKS THEREOF IS PROVIDED ON AN "AS IS" BASIS, AND IS PROVIDED WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND/OR NONINFRINGEMENT. IN NO EVENT SHALL ANY COPYRIGHT HOLDER OR AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES (WHETHER DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL, INCLUDING PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, LOSS OF USE, DATA, OR PROFITS, AND BUSINESS INTERRUPTION), OR OTHER LIABILITY WHATSOEVER, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM OR OUT OF, OR IN CONNECTION WITH, THE SOFTWARE OR ANY DERIVATIVE WORKS THEREOF OR THE USE OF OR OTHER DEALINGS IN SAME, EVEN WHERE ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -1. *USE IS ACCEPTANCE and License Versions*. Your receipt and use of the Software constitutes your acceptance of this License and its terms and conditions. Software released by Unity under this License may be modified or updated and the License with it; upon any such modification or update, you will comply with the terms of the updated License for any use of any of the Software under the updated License. - -1. *Use in Compliance with Law and Termination*. Your exercise of the license granted herein will at all times be in compliance with applicable law and will not infringe any proprietary rights (including intellectual property rights); this License will terminate immediately on any breach by you of this License. - -1. *Severability*. If any provision of this License is held to be unenforceable or invalid, that provision will be enforced to the maximum extent possible and the other provisions will remain in full force and effect. - -1. *Governing Law and Venue*. This License is governed by and construed in accordance with the laws of Denmark, except for its conflict of laws rules; the United Nations Convention on Contracts for the International Sale of Goods will not apply. If you reside (or your principal place of business is) within the United States, you and Unity agree to submit to the personal and exclusive jurisdiction of and venue in the state and federal courts located in San Francisco County, California concerning any dispute arising out of this License ("**_Dispute_**"). If you reside (or your principal place of business is) outside the United States, you and Unity agree to submit to the personal and exclusive jurisdiction of and venue in the courts located in Copenhagen, Denmark concerning any Dispute. diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/README.md b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/README.md deleted file mode 100644 index 5cfbd88..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Collab Proxy UPM Package -This is the packaged version of Collab, currently limited to containing the History and Toolbar windows, along with supporting classes. - -## Development -Check this repository out in your {$PROJECT}/Packages/ folder, under the name com.unity.collab-proxy. The classes will be built by Unity. - -## Testing -In order to run the tests, you will need to add this project to the testables key in your manifest.json - once you have done this, the tests will be picked up by the Unity Test Runner window. - -## Building -You may build this project using msbuild. The commands to do so can be seen under .gitlab-ci.yml. - -## Deploying -Gitlab will automatically build your project when you deploy. You can download the resulting artifact, which will be a dll, and place it in your Editor/bin/ folder. Open the package in Unity to generate the meta files, and then you will be able to publish. - -We're currently looking into a way to avoid this manual process. diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Tests/Editor/HistoryTests.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Tests/Editor/HistoryTests.cs deleted file mode 100644 index ba79a20..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Tests/Editor/HistoryTests.cs +++ /dev/null @@ -1,583 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using UnityEngine; -using UnityEditor.Collaboration; -using UnityEngine.TestTools; -using NUnit.Framework; - -namespace UnityEditor.Collaboration.Tests -{ - [TestFixture] - internal class HistoryTests - { - private TestHistoryWindow _window; - private TestRevisionsService _service; - private CollabHistoryPresenter _presenter; - - [SetUp] - public void SetUp() - { - _window = new TestHistoryWindow(); - _service = new TestRevisionsService(); - _presenter = new CollabHistoryPresenter(_window, new CollabHistoryItemFactory(), _service); - } - - [TearDown] - public void TearDown() - { - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__PropagatesRevisionResult() - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision(authorName: "authorName", comment: "comment", revisionID: "revisionID"), - } - }; - - _presenter.OnUpdatePage(0); - var item = _window.items.First(); - - Assert.AreEqual("revisionID", item.id); - Assert.AreEqual("authorName", item.authorName); - Assert.AreEqual("comment", item.comment); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__RevisionNumberingIsInOrder() - { - _service.result = new RevisionsResult() - { - RevisionsInRepo = 4, - Revisions = new List() - { - new Revision(revisionID: "0"), - new Revision(revisionID: "1"), - new Revision(revisionID: "2"), - new Revision(revisionID: "3"), - } - }; - - _presenter.OnUpdatePage(0); - var items = _window.items.ToArray(); - - Assert.AreEqual(4, items[0].index); - Assert.AreEqual(3, items[1].index); - Assert.AreEqual(2, items[2].index); - Assert.AreEqual(1, items[3].index); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__RevisionNumberingChangesForMorePages() - { - _service.result = new RevisionsResult() - { - RevisionsInRepo = 12, - Revisions = new List() - { - new Revision(revisionID: "0"), - new Revision(revisionID: "1"), - new Revision(revisionID: "2"), - new Revision(revisionID: "3"), - new Revision(revisionID: "4"), - } - }; - - _presenter.OnUpdatePage(1); - var items = _window.items.ToArray(); - - Assert.AreEqual(12, items[0].index); - Assert.AreEqual(11, items[1].index); - Assert.AreEqual(10, items[2].index); - Assert.AreEqual(9, items[3].index); - Assert.AreEqual(8, items[4].index); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__ObtainedIsCalculated() - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision(isObtained: false), - new Revision(isObtained: true), - } - }; - - _presenter.OnUpdatePage(0); - var items = _window.items.ToArray(); - - Assert.IsFalse(items[0].obtained); - Assert.IsTrue(items[1].obtained); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__CurrentIsCalculated() - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision(revisionID: "1"), - new Revision(revisionID: "2"), - new Revision(revisionID: "3"), - } - }; - _service.tipRevision = "2"; - - _presenter.OnUpdatePage(0); - var items = _window.items.ToArray(); - - Assert.AreEqual(false, items[0].current); - Assert.AreEqual(true, items[1].current); - Assert.AreEqual(false, items[2].current); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__InProgressIsCalculated() - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision(revisionID: "1"), - new Revision(revisionID: "2"), - new Revision(revisionID: "3"), - } - }; - _window.inProgressRevision = "2"; - - _presenter.OnUpdatePage(0); - var items = _window.items.ToArray(); - - Assert.IsFalse(items[0].inProgress); - Assert.IsTrue(items[1].inProgress); - Assert.IsFalse(items[2].inProgress); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__EnabledIsCalculated() - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision(revisionID: "0"), - } - }; - _window.revisionActionsEnabled = true; - - _presenter.OnUpdatePage(0); - var item = _window.items.First(); - - Assert.AreEqual(true, item.enabled); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__DisabledIsCalculated() - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision(revisionID: "0"), - } - }; - _window.revisionActionsEnabled = false; - - _presenter.OnUpdatePage(0); - var item = _window.items.First(); - - Assert.AreEqual(false, item.enabled); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__BuildStateHasNoneWhenNotTip() - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision(revisionID: "1"), - } - }; - _service.tipRevision = "0"; - _presenter.BuildServiceEnabled = false; - - _presenter.OnUpdatePage(0); - var item = _window.items.First(); - - Assert.AreEqual(BuildState.None, item.buildState); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__BuildStateTipHasNoneWhenEnabled() - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision(revisionID: "0"), - } - }; - _service.tipRevision = "0"; - _presenter.BuildServiceEnabled = true; - - _presenter.OnUpdatePage(0); - var item = _window.items.First(); - - Assert.AreEqual(BuildState.None, item.buildState); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__BuildStateHasConfigureWhenTip() - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision(revisionID: "0"), - } - }; - _service.tipRevision = "0"; - _presenter.BuildServiceEnabled = false; - - _presenter.OnUpdatePage(0); - var item = _window.items.First(); - - Assert.AreEqual(BuildState.Configure, item.buildState); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__BuildStateHasConfigureWhenZeroBuildStatus() - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision(revisionID: "0"), - } - }; - _service.tipRevision = "0"; - _presenter.BuildServiceEnabled = false; - - _presenter.OnUpdatePage(0); - var item = _window.items.First(); - - Assert.AreEqual(BuildState.Configure, item.buildState); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__BuildStateHasNoneWhenZeroBuildStatuses() - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision(revisionID: "0"), - } - }; - _service.tipRevision = "0"; - _presenter.BuildServiceEnabled = true; - - _presenter.OnUpdatePage(0); - var item = _window.items.First(); - - Assert.AreEqual(BuildState.None, item.buildState); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__BuildStateHasSuccessWhenCompleteAndSucceeded() - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision - ( - revisionID: "0", - buildStatuses: new CloudBuildStatus[1] - { - new CloudBuildStatus(complete: true, success: true), - } - ), - } - }; - _service.tipRevision = "0"; - _presenter.BuildServiceEnabled = true; - - _presenter.OnUpdatePage(0); - var item = _window.items.First(); - - Assert.AreEqual(BuildState.Success, item.buildState); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__BuildStateHasInProgress() - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision - ( - revisionID: "0", - buildStatuses: new CloudBuildStatus[1] - { - new CloudBuildStatus(complete: false), - } - ), - } - }; - _service.tipRevision = "0"; - _presenter.BuildServiceEnabled = true; - - _presenter.OnUpdatePage(0); - var item = _window.items.First(); - - Assert.AreEqual(BuildState.InProgress, item.buildState); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__BuildStateHasFailure() - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision - ( - revisionID: "0", - buildStatuses: new CloudBuildStatus[1] - { - new CloudBuildStatus(complete: true, success: false), - } - ), - } - }; - _service.tipRevision = "0"; - _presenter.BuildServiceEnabled = true; - - _presenter.OnUpdatePage(0); - var item = _window.items.First(); - - Assert.AreEqual(BuildState.Failed, item.buildState); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__BuildStateHasFailureWhenAnyBuildsFail() - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision - ( - revisionID: "0", - buildStatuses: new CloudBuildStatus[3] - { - new CloudBuildStatus(complete: true, success: false), - new CloudBuildStatus(complete: true, success: false), - new CloudBuildStatus(complete: true, success: true), - } - ), - } - }; - _service.tipRevision = "0"; - _presenter.BuildServiceEnabled = true; - - _presenter.OnUpdatePage(0); - var item = _window.items.First(); - - Assert.AreEqual(BuildState.Failed, item.buildState); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__ChangesPropagateThrough() - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision(revisionID: "0", entries: GenerateChangeActions(3)), - } - }; - - _presenter.OnUpdatePage(0); - var item = _window.items.First(); - var changes = item.changes.ToList(); - - Assert.AreEqual("Path0", changes[0].path); - Assert.AreEqual("Path1", changes[1].path); - Assert.AreEqual("Path2", changes[2].path); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__ChangesTotalIsCalculated() - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision(revisionID: "0", entries: GenerateChangeActions(3)), - } - }; - - _presenter.OnUpdatePage(0); - var item = _window.items.First(); - - Assert.AreEqual(3, item.changes.Count); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__ChangesTruncatedIsCalculated() - { - for (var i = 0; i < 20; i++) - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision(revisionID: "0", entries: GenerateChangeActions(i)), - } - }; - - _presenter.OnUpdatePage(0); - var item = _window.items.First(); - - Assert.AreEqual(i > 10, item.changesTruncated); - } - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__OnlyKeeps10ChangeActions() - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision(authorName: "Test", author: "test", entries: GenerateChangeActions(12)), - } - }; - - _presenter.OnUpdatePage(1); - var item = _window.items.First(); - - Assert.AreEqual(10, item.changes.Count); - Assert.AreEqual(12, item.changesTotal); - Assert.AreEqual(true, item.changesTruncated); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__DeduplicatesMetaFiles() - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision - ( - authorName: "Test", - author: "test", - revisionID: "", - entries: new ChangeAction[2] - { - new ChangeAction(path: "Path1", action: "Action1"), - new ChangeAction(path: "Path1.meta", action: "Action1"), - } - ), - } - }; - - _presenter.OnUpdatePage(1); - var item = _window.items.First(); - - Assert.AreEqual(1, item.changes.Count); - Assert.AreEqual(1, item.changesTotal); - Assert.AreEqual("Path1", item.changes.First().path); - } - - [Test] - public void CollabHistoryPresenter_OnUpdatePage__FolderMetaFilesAreCounted() - { - _service.result = new RevisionsResult() - { - Revisions = new List() - { - new Revision - ( - authorName: "Test", - author: "test", - entries: new ChangeAction[1] - { - new ChangeAction(path: "Folder1.meta", action: "Action1"), - } - ), - } - }; - - _presenter.OnUpdatePage(1); - var item = _window.items.First(); - - Assert.AreEqual(1, item.changes.Count); - Assert.AreEqual(1, item.changesTotal); - Assert.AreEqual("Folder1", item.changes.First().path); - } - - private static ChangeAction[] GenerateChangeActions(int count) - { - var entries = new ChangeAction[count]; - for (var i = 0; i < count; i++) - entries[i] = new ChangeAction(path: "Path" + i, action: "Action" + i); - return entries; - } - } - - internal class TestRevisionsService : IRevisionsService - { - public RevisionsResult result; - public event RevisionsDelegate FetchRevisionsCallback; - - public string tipRevision { get; set; } - public string currentUser { get; set; } - - public void GetRevisions(int offset, int count) - { - if(FetchRevisionsCallback != null) - { - FetchRevisionsCallback(result); - } - } - } - - internal class TestHistoryWindow : ICollabHistoryWindow - { - public IEnumerable items; - - public bool revisionActionsEnabled { get; set; } - public int itemsPerPage { get; set; } - public string errMessage { get; set; } - public string inProgressRevision { get; set; } - public PageChangeAction OnPageChangeAction { get; set; } - public RevisionAction OnGoBackAction { get; set; } - public RevisionAction OnUpdateAction { get; set; } - public RevisionAction OnRestoreAction { get; set; } - public ShowBuildAction OnShowBuildAction { get; set; } - public Action OnShowServicesAction { get; set; } - - public void UpdateState(HistoryState state, bool force) - { - } - - public void UpdateRevisions(IEnumerable items, string tip, int totalRevisions, int currPage) - { - this.items = items; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Tests/Editor/Unity.CollabProxy.EditorTests.asmdef b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Tests/Editor/Unity.CollabProxy.EditorTests.asmdef deleted file mode 100644 index 3467a9e..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/Tests/Editor/Unity.CollabProxy.EditorTests.asmdef +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "Unity.CollabProxy.EditorTests", - "references": [ - "Unity.CollabProxy.Editor" - ], - "optionalUnityReferences": [ - "TestAssemblies" - ], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [] -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/package.json b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/package.json deleted file mode 100644 index 3402274..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.collab-proxy@1.2.16/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "com.unity.collab-proxy", - "displayName": "Unity Collaborate", - "version": "1.2.16", - "unity": "2018.3", - "description": "Collaborate is a simple way for teams to save, share, and sync their Unity project", - "keywords": [ - "collab", - "collaborate", - "teams", - "team", - "cloud", - "backup" - ], - "dependencies": {}, - "repository": { - "type": "git", - "url": "https://gitlab.cds.internal.unity3d.com/upm-packages/cloud-services/collab-proxy.git", - "revision": "070e173b6a36e1d6097b1d95e09c08840c23f6ca" - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ext.nunit@1.0.6/.gitlab-ci.yml b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ext.nunit@1.0.6/.gitlab-ci.yml deleted file mode 100644 index 20d3cca..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ext.nunit@1.0.6/.gitlab-ci.yml +++ /dev/null @@ -1,15 +0,0 @@ -image: node:6.10.0 - -stages: - - push_to_packman_staging - -push_to_packman_staging: - stage: push_to_packman_staging - only: - - tags - script: - - sed -i "s/0.0.1-PLACEHOLDERVERSION/$CI_COMMIT_TAG/g" package.json - - sed -i "s/PLACEHOLDERSHA/$CI_COMMIT_SHA/g" package.json - - sed -i "s/0.0.1-PLACEHOLDERVERSION/$CI_COMMIT_TAG/g" CHANGELOG.md - - curl -u $USER_NAME:$API_KEY https://staging-packages.unity.com/auth > .npmrc - - npm publish diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ext.nunit@1.0.6/CHANGELOG.md b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ext.nunit@1.0.6/CHANGELOG.md deleted file mode 100644 index f59b039..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ext.nunit@1.0.6/CHANGELOG.md +++ /dev/null @@ -1,22 +0,0 @@ -# Changelog -## [1.0.6] - 2020-11-30 -- isExplicitlyReferenced set to 0 (case 1296162) -## [1.0.5] - 2020-11-04 -- Removed pdb files - -## [1.0.4] - 2020-11-03 -- Added the portable-pdb (DSTR-37) - -## [1.0.3] - 2020-10-30 -- Fixed being able to load mdb or portable-pdb symbolsbug (DSTR-37) -- Minimum unity version updated (case 1279253) - -## [1.0.2] - 2019-12-04 - -- Added missed metafiles - -## [0.0.1] - 2019-02-21 - -### This is the first release of *Unity Package com.unity.ext.nunit*. - -- Migrated the custom version of nunit from inside of unity. diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ext.nunit@1.0.6/README.md b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ext.nunit@1.0.6/README.md deleted file mode 100644 index 19c41a5..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ext.nunit@1.0.6/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Custom Nunit build to work with Unity - -This version of nunit works with all platforms, il2cpp and Mono AOT. - -For Nunit Documentation: -https://github.com/nunit/docs/wiki/NUnit-Documentation diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ext.nunit@1.0.6/net35/unity-custom/nunit.framework.dll b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ext.nunit@1.0.6/net35/unity-custom/nunit.framework.dll deleted file mode 100644 index ac346cb..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ext.nunit@1.0.6/net35/unity-custom/nunit.framework.dll and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ext.nunit@1.0.6/package.json b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ext.nunit@1.0.6/package.json deleted file mode 100644 index 2ea221d..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ext.nunit@1.0.6/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "displayName": "Custom NUnit", - "name": "com.unity.ext.nunit", - "version": "1.0.6", - "unity": "2019.2", - "description": "Custom version of the nunit package build to work with Unity. Used by the Unity Test Framework.", - "keywords": [ - "nunit", - "unittest", - "test" - ], - "category": "Libraries", - "repository": { - "url": "https://github.cds.internal.unity3d.com/unity/com.unity.ext.nunit.git", - "type": "git", - "revision": "29ea4d6504a5f58fb3a6934db839aa80ae6d9d88" - }, - "relatedPackages": { - "com.unity.ext.nunit.tests": "1.0.6" - }, - "upmCi": { - "footprint": "e9f76bd265402773096bf08a8ffb51cd3d76f39a" - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/.editorconfig b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/.editorconfig deleted file mode 100644 index ca12169..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/.editorconfig +++ /dev/null @@ -1,6 +0,0 @@ -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/CHANGELOG.md b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/CHANGELOG.md deleted file mode 100644 index bd5aad6..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/CHANGELOG.md +++ /dev/null @@ -1,74 +0,0 @@ -# Code Editor Package for Rider - -## [1.1.4] - 2019-11-21 - -fix warning - unreachable code - - -## [1.1.3] - 2019-10-17 - - - Update External Editor, when new toolbox build was installed - - Add xaml to default list of extensions to include in csproj - - Avoid initializing Rider package in secondary Unity process, which does Asset processing - - Reflect multiple csc.rsp arguments to generated csproj files: https://github.com/JetBrains/resharper-unity/issues/1337 - - Setting, which allowed to override LangVersion removed in favor of langversion in csc.rsp - - Environment.NewLine is used in generated project files instead of Windows line separator. - -## [1.1.2] - 2019-09-18 - -performance optimizations: - - avoid multiple evaluations - - avoid reflection in DisableSyncSolutionOnceCallBack - - project generation optimization -fixes: - - avoid compilation error with incompatible `Test Framework` package - -## [1.1.1] - 2019-08-26 - -parse nowarn in csc.rsp -warning, when Unity was started from Rider, but external editor was different -improved unit test support -workaround to avoid Unity internal project-generation (fix #28) - - -## [1.1.0] - 2019-07-02 - -new setting to manage list of extensions to be opened with Rider -avoid breaking everything on any unhandled exception in RiderScriptEditor cctor -hide Rider settings, when different Editor is selected -dynamically load only newer rider plugins -path detection (work on unix symlinks) -speed up for project generation -lots of bug fixing - -## [1.0.8] - 2019-05-20 - -Fix NullReferenceException when External editor was pointing to non-existing Rider everything was broken by null-ref. - -## [1.0.7] - 2019-05-16 - -Initial migration steps from rider plugin to package. -Fix OSX check and opening of files. - -## [1.0.6] - 2019-04-30 - -Ensure asset database is refreshed when generating csproj and solution files. - -## [1.0.5] - 2019-04-27 - -Add support for generating all csproj files. - -## [1.0.4] - 2019-04-18 - -Fix relative package paths. -Fix opening editor on mac. - -## [1.0.3] - 2019-04-12 - -Fixing null reference issue for callbacks to Asset pipeline. - -## [1.0.2] - 2019-01-01 - -### This is the first release of *Unity Package rider_editor*. - -Using the newly created api to integrate Rider with Unity. diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/CONTRIBUTING.md b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/CONTRIBUTING.md deleted file mode 100644 index f0005f6..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/CONTRIBUTING.md +++ /dev/null @@ -1,6 +0,0 @@ -# Contributing - -## All contributions are subject to the [Unity Contribution Agreement(UCA)](https://unity3d.com/legal/licenses/Unity_Contribution_Agreement) -By making a pull request, you are confirming agreement to the terms and conditions of the UCA, including that your Contributions are your original creation and that you have complete right and authority to make your Contributions. - -## Once you have a change ready following these ground rules. Simply make a pull request \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/LICENSE.md b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/LICENSE.md deleted file mode 100644 index 8098f2d..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Unity Technologies - -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/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Discovery.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Discovery.cs deleted file mode 100644 index 150d70c..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Discovery.cs +++ /dev/null @@ -1,457 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using JetBrains.Annotations; -using Microsoft.Win32; -using Unity.CodeEditor; -using UnityEngine; - -namespace Packages.Rider.Editor -{ - public interface IDiscovery - { - CodeEditor.Installation[] PathCallback(); - } - - public class Discovery : IDiscovery - { - public CodeEditor.Installation[] PathCallback() - { - return RiderPathLocator.GetAllRiderPaths() - .Select(riderInfo => new CodeEditor.Installation - { - Path = riderInfo.Path, - Name = riderInfo.Presentation - }) - .OrderBy(a=>a.Name) - .ToArray(); - } - } - - /// - /// This code is a modified version of the JetBrains resharper-unity plugin listed here: - /// https://github.com/JetBrains/resharper-unity/blob/master/unity/JetBrains.Rider.Unity.Editor/EditorPlugin/RiderPathLocator.cs - /// - public static class RiderPathLocator - { -#if !(UNITY_4_7 || UNITY_5_5) - [UsedImplicitly] // Used in com.unity.ide.rider - public static RiderInfo[] GetAllRiderPaths() - { - try - { - switch (SystemInfo.operatingSystemFamily) - { - case OperatingSystemFamily.Windows: - { - return CollectRiderInfosWindows(); - } - - case OperatingSystemFamily.MacOSX: - { - return CollectRiderInfosMac(); - } - - case OperatingSystemFamily.Linux: - { - return CollectAllRiderPathsLinux(); - } - } - } - catch (Exception e) - { - Debug.LogException(e); - } - - return new RiderInfo[0]; - } -#endif - -#if RIDER_EDITOR_PLUGIN // can't be used in com.unity.ide.rider - internal static RiderInfo[] GetAllFoundInfos(OperatingSystemFamilyRider operatingSystemFamily) - { - try - { - switch (operatingSystemFamily) - { - case OperatingSystemFamilyRider.Windows: - { - return CollectRiderInfosWindows(); - } - case OperatingSystemFamilyRider.MacOSX: - { - return CollectRiderInfosMac(); - } - case OperatingSystemFamilyRider.Linux: - { - return CollectAllRiderPathsLinux(); - } - } - } - catch (Exception e) - { - Debug.LogException(e); - } - - return new RiderInfo[0]; - } - - internal static string[] GetAllFoundPaths(OperatingSystemFamilyRider operatingSystemFamily) - { - return GetAllFoundInfos(operatingSystemFamily).Select(a=>a.Path).ToArray(); - } -#endif - - private static RiderInfo[] CollectAllRiderPathsLinux() - { - var installInfos = new List(); - var home = Environment.GetEnvironmentVariable("HOME"); - if (!string.IsNullOrEmpty(home)) - { - var toolboxRiderRootPath = GetToolboxBaseDir(); - installInfos.AddRange(CollectPathsFromToolbox(toolboxRiderRootPath, "bin", "rider.sh", false) - .Select(a => new RiderInfo(a, true)).ToList()); - - //$Home/.local/share/applications/jetbrains-rider.desktop - var shortcut = new FileInfo(Path.Combine(home, @".local/share/applications/jetbrains-rider.desktop")); - - if (shortcut.Exists) - { - var lines = File.ReadAllLines(shortcut.FullName); - foreach (var line in lines) - { - if (!line.StartsWith("Exec=\"")) - continue; - var path = line.Split('"').Where((item, index) => index == 1).SingleOrDefault(); - if (string.IsNullOrEmpty(path)) - continue; - - if (installInfos.Any(a => a.Path == path)) // avoid adding similar build as from toolbox - continue; - installInfos.Add(new RiderInfo(path, false)); - } - } - } - - // snap install - var snapInstallPath = "/snap/rider/current/bin/rider.sh"; - if (new FileInfo(snapInstallPath).Exists) - installInfos.Add(new RiderInfo(snapInstallPath, false)); - - return installInfos.ToArray(); - } - - private static RiderInfo[] CollectRiderInfosMac() - { - var installInfos = new List(); - // "/Applications/*Rider*.app" - var folder = new DirectoryInfo("/Applications"); - if (folder.Exists) - { - installInfos.AddRange(folder.GetDirectories("*Rider*.app") - .Select(a => new RiderInfo(a.FullName, false)) - .ToList()); - } - - // /Users/user/Library/Application Support/JetBrains/Toolbox/apps/Rider/ch-1/181.3870.267/Rider EAP.app - var toolboxRiderRootPath = GetToolboxBaseDir(); - var paths = CollectPathsFromToolbox(toolboxRiderRootPath, "", "Rider*.app", true) - .Select(a => new RiderInfo(a, true)); - installInfos.AddRange(paths); - - return installInfos.ToArray(); - } - - private static RiderInfo[] CollectRiderInfosWindows() - { - var installInfos = new List(); - var toolboxRiderRootPath = GetToolboxBaseDir(); - var installPathsToolbox = CollectPathsFromToolbox(toolboxRiderRootPath, "bin", "rider64.exe", false).ToList(); - installInfos.AddRange(installPathsToolbox.Select(a => new RiderInfo(a, true)).ToList()); - - var installPaths = new List(); - const string registryKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"; - CollectPathsFromRegistry(registryKey, installPaths); - const string wowRegistryKey = @"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall"; - CollectPathsFromRegistry(wowRegistryKey, installPaths); - - installInfos.AddRange(installPaths.Select(a => new RiderInfo(a, false)).ToList()); - - return installInfos.ToArray(); - } - - private static string GetToolboxBaseDir() - { - switch (SystemInfo.operatingSystemFamily) - { - case OperatingSystemFamily.Windows: - { - var localAppData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); - return Path.Combine(localAppData, @"JetBrains\Toolbox\apps\Rider"); - } - - case OperatingSystemFamily.MacOSX: - { - var home = Environment.GetEnvironmentVariable("HOME"); - if (!string.IsNullOrEmpty(home)) - { - return Path.Combine(home, @"Library/Application Support/JetBrains/Toolbox/apps/Rider"); - } - break; - } - - case OperatingSystemFamily.Linux: - { - var home = Environment.GetEnvironmentVariable("HOME"); - if (!string.IsNullOrEmpty(home)) - { - return Path.Combine(home, @".local/share/JetBrains/Toolbox/apps/Rider"); - } - break; - } - } - return string.Empty; - } - - internal static string GetBuildNumber(string path) - { - var file = new FileInfo(Path.Combine(path, GetRelativePathToBuildTxt())); - if (!file.Exists) - return string.Empty; - var text = File.ReadAllText(file.FullName); - if (text.Length > 3) - return text.Substring(3); - return string.Empty; - } - - internal static bool IsToolbox(string path) - { - return path.StartsWith(GetToolboxBaseDir()); - } - - private static string GetRelativePathToBuildTxt() - { - switch (SystemInfo.operatingSystemFamily) - { - case OperatingSystemFamily.Windows: - case OperatingSystemFamily.Linux: - return "../../build.txt"; - case OperatingSystemFamily.MacOSX: - return "Contents/Resources/build.txt"; - } - throw new Exception("Unknown OS"); - } - - private static void CollectPathsFromRegistry(string registryKey, List installPaths) - { - using (var key = Registry.LocalMachine.OpenSubKey(registryKey)) - { - if (key == null) return; - foreach (var subkeyName in key.GetSubKeyNames().Where(a => a.Contains("Rider"))) - { - using (var subkey = key.OpenSubKey(subkeyName)) - { - var folderObject = subkey?.GetValue("InstallLocation"); - if (folderObject == null) continue; - var folder = folderObject.ToString(); - var possiblePath = Path.Combine(folder, @"bin\rider64.exe"); - if (File.Exists(possiblePath)) - installPaths.Add(possiblePath); - } - } - } - } - - private static string[] CollectPathsFromToolbox(string toolboxRiderRootPath, string dirName, string searchPattern, - bool isMac) - { - if (!Directory.Exists(toolboxRiderRootPath)) - return new string[0]; - - var channelDirs = Directory.GetDirectories(toolboxRiderRootPath); - var paths = channelDirs.SelectMany(channelDir => - { - try - { - // use history.json - last entry stands for the active build https://jetbrains.slack.com/archives/C07KNP99D/p1547807024066500?thread_ts=1547731708.057700&cid=C07KNP99D - var historyFile = Path.Combine(channelDir, ".history.json"); - if (File.Exists(historyFile)) - { - var json = File.ReadAllText(historyFile); - var build = ToolboxHistory.GetLatestBuildFromJson(json); - if (build != null) - { - var buildDir = Path.Combine(channelDir, build); - var executablePaths = GetExecutablePaths(dirName, searchPattern, isMac, buildDir); - if (executablePaths.Any()) - return executablePaths; - } - } - - var channelFile = Path.Combine(channelDir, ".channel.settings.json"); - if (File.Exists(channelFile)) - { - var json = File.ReadAllText(channelFile).Replace("active-application", "active_application"); - var build = ToolboxInstallData.GetLatestBuildFromJson(json); - if (build != null) - { - var buildDir = Path.Combine(channelDir, build); - var executablePaths = GetExecutablePaths(dirName, searchPattern, isMac, buildDir); - if (executablePaths.Any()) - return executablePaths; - } - } - - // changes in toolbox json files format may brake the logic above, so return all found Rider installations - return Directory.GetDirectories(channelDir) - .SelectMany(buildDir => GetExecutablePaths(dirName, searchPattern, isMac, buildDir)); - } - catch (Exception e) - { - // do not write to Debug.Log, just log it. - Logger.Warn($"Failed to get RiderPath from {channelDir}", e); - } - - return new string[0]; - }) - .Where(c => !string.IsNullOrEmpty(c)) - .ToArray(); - return paths; - } - - private static string[] GetExecutablePaths(string dirName, string searchPattern, bool isMac, string buildDir) - { - var folder = new DirectoryInfo(Path.Combine(buildDir, dirName)); - if (!folder.Exists) - return new string[0]; - - if (!isMac) - return new[] {Path.Combine(folder.FullName, searchPattern)}.Where(File.Exists).ToArray(); - return folder.GetDirectories(searchPattern).Select(f => f.FullName) - .Where(Directory.Exists).ToArray(); - } - - // Disable the "field is never assigned" compiler warning. We never assign it, but Unity does. - // Note that Unity disable this warning in the generated C# projects -#pragma warning disable 0649 - - [Serializable] - class ToolboxHistory - { - public List history; - - [CanBeNull] - public static string GetLatestBuildFromJson(string json) - { - try - { -#if UNITY_4_7 || UNITY_5_5 - return JsonConvert.DeserializeObject(json).history.LastOrDefault()?.item.build; -#else - return JsonUtility.FromJson(json).history.LastOrDefault()?.item.build; -#endif - } - catch (Exception) - { - Logger.Warn($"Failed to get latest build from json {json}"); - } - - return null; - } - } - - [Serializable] - class ItemNode - { - public BuildNode item; - } - - [Serializable] - class BuildNode - { - public string build; - } - - // ReSharper disable once ClassNeverInstantiated.Global - [Serializable] - class ToolboxInstallData - { - // ReSharper disable once InconsistentNaming - public ActiveApplication active_application; - - [CanBeNull] - public static string GetLatestBuildFromJson(string json) - { - try - { -#if UNITY_4_7 || UNITY_5_5 - var toolbox = JsonConvert.DeserializeObject(json); -#else - var toolbox = JsonUtility.FromJson(json); -#endif - var builds = toolbox.active_application.builds; - if (builds != null && builds.Any()) - return builds.First(); - } - catch (Exception) - { - Logger.Warn($"Failed to get latest build from json {json}"); - } - - return null; - } - } - - [Serializable] - class ActiveApplication - { - // ReSharper disable once InconsistentNaming - public List builds; - } - -#pragma warning restore 0649 - - public struct RiderInfo - { - public bool IsToolbox; - public string Presentation; - public string BuildVersion; - public string Path; - - public RiderInfo(string path, bool isToolbox) - { - if (path == RiderScriptEditor.CurrentEditor) - { - RiderScriptEditorData.instance.Init(); - BuildVersion = RiderScriptEditorData.instance.currentEditorVersion; - } - else - BuildVersion = GetBuildNumber(path); - Path = new FileInfo(path).FullName; // normalize separators - var presentation = "Rider " + BuildVersion; - if (isToolbox) - presentation += " (JetBrains Toolbox)"; - - Presentation = presentation; - IsToolbox = isToolbox; - } - } - - private static class Logger - { - internal static void Warn(string message, Exception e = null) - { -#if RIDER_EDITOR_PLUGIN // can't be used in com.unity.ide.rider - Log.GetLog(typeof(RiderPathLocator).Name).Warn(message); - if (e != null) - Log.GetLog(typeof(RiderPathLocator).Name).Warn(e); -#else - Debug.LogError(message); - if (e != null) - Debug.LogException(e); -#endif - } - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/EditorPluginInterop.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/EditorPluginInterop.cs deleted file mode 100644 index 749218f..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/EditorPluginInterop.cs +++ /dev/null @@ -1,136 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Runtime.CompilerServices; -using Debug = UnityEngine.Debug; - -namespace Packages.Rider.Editor -{ - public static class EditorPluginInterop - { - private static string ourEntryPointTypeName = "JetBrains.Rider.Unity.Editor.PluginEntryPoint"; - - private static Assembly ourEditorPluginAssembly; - - public static Assembly EditorPluginAssembly - { - get - { - if (ourEditorPluginAssembly != null) - return ourEditorPluginAssembly; - var assemblies = AppDomain.CurrentDomain.GetAssemblies(); - ourEditorPluginAssembly = assemblies.FirstOrDefault(a => a.GetName().Name.Equals("JetBrains.Rider.Unity.Editor.Plugin.Full.Repacked")); - return ourEditorPluginAssembly; - } - } - - - private static void DisableSyncSolutionOnceCallBack() - { - // RiderScriptableSingleton.Instance.CsprojProcessedOnce = true; - // Otherwise EditorPlugin regenerates all on every AppDomain reload - var assembly = EditorPluginAssembly; - if (assembly == null) return; - var type = assembly.GetType("JetBrains.Rider.Unity.Editor.Utils.RiderScriptableSingleton"); - if (type == null) return; - var baseType = type.BaseType; - if (baseType == null) return; - var instance = baseType.GetProperty("Instance"); - if (instance == null) return; - var instanceVal = instance.GetValue(null); - var member = type.GetProperty("CsprojProcessedOnce"); - if (member==null) return; - member.SetValue(instanceVal, true); - } - - public static string LogPath - { - get - { - try - { - var assembly = EditorPluginAssembly; - if (assembly == null) return null; - var type = assembly.GetType(ourEntryPointTypeName); - if (type == null) return null; - var field = type.GetField("LogPath", BindingFlags.NonPublic | BindingFlags.Static); - if (field == null) return null; - return field.GetValue(null) as string; - } - catch (Exception) - { - Debug.Log("Unable to do OpenFile to Rider from dll, fallback to com.unity.ide.rider implementation."); - } - - return null; - } - } - - public static bool OpenFileDllImplementation(string path, int line, int column) - { - var openResult = false; - // reflection for fast OpenFileLineCol, when Rider is started and protocol connection is established - try - { - var assembly = EditorPluginAssembly; - if (assembly == null) return false; - var type = assembly.GetType(ourEntryPointTypeName); - if (type == null) return false; - var field = type.GetField("OpenAssetHandler", BindingFlags.NonPublic | BindingFlags.Static); - if (field == null) return false; - var handlerInstance = field.GetValue(null); - var method = handlerInstance.GetType() - .GetMethod("OnOpenedAsset", new[] {typeof(string), typeof(int), typeof(int)}); - if (method == null) return false; - var assetFilePath = path; - if (!string.IsNullOrEmpty(path)) - assetFilePath = Path.GetFullPath(path); - - openResult = (bool) method.Invoke(handlerInstance, new object[] {assetFilePath, line, column}); - } - catch (Exception e) - { - Debug.Log("Unable to do OpenFile to Rider from dll, fallback to com.unity.ide.rider implementation."); - Debug.LogException(e); - } - - return openResult; - } - - public static bool EditorPluginIsLoadedFromAssets(Assembly assembly) - { - if (assembly == null) - return false; - var location = assembly.Location; - var currentDir = Directory.GetCurrentDirectory(); - return location.StartsWith(currentDir, StringComparison.InvariantCultureIgnoreCase); - } - - - internal static void InitEntryPoint(Assembly assembly) - { - try - { - if (Version.TryParse(RiderScriptEditorData.instance.currentEditorVersion, out var version)) - { - if (version.Major < 192) - DisableSyncSolutionOnceCallBack(); // is require for Rider prior to 2019.2 - } - else - DisableSyncSolutionOnceCallBack(); - - var type = assembly.GetType("JetBrains.Rider.Unity.Editor.AfterUnity56.EntryPoint"); - if (type == null) - type = assembly.GetType("JetBrains.Rider.Unity.Editor.UnitTesting.EntryPoint"); // oldRider - RuntimeHelpers.RunClassConstructor(type.TypeHandle); - } - catch (TypeInitializationException ex) - { - Debug.LogException(ex); - if (ex.InnerException != null) - Debug.LogException(ex.InnerException); - } - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/LoggingLevel.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/LoggingLevel.cs deleted file mode 100644 index 0fb025d..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/LoggingLevel.cs +++ /dev/null @@ -1,22 +0,0 @@ -namespace Packages.Rider.Editor -{ - public enum LoggingLevel - { - /// - /// Do not use it in logging. Only in config to disable logging. - /// - OFF, - /// For errors that lead to application failure - FATAL, - /// For errors that must be shown in Exception Browser - ERROR, - /// Suspicious situations but not errors - WARN, - /// Regular level for important events - INFO, - /// Additional info for debbuging - VERBOSE, - /// Methods & callstacks tracing, more than verbose - TRACE, - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PluginSettings.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PluginSettings.cs deleted file mode 100644 index d3c139a..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PluginSettings.cs +++ /dev/null @@ -1,128 +0,0 @@ -using Unity.CodeEditor; -using UnityEditor; -using UnityEngine; - -namespace Packages.Rider.Editor -{ - public class PluginSettings - { - public static LoggingLevel SelectedLoggingLevel - { - get => (LoggingLevel) EditorPrefs.GetInt("Rider_SelectedLoggingLevel", 0); - set - { - EditorPrefs.SetInt("Rider_SelectedLoggingLevel", (int) value); - } - } - - public static bool LogEventsCollectorEnabled - { - get { return EditorPrefs.GetBool("Rider_LogEventsCollectorEnabled", true); } - private set { EditorPrefs.SetBool("Rider_LogEventsCollectorEnabled", value); } - } - - - private static GUIStyle ourVersionInfoStyle = new GUIStyle() - { - normal = new GUIStyleState() - { - textColor = new Color(0, 0, 0, .6f), - }, - margin = new RectOffset(4, 4, 4, 4), - }; - - /// - /// Preferences menu layout - /// - /// - /// Contains all 3 toggles: Enable/Disable; Debug On/Off; Writing Launch File On/Off - /// - [SettingsProvider] - private static SettingsProvider RiderPreferencesItem() - { - if (!RiderScriptEditor.IsRiderInstallation(RiderScriptEditor.CurrentEditor)) - return null; - if (!RiderScriptEditorData.instance.shouldLoadEditorPlugin) - return null; - var provider = new SettingsProvider("Preferences/Rider", SettingsScope.User) - { - label = "Rider", - keywords = new[] { "Rider" }, - guiHandler = (searchContext) => - { - EditorGUIUtility.labelWidth = 200f; - EditorGUILayout.BeginVertical(); - - GUILayout.BeginVertical(); - LogEventsCollectorEnabled = - EditorGUILayout.Toggle(new GUIContent("Pass Console to Rider:"), LogEventsCollectorEnabled); - - GUILayout.EndVertical(); - GUILayout.Label(""); - - if (!string.IsNullOrEmpty(EditorPluginInterop.LogPath)) - { - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.PrefixLabel("Log file:"); - var previous = GUI.enabled; - GUI.enabled = previous && SelectedLoggingLevel != LoggingLevel.OFF; - var button = GUILayout.Button(new GUIContent("Open log")); - if (button) - { - //UnityEditorInternal.InternalEditorUtility.OpenFileAtLineExternal(PluginEntryPoint.LogPath, 0); - // works much faster than the commented code, when Rider is already started - CodeEditor.CurrentEditor.OpenProject(EditorPluginInterop.LogPath, 0, 0); - } - - GUI.enabled = previous; - GUILayout.EndHorizontal(); - } - - var loggingMsg = - @"Sets the amount of Rider Debug output. If you are about to report an issue, please select Verbose logging level and attach Unity console output to the issue."; - SelectedLoggingLevel = - (LoggingLevel) EditorGUILayout.EnumPopup(new GUIContent("Logging Level:", loggingMsg), - SelectedLoggingLevel); - - - EditorGUILayout.HelpBox(loggingMsg, MessageType.None); - - var githubRepo = "https://github.com/JetBrains/resharper-unity"; - var caption = $"{githubRepo}"; - LinkButton(caption: caption, url: githubRepo); - - GUILayout.FlexibleSpace(); - GUILayout.BeginHorizontal(); - - GUILayout.FlexibleSpace(); - var assembly = EditorPluginInterop.EditorPluginAssembly; - if (assembly != null) - { - var version = assembly.GetName().Version; - GUILayout.Label("Plugin version: " + version, ourVersionInfoStyle); - } - - GUILayout.EndHorizontal(); - - EditorGUILayout.EndVertical(); - } - }; - return provider; - } - - private static void LinkButton(string caption, string url) - { - var style = GUI.skin.label; - style.richText = true; - - var bClicked = GUILayout.Button(caption, style); - - var rect = GUILayoutUtility.GetLastRect(); - rect.width = style.CalcSize(new GUIContent(caption)).x; - EditorGUIUtility.AddCursorRect(rect, MouseCursor.Link); - - if (bClicked) - Application.OpenURL(url); - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PostProcessors/RiderAssetPostprocessor.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PostProcessors/RiderAssetPostprocessor.cs deleted file mode 100644 index c442dd1..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PostProcessors/RiderAssetPostprocessor.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Unity.CodeEditor; -using UnityEditor; - -namespace Packages.Rider.Editor.PostProcessors -{ - public class RiderAssetPostprocessor: AssetPostprocessor - { - public static bool OnPreGeneratingCSProjectFiles() - { - var path = RiderScriptEditor.GetEditorRealPath(CodeEditor.CurrentEditorInstallation); - if (RiderScriptEditor.IsRiderInstallation(path)) - return !ProjectGeneration.isRiderProjectGeneration; - return false; - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/FileIOProvider.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/FileIOProvider.cs deleted file mode 100644 index c7896c7..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/FileIOProvider.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.IO; -using System.Text; - -namespace Packages.Rider.Editor { - class FileIOProvider : IFileIO - { - public bool Exists(string fileName) - { - return File.Exists(fileName); - } - - public string ReadAllText(string fileName) - { - return File.ReadAllText(fileName); - } - - public void WriteAllText(string fileName, string content) - { - File.WriteAllText(fileName, content, Encoding.UTF8); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/GUIDProvider.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/GUIDProvider.cs deleted file mode 100644 index 54851ce..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/GUIDProvider.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; - -namespace Packages.Rider.Editor { - class GUIDProvider : IGUIDGenerator - { - public string ProjectGuid(string projectName, string assemblyName) - { - return SolutionGuidGenerator.GuidForProject(projectName + assemblyName); - } - - public string SolutionGuid(string projectName, string extension) - { - return SolutionGuidGenerator.GuidForSolution(projectName, extension); // GetExtensionOfSourceFiles(assembly.sourceFiles) - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/ProjectGeneration.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/ProjectGeneration.cs deleted file mode 100644 index 7f5ec31..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/ProjectGeneration.cs +++ /dev/null @@ -1,1090 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Security; -using System.Security.Cryptography; -using System.Text; -using System.Text.RegularExpressions; -using Packages.Rider.Editor.Util; -using UnityEditor; -using UnityEditor.Compilation; -using UnityEditor.PackageManager; -using UnityEditorInternal; -using UnityEngine; - -namespace Packages.Rider.Editor -{ - public interface IGenerator - { - bool SyncIfNeeded(IEnumerable affectedFiles, IEnumerable reimportedFiles); - void Sync(); - bool HasSolutionBeenGenerated(); - string SolutionFile(); - string ProjectDirectory { get; } - void GenerateAll(bool generateAll); - } - - public interface IFileIO - { - bool Exists(string fileName); - - string ReadAllText(string fileName); - void WriteAllText(string fileName, string content); - } - - public interface IGUIDGenerator - { - string ProjectGuid(string projectName, string assemblyName); - string SolutionGuid(string projectName, string extension); - } - - public interface IAssemblyNameProvider - { - string GetAssemblyNameFromScriptPath(string path); - IEnumerable GetAssemblies(Func shouldFileBePartOfSolution); - IEnumerable GetAllAssetPaths(); - UnityEditor.PackageManager.PackageInfo FindForAssetPath(string assetPath); - ResponseFileData ParseResponseFile(string responseFilePath, string projectDirectory, string[] systemReferenceDirectories); - } - - class AssemblyNameProvider : IAssemblyNameProvider - { - public string GetAssemblyNameFromScriptPath(string path) - { - return CompilationPipeline.GetAssemblyNameFromScriptPath(path); - } - - public IEnumerable GetAssemblies(Func shouldFileBePartOfSolution) - { - return CompilationPipeline.GetAssemblies() - .Where(i => 0 < i.sourceFiles.Length && i.sourceFiles.Any(shouldFileBePartOfSolution)); - } - - public IEnumerable GetAllAssetPaths() - { - return AssetDatabase.GetAllAssetPaths(); - } - - public UnityEditor.PackageManager.PackageInfo FindForAssetPath(string assetPath) - { - return UnityEditor.PackageManager.PackageInfo.FindForAssetPath(assetPath); - } - - public ResponseFileData ParseResponseFile(string responseFilePath, string projectDirectory, string[] systemReferenceDirectories) - { - return CompilationPipeline.ParseResponseFile( - responseFilePath, - projectDirectory, - systemReferenceDirectories - ); - } - } - - public class ProjectGeneration : IGenerator - { - enum ScriptingLanguage - { - None, - CSharp - } - - public static readonly string MSBuildNamespaceUri = "http://schemas.microsoft.com/developer/msbuild/2003"; - - /// - /// Map source extensions to ScriptingLanguages - /// - static readonly Dictionary k_BuiltinSupportedExtensions = - new Dictionary - { - {"cs", ScriptingLanguage.CSharp}, - {"uxml", ScriptingLanguage.None}, - {"uss", ScriptingLanguage.None}, - {"shader", ScriptingLanguage.None}, - {"compute", ScriptingLanguage.None}, - {"cginc", ScriptingLanguage.None}, - {"hlsl", ScriptingLanguage.None}, - {"glslinc", ScriptingLanguage.None}, - {"template", ScriptingLanguage.None}, - {"raytrace", ScriptingLanguage.None} - }; - - string m_SolutionProjectEntryTemplate = string.Join(Environment.NewLine, - @"Project(""{{{0}}}"") = ""{1}"", ""{2}"", ""{{{3}}}""", - @"EndProject").Replace(" ", "\t"); - - string m_SolutionProjectConfigurationTemplate = string.Join(Environment.NewLine, - @" {{{0}}}.Debug|Any CPU.ActiveCfg = Debug|Any CPU", - @" {{{0}}}.Debug|Any CPU.Build.0 = Debug|Any CPU", - @" {{{0}}}.Release|Any CPU.ActiveCfg = Release|Any CPU", - @" {{{0}}}.Release|Any CPU.Build.0 = Release|Any CPU").Replace(" ", "\t"); - - static readonly string[] k_ReimportSyncExtensions = {".dll", ".asmdef"}; - - /// - /// Map ScriptingLanguages to project extensions - /// - /*static readonly Dictionary k_ProjectExtensions = new Dictionary - { - { ScriptingLanguage.CSharp, ".csproj" }, - { ScriptingLanguage.None, ".csproj" }, - };*/ - static readonly Regex k_ScriptReferenceExpression = new Regex( - @"^Library.ScriptAssemblies.(?(?.*)\.dll$)", - RegexOptions.Compiled | RegexOptions.IgnoreCase); - - string[] m_ProjectSupportedExtensions = new string[0]; - bool m_ShouldGenerateAll; - - public string ProjectDirectory { get; } - - public void GenerateAll(bool generateAll) - { - m_ShouldGenerateAll = generateAll; - } - - readonly string m_ProjectName; - readonly IAssemblyNameProvider m_AssemblyNameProvider; - readonly IFileIO m_FileIOProvider; - readonly IGUIDGenerator m_GUIDGenerator; - internal static bool isRiderProjectGeneration; // workaround to https://github.cds.internal.unity3d.com/unity/com.unity.ide.rider/issues/28 - - const string k_ToolsVersion = "4.0"; - const string k_ProductVersion = "10.0.20506"; - const string k_BaseDirectory = "."; - const string k_TargetFrameworkVersion = "v4.7.1"; - const string k_TargetLanguageVersion = "latest"; - - static readonly Regex scriptReferenceExpression = new Regex( - @"^Library.ScriptAssemblies.(?(?.*)\.dll$)", - RegexOptions.Compiled | RegexOptions.IgnoreCase); - - public ProjectGeneration() : this(Directory.GetParent(Application.dataPath).FullName) - { - } - - public ProjectGeneration(string tempDirectory) : this(tempDirectory, new AssemblyNameProvider(), new FileIOProvider(), new GUIDProvider()) - { - } - - public ProjectGeneration(string tempDirectory, IAssemblyNameProvider assemblyNameProvider, IFileIO fileIoProvider, IGUIDGenerator guidGenerator) - { - ProjectDirectory = tempDirectory.Replace('\\', '/'); - m_ProjectName = Path.GetFileName(ProjectDirectory); - m_AssemblyNameProvider = assemblyNameProvider; - m_FileIOProvider = fileIoProvider; - m_GUIDGenerator = guidGenerator; - } - - /// - /// Syncs the scripting solution if any affected files are relevant. - /// - /// - /// Whether the solution was synced. - /// - /// - /// A set of files whose status has changed - /// - /// - /// A set of files that got reimported - /// - public bool SyncIfNeeded(IEnumerable affectedFiles, IEnumerable reimportedFiles) - { - SetupProjectSupportedExtensions(); - - if (HasFilesBeenModified(affectedFiles, reimportedFiles)) - { - Sync(); - return true; - } - - return false; - } - - bool HasFilesBeenModified(IEnumerable affectedFiles, IEnumerable reimportedFiles) - { - return affectedFiles.Any(ShouldFileBePartOfSolution) || reimportedFiles.Any(ShouldSyncOnReimportedAsset); - } - - static bool ShouldSyncOnReimportedAsset(string asset) - { - return k_ReimportSyncExtensions.Contains(new FileInfo(asset).Extension); - } - - public void Sync() - { - SetupProjectSupportedExtensions(); - var types = GetAssetPostprocessorTypes(); - isRiderProjectGeneration = true; - bool externalCodeAlreadyGeneratedProjects = OnPreGeneratingCSProjectFiles(types); - isRiderProjectGeneration = false; - if (!externalCodeAlreadyGeneratedProjects) - { - GenerateAndWriteSolutionAndProjects(types); - } - - OnGeneratedCSProjectFiles(types); - } - - public bool HasSolutionBeenGenerated() - { - return m_FileIOProvider.Exists(SolutionFile()); - } - - void SetupProjectSupportedExtensions() - { - m_ProjectSupportedExtensions = EditorSettings.projectGenerationUserExtensions; - } - - bool ShouldFileBePartOfSolution(string file) - { - string extension = Path.GetExtension(file); - - // Exclude files coming from packages except if they are internalized. - if (!m_ShouldGenerateAll && IsInternalizedPackagePath(file)) - { - return false; - } - - // Dll's are not scripts but still need to be included.. - if (extension == ".dll") - return true; - - if (file.ToLower().EndsWith(".asmdef")) - return true; - - return IsSupportedExtension(extension); - } - - bool IsSupportedExtension(string extension) - { - extension = extension.TrimStart('.'); - if (k_BuiltinSupportedExtensions.ContainsKey(extension)) - return true; - if (m_ProjectSupportedExtensions.Contains(extension)) - return true; - return false; - } - - static ScriptingLanguage ScriptingLanguageFor(Assembly island) - { - return ScriptingLanguageFor(GetExtensionOfSourceFiles(island.sourceFiles)); - } - - static string GetExtensionOfSourceFiles(string[] files) - { - return files.Length > 0 ? GetExtensionOfSourceFile(files[0]) : "NA"; - } - - static string GetExtensionOfSourceFile(string file) - { - var ext = Path.GetExtension(file).ToLower(); - ext = ext.Substring(1); //strip dot - return ext; - } - - static ScriptingLanguage ScriptingLanguageFor(string extension) - { - return k_BuiltinSupportedExtensions.TryGetValue(extension.TrimStart('.'), out var result) - ? result - : ScriptingLanguage.None; - } - - public void GenerateAndWriteSolutionAndProjects(Type[] types) - { - // Only synchronize islands that have associated source files and ones that we actually want in the project. - // This also filters out DLLs coming from .asmdef files in packages. - var assemblies = m_AssemblyNameProvider.GetAssemblies(ShouldFileBePartOfSolution); - - var allAssetProjectParts = GenerateAllAssetProjectParts(); - - var monoIslands = assemblies.ToList(); - - SyncSolution(monoIslands, types); - var allProjectIslands = RelevantIslandsForMode(monoIslands).ToList(); - foreach (Assembly assembly in allProjectIslands) - { - var responseFileData = ParseResponseFileData(assembly); - SyncProject(assembly, allAssetProjectParts, responseFileData, allProjectIslands, types); - } - } - - IEnumerable ParseResponseFileData(Assembly assembly) - { - var systemReferenceDirectories = - CompilationPipeline.GetSystemAssemblyDirectories(assembly.compilerOptions.ApiCompatibilityLevel); - - Dictionary responseFilesData = assembly.compilerOptions.ResponseFiles.ToDictionary( - x => x, x => m_AssemblyNameProvider.ParseResponseFile( - x, - ProjectDirectory, - systemReferenceDirectories - )); - - Dictionary responseFilesWithErrors = responseFilesData.Where(x => x.Value.Errors.Any()) - .ToDictionary(x => x.Key, x => x.Value); - - if (responseFilesWithErrors.Any()) - { - foreach (var error in responseFilesWithErrors) - foreach (var valueError in error.Value.Errors) - { - Debug.LogError($"{error.Key} Parse Error : {valueError}"); - } - } - - return responseFilesData.Select(x => x.Value); - } - - Dictionary GenerateAllAssetProjectParts() - { - Dictionary stringBuilders = new Dictionary(); - - foreach (string asset in m_AssemblyNameProvider.GetAllAssetPaths()) - { - // Exclude files coming from packages except if they are internalized. - if (!m_ShouldGenerateAll && IsInternalizedPackagePath(asset)) - { - continue; - } - - string extension = Path.GetExtension(asset); - if (IsSupportedExtension(extension) && ScriptingLanguage.None == ScriptingLanguageFor(extension)) - { - // Find assembly the asset belongs to by adding script extension and using compilation pipeline. - var assemblyName = m_AssemblyNameProvider.GetAssemblyNameFromScriptPath(asset + ".cs"); - - if (string.IsNullOrEmpty(assemblyName)) - { - continue; - } - - assemblyName = FileSystemUtil.FileNameWithoutExtension(assemblyName); - - if (!stringBuilders.TryGetValue(assemblyName, out var projectBuilder)) - { - projectBuilder = new StringBuilder(); - stringBuilders[assemblyName] = projectBuilder; - } - - projectBuilder.Append(" ") - .Append(Environment.NewLine); - } - } - - var result = new Dictionary(); - - foreach (var entry in stringBuilders) - result[entry.Key] = entry.Value.ToString(); - - return result; - } - - bool IsInternalizedPackagePath(string file) - { - if (string.IsNullOrWhiteSpace(file)) - { - return false; - } - - var packageInfo = m_AssemblyNameProvider.FindForAssetPath(file); - if (packageInfo == null) - { - return false; - } - - var packageSource = packageInfo.source; - return packageSource != PackageSource.Embedded && packageSource != PackageSource.Local; - } - - void SyncProject( - Assembly island, - Dictionary allAssetsProjectParts, - IEnumerable responseFilesData, - List allProjectIslands, - Type[] types) - { - SyncProjectFileIfNotChanged(ProjectFile(island), - ProjectText(island, allAssetsProjectParts, responseFilesData.ToList(), allProjectIslands), types); - } - - void SyncProjectFileIfNotChanged(string path, string newContents, Type[] types) - { - if (Path.GetExtension(path) == ".csproj") - { - newContents = OnGeneratedCSProject(path, newContents, types); - } - - SyncFileIfNotChanged(path, newContents); - } - - void SyncSolutionFileIfNotChanged(string path, string newContents, Type[] types) - { - newContents = OnGeneratedSlnSolution(path, newContents, types); - - SyncFileIfNotChanged(path, newContents); - } - - static List SafeGetTypes(System.Reflection.Assembly a) - { - List ret; - - try - { - ret = a.GetTypes().ToList(); - } - catch (System.Reflection.ReflectionTypeLoadException rtl) - { - ret = rtl.Types.ToList(); - } - catch (Exception) - { - return new List(); - } - - return ret.Where(r => r != null).ToList(); - } - - static void OnGeneratedCSProjectFiles(Type[] types) - { - var args = new object[0]; - foreach (var type in types) - { - var method = type.GetMethod("OnGeneratedCSProjectFiles", - System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | - System.Reflection.BindingFlags.Static); - if (method == null) - { - continue; - } - - method.Invoke(null, args); - } - } - - public static Type[] GetAssetPostprocessorTypes() - { - return TypeCache.GetTypesDerivedFrom().ToArray(); // doesn't find types from EditorPlugin, which is fine - } - - static bool OnPreGeneratingCSProjectFiles(Type[] types) - { - bool result = false; - foreach (var type in types) - { - var args = new object[0]; - var method = type.GetMethod("OnPreGeneratingCSProjectFiles", - System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | - System.Reflection.BindingFlags.Static); - if (method == null) - { - continue; - } - - var returnValue = method.Invoke(null, args); - if (method.ReturnType == typeof(bool)) - { - result |= (bool) returnValue; - } - } - - return result; - } - - static string OnGeneratedCSProject(string path, string content, Type[] types) - { - foreach (var type in types) - { - var args = new[] {path, content}; - var method = type.GetMethod("OnGeneratedCSProject", - System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | - System.Reflection.BindingFlags.Static); - if (method == null) - { - continue; - } - - var returnValue = method.Invoke(null, args); - if (method.ReturnType == typeof(string)) - { - content = (string) returnValue; - } - } - - return content; - } - - static string OnGeneratedSlnSolution(string path, string content, Type[] types) - { - foreach (var type in types) - { - var args = new[] {path, content}; - var method = type.GetMethod("OnGeneratedSlnSolution", - System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | - System.Reflection.BindingFlags.Static); - if (method == null) - { - continue; - } - - var returnValue = method.Invoke(null, args); - if (method.ReturnType == typeof(string)) - { - content = (string) returnValue; - } - } - - return content; - } - - void SyncFileIfNotChanged(string filename, string newContents) - { - try - { - if (m_FileIOProvider.Exists(filename) && newContents == m_FileIOProvider.ReadAllText(filename)) - { - return; - } - } - catch (Exception exception) - { - Debug.LogException(exception); - } - - m_FileIOProvider.WriteAllText(filename, newContents); - } - - string ProjectText(Assembly assembly, - Dictionary allAssetsProjectParts, - List responseFilesData, - List allProjectIslands) - { - var projectBuilder = new StringBuilder(ProjectHeader(assembly, responseFilesData)); - var references = new List(); - var projectReferences = new List(); - - foreach (string file in assembly.sourceFiles) - { - if (!ShouldFileBePartOfSolution(file)) - continue; - - var extension = Path.GetExtension(file).ToLower(); - var fullFile = EscapedRelativePathFor(file); - if (".dll" != extension) - { - projectBuilder.Append(" ").Append(Environment.NewLine); - } - else - { - references.Add(fullFile); - } - } - - // Append additional non-script files that should be included in project generation. - if (allAssetsProjectParts.TryGetValue(assembly.name, out var additionalAssetsForProject)) - projectBuilder.Append(additionalAssetsForProject); - - var islandRefs = references.Union(assembly.allReferences); - foreach (string reference in islandRefs) - { - if (reference.EndsWith("/UnityEditor.dll", StringComparison.Ordinal) - || reference.EndsWith("/UnityEngine.dll", StringComparison.Ordinal) - || reference.EndsWith("\\UnityEditor.dll", StringComparison.Ordinal) - || reference.EndsWith("\\UnityEngine.dll", StringComparison.Ordinal)) - continue; - - var match = k_ScriptReferenceExpression.Match(reference); - if (match.Success) - { - // assume csharp language - // Add a reference to a project except if it's a reference to a script assembly - // that we are not generating a project for. This will be the case for assemblies - // coming from .assembly.json files in non-internalized packages. - var dllName = match.Groups["dllname"].Value; - if (allProjectIslands.Any(i => Path.GetFileName(i.outputPath) == dllName)) - { - projectReferences.Add(match); - continue; - } - } - - string fullReference = Path.IsPathRooted(reference) ? reference : Path.Combine(ProjectDirectory, reference); - - AppendReference(fullReference, projectBuilder); - } - - var responseRefs = responseFilesData.SelectMany(x => x.FullPathReferences.Select(r => r)); - foreach (var reference in responseRefs) - { - AppendReference(reference, projectBuilder); - } - - if (0 < projectReferences.Count) - { - projectBuilder.AppendLine(" "); - projectBuilder.AppendLine(" "); - foreach (Match reference in projectReferences) - { - var referencedProject = reference.Groups["project"].Value; - - projectBuilder.Append(" ").Append(Environment.NewLine); - projectBuilder - .Append(" {") - .Append(m_GUIDGenerator.ProjectGuid(m_ProjectName, reference.Groups["project"].Value)) - .Append("}") - .Append(Environment.NewLine); - projectBuilder.Append(" ").Append(referencedProject).Append("").Append(Environment.NewLine); - projectBuilder.AppendLine(" "); - } - } - - projectBuilder.Append(ProjectFooter()); - return projectBuilder.ToString(); - } - - static void AppendReference(string fullReference, StringBuilder projectBuilder) - { - //replace \ with / and \\ with / - var escapedFullPath = SecurityElement.Escape(fullReference); - escapedFullPath = escapedFullPath.Replace("\\\\", "/").Replace("\\", "/"); - projectBuilder.Append(" ").Append(Environment.NewLine); - projectBuilder.Append(" ").Append(escapedFullPath).Append("").Append(Environment.NewLine); - projectBuilder.Append(" ").Append(Environment.NewLine); - } - - public string ProjectFile(Assembly assembly) - { - return Path.Combine(ProjectDirectory, $"{assembly.name}.csproj"); - } - - public string SolutionFile() - { - return Path.Combine(ProjectDirectory, $"{m_ProjectName}.sln"); - } - - string ProjectHeader( - Assembly assembly, - List responseFilesData - ) - { - var otherResponseFilesData = GetOtherArgumentsFromResponseFilesData(responseFilesData); - var arguments = new object[] - { - k_ToolsVersion, k_ProductVersion, m_GUIDGenerator.ProjectGuid(m_ProjectName, assembly.name), - InternalEditorUtility.GetEngineAssemblyPath(), - InternalEditorUtility.GetEditorAssemblyPath(), - string.Join(";", - new[] {"DEBUG", "TRACE"}.Concat(EditorUserBuildSettings.activeScriptCompilationDefines).Concat(assembly.defines) - .Concat(responseFilesData.SelectMany(x => x.Defines)).Distinct().ToArray()), - MSBuildNamespaceUri, - assembly.name, - EditorSettings.projectGenerationRootNamespace, - k_TargetFrameworkVersion, - GenerateLangVersion(otherResponseFilesData["langversion"]), - k_BaseDirectory, - assembly.compilerOptions.AllowUnsafeCode | responseFilesData.Any(x => x.Unsafe), - GenerateNoWarn(otherResponseFilesData["nowarn"].Distinct().ToArray()), - GenerateAnalyserItemGroup(otherResponseFilesData["analyzer"].Concat(otherResponseFilesData["a"]).SelectMany(x=>x.Split(';')).Distinct().ToArray()), - GenerateAnalyserAdditionalFiles(otherResponseFilesData["additionalfile"].SelectMany(x=>x.Split(';')).Distinct().ToArray()), - GenerateAnalyserRuleSet(otherResponseFilesData["ruleset"].Distinct().ToArray()), - GenerateWarningLevel(otherResponseFilesData["warn"].Concat(otherResponseFilesData["w"]).Distinct()), - GenerateWarningAsError(otherResponseFilesData["warnaserror"]), - GenerateDocumentationFile(otherResponseFilesData["doc"]) - }; - - try - { - return string.Format(GetProjectHeaderTemplate(), arguments); - } - catch (Exception) - { - throw new NotSupportedException( - "Failed creating c# project because the c# project header did not have the correct amount of arguments, which is " + - arguments.Length); - } - } - - private string GenerateDocumentationFile(IEnumerable paths) - { - if (!paths.Any()) - return String.Empty; - - - return $"{Environment.NewLine}{string.Join(Environment.NewLine, paths.Select(a => $" {a}"))}"; - } - - private string GenerateWarningAsError(IEnumerable enumerable) - { - string returnValue = String.Empty; - bool allWarningsAsErrors = false; - List warningIds = new List(); - - foreach (string s in enumerable) - { - if (s == "+") allWarningsAsErrors = true; - else if (s == "-") allWarningsAsErrors = false; - else - { - warningIds.Add(s); - } - } - - returnValue += $@" {allWarningsAsErrors}"; - if (warningIds.Any()) - { - returnValue += $"{Environment.NewLine} {string.Join(";", warningIds)}"; - } - - return $"{Environment.NewLine}{returnValue}"; - } - - private string GenerateWarningLevel(IEnumerable warningLevel) - { - var level = warningLevel.FirstOrDefault(); - if (!string.IsNullOrWhiteSpace(level)) - return level; - - return 4.ToString(); - } - - static string GetSolutionText() - { - return string.Join(Environment.NewLine, - @"", - @"Microsoft Visual Studio Solution File, Format Version {0}", - @"# Visual Studio {1}", - @"{2}", - @"Global", - @" GlobalSection(SolutionConfigurationPlatforms) = preSolution", - @" Debug|Any CPU = Debug|Any CPU", - @" Release|Any CPU = Release|Any CPU", - @" EndGlobalSection", - @" GlobalSection(ProjectConfigurationPlatforms) = postSolution", - @"{3}", - @" EndGlobalSection", - @" GlobalSection(SolutionProperties) = preSolution", - @" HideSolutionNode = FALSE", - @" EndGlobalSection", - @"EndGlobal", - @"").Replace(" ", "\t"); - } - - static string GetProjectFooterTemplate() - { - return string.Join(Environment.NewLine, - @" ", - @" ", - @" ", - @"", - @""); - } - - static string GetProjectHeaderTemplate() - { - var header = new[] - { - @"", - @"", - @" ", - @" {10}", - @" <_TargetFrameworkDirectories>non_empty_path_generated_by_unity.rider.package", - @" <_FullFrameworkReferenceAssemblyPaths>non_empty_path_generated_by_unity.rider.package", - @" true{16}", - @" ", - @" ", - @" Debug", - @" AnyCPU", - @" {1}", - @" 2.0", - @" {8}", - @" {{{2}}}", - @" Library", - @" Properties", - @" {7}", - @" {9}", - @" 512", - @" {11}", - @" ", - @" ", - @" true", - @" full", - @" false", - @" Temp\bin\Debug\", - @" {5}", - @" prompt", - @" {17}", - @" 0169{13}", - @" {12}{18}{19}", - @" ", - @" ", - @" pdbonly", - @" true", - @" Temp\bin\Release\", - @" prompt", - @" {17}", - @" 0169{13}", - @" {12}{18}{19}", - @" " - }; - - var forceExplicitReferences = new[] - { - @" ", - @" true", - @" true", - @" false", - @" false", - @" false", - @" " - }; - - var itemGroupStart = new[] - { - @" " - }; - - var footer = new[] - { - @" ", - @" {3}", - @" ", - @" ", - @" {4}", - @" ", - @" {14}{15}", - @" ", - @"" - }; - - var pieces = header.Concat(forceExplicitReferences).Concat(itemGroupStart).Concat(footer).ToArray(); - return string.Join(Environment.NewLine, pieces); - } - - void SyncSolution(IEnumerable islands, Type[] types) - { - SyncSolutionFileIfNotChanged(SolutionFile(), SolutionText(islands), types); - } - - string SolutionText(IEnumerable islands) - { - var fileversion = "11.00"; - var vsversion = "2010"; - - var relevantIslands = RelevantIslandsForMode(islands); - string projectEntries = GetProjectEntries(relevantIslands); - string projectConfigurations = string.Join(Environment.NewLine, - relevantIslands.Select(i => GetProjectActiveConfigurations(m_GUIDGenerator.ProjectGuid(m_ProjectName, i.name))).ToArray()); - return string.Format(GetSolutionText(), fileversion, vsversion, projectEntries, projectConfigurations); - } - - private static string GenerateAnalyserItemGroup(string[] paths) - { - // - // - // - // - if (!paths.Any()) - return string.Empty; - - var analyserBuilder = new StringBuilder(); - analyserBuilder.AppendLine(" "); - foreach (var path in paths) - { - analyserBuilder.AppendLine($" "); - } - analyserBuilder.AppendLine(" "); - return analyserBuilder.ToString(); - } - - private static ILookup GetOtherArgumentsFromResponseFilesData(List responseFilesData) - { - var paths = responseFilesData.SelectMany(x => - { - return x.OtherArguments - .Where(a => a.StartsWith("/") || a.StartsWith("-")) - .Select(b => - { - var index = b.IndexOf(":", StringComparison.Ordinal); - if (index > 0 && b.Length > index) - { - var key = b.Substring(1, index - 1); - return new KeyValuePair(key, b.Substring(index + 1)); - } - - const string warnaserror = "warnaserror"; - if (b.Substring(1).StartsWith(warnaserror)) - { - return new KeyValuePair(warnaserror, b.Substring(warnaserror.Length+ 1) ); - } - - return default; - }); - }) - .Distinct() - .ToLookup(o => o.Key, pair => pair.Value); - return paths; - } - - private string GenerateLangVersion(IEnumerable langVersionList) - { - var langVersion = langVersionList.FirstOrDefault(); - if (!string.IsNullOrWhiteSpace(langVersion)) - return langVersion; - return k_TargetLanguageVersion; - } - - private static string GenerateAnalyserRuleSet(string[] paths) - { - //..\path\to\myrules.ruleset - if (!paths.Any()) - return string.Empty; - - return $"{Environment.NewLine}{string.Join(Environment.NewLine, paths.Select(a => $" {a}"))}"; - } - - private static string GenerateAnalyserAdditionalFiles(string[] paths) - { - if (!paths.Any()) - return string.Empty; - - - var analyserBuilder = new StringBuilder(); - analyserBuilder.AppendLine(" "); - foreach (var path in paths) - { - analyserBuilder.AppendLine($" "); - } - analyserBuilder.AppendLine(" "); - return analyserBuilder.ToString(); - } - - private static string GenerateNoWarn(string[] codes) - { - if (!codes.Any()) - return string.Empty; - - return $",{string.Join(",", codes)}"; - } - - static IEnumerable RelevantIslandsForMode(IEnumerable islands) - { - IEnumerable relevantIslands = islands.Where(i => ScriptingLanguage.CSharp == ScriptingLanguageFor(i)); - return relevantIslands; - } - - /// - /// Get a Project("{guid}") = "MyProject", "MyProject.unityproj", "{projectguid}" - /// entry for each relevant language - /// - string GetProjectEntries(IEnumerable islands) - { - var projectEntries = islands.Select(i => string.Format( - m_SolutionProjectEntryTemplate, - m_GUIDGenerator.SolutionGuid(m_ProjectName, GetExtensionOfSourceFiles(i.sourceFiles)), - i.name, - Path.GetFileName(ProjectFile(i)), - m_GUIDGenerator.ProjectGuid(m_ProjectName, i.name) - )); - - return string.Join(Environment.NewLine, projectEntries.ToArray()); - } - - /// - /// Generate the active configuration string for a given project guid - /// - string GetProjectActiveConfigurations(string projectGuid) - { - return string.Format( - m_SolutionProjectConfigurationTemplate, - projectGuid); - } - - string EscapedRelativePathFor(string file) - { - var projectDir = ProjectDirectory.Replace('/', '\\'); - file = file.Replace('/', '\\'); - var path = SkipPathPrefix(file, projectDir); - - var packageInfo = m_AssemblyNameProvider.FindForAssetPath(path.Replace('\\', '/')); - if (packageInfo != null) - { - // We have to normalize the path, because the PackageManagerRemapper assumes - // dir seperators will be os specific. - var absolutePath = Path.GetFullPath(NormalizePath(path)).Replace('/', '\\'); - path = SkipPathPrefix(absolutePath, projectDir); - } - - return SecurityElement.Escape(path); - } - - static string SkipPathPrefix(string path, string prefix) - { - if (path.Replace("\\", "/").StartsWith($"{prefix}/")) - return path.Substring(prefix.Length + 1); - return path; - } - - static string NormalizePath(string path) - { - if (Path.DirectorySeparatorChar == '\\') - return path.Replace('/', Path.DirectorySeparatorChar); - return path.Replace('\\', Path.DirectorySeparatorChar); - } - - static string ProjectFooter() - { - return GetProjectFooterTemplate(); - } - - static string GetProjectExtension() - { - return ".csproj"; - } - } - - public static class SolutionGuidGenerator - { - public static string GuidForProject(string projectName) - { - return ComputeGuidHashFor(projectName + "salt"); - } - - public static string GuidForSolution(string projectName, string sourceFileExtension) - { - if (sourceFileExtension.ToLower() == "cs") - // GUID for a C# class library: http://www.codeproject.com/Reference/720512/List-of-Visual-Studio-Project-Type-GUIDs - return "FAE04EC0-301F-11D3-BF4B-00C04F79EFBC"; - - return ComputeGuidHashFor(projectName); - } - - static string ComputeGuidHashFor(string input) - { - var hash = MD5.Create().ComputeHash(Encoding.Default.GetBytes(input)); - return HashAsGuid(HashToString(hash)); - } - - static string HashAsGuid(string hash) - { - var guid = hash.Substring(0, 8) + "-" + hash.Substring(8, 4) + "-" + hash.Substring(12, 4) + "-" + - hash.Substring(16, 4) + "-" + hash.Substring(20, 12); - return guid.ToUpper(); - } - - static string HashToString(byte[] bs) - { - var sb = new StringBuilder(); - foreach (byte b in bs) - sb.Append(b.ToString("x2")); - return sb.ToString(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderInitializer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderInitializer.cs deleted file mode 100644 index f64ee8d..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderInitializer.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System; -using System.IO; -using UnityEngine; -using Debug = UnityEngine.Debug; - -namespace Packages.Rider.Editor -{ - internal class RiderInitializer - { - public void Initialize(string editorPath) - { - var assembly = EditorPluginInterop.EditorPluginAssembly; - if (EditorPluginInterop.EditorPluginIsLoadedFromAssets(assembly)) - { - Debug.LogError($"Please delete {assembly.Location}. Unity 2019.2+ loads it directly from Rider installation. To disable this, open Rider's settings, search and uncheck 'Automatically install and update Rider's Unity editor plugin'."); - return; - } - - var dllName = "JetBrains.Rider.Unity.Editor.Plugin.Full.Repacked.dll"; - var relPath = "../../plugins/rider-unity/EditorPlugin"; - if (SystemInfo.operatingSystemFamily == OperatingSystemFamily.MacOSX) - relPath = "Contents/plugins/rider-unity/EditorPlugin"; - var dllFile = new FileInfo(Path.Combine(Path.Combine(editorPath, relPath), dllName)); - - if (dllFile.Exists) - { - var bytes = File.ReadAllBytes(dllFile.FullName); - assembly = AppDomain.CurrentDomain.Load(bytes); // doesn't lock assembly on disk - // assembly = AppDomain.CurrentDomain.Load(AssemblyName.GetAssemblyName(dllFile.FullName)); // use this for external source debug - EditorPluginInterop.InitEntryPoint(assembly); - } - else - { - Debug.Log($"Unable to find Rider EditorPlugin {dllFile.FullName} for Unity "); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditor.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditor.cs deleted file mode 100644 index c53c6b1..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditor.cs +++ /dev/null @@ -1,404 +0,0 @@ -using System; -using System.Diagnostics; -using System.IO; -using System.Linq; -using Packages.Rider.Editor.Util; -using Unity.CodeEditor; -using UnityEditor; -using UnityEngine; -using Debug = UnityEngine.Debug; - -namespace Packages.Rider.Editor -{ - [InitializeOnLoad] - public class RiderScriptEditor : IExternalCodeEditor - { - IDiscovery m_Discoverability; - IGenerator m_ProjectGeneration; - RiderInitializer m_Initiliazer = new RiderInitializer(); - - static RiderScriptEditor() - { - try - { - var projectGeneration = new ProjectGeneration(); - var editor = new RiderScriptEditor(new Discovery(), projectGeneration); - CodeEditor.Register(editor); - var path = GetEditorRealPath(CodeEditor.CurrentEditorInstallation); - - if (IsRiderInstallation(path)) - { - if (!RiderScriptEditorData.instance.InitializedOnce) - { - var installations = editor.Installations; - // is toolbox and outdated - update - if (installations.Any() && RiderPathLocator.IsToolbox(path) && installations.All(a => a.Path != path)) - { - var toolboxInstallations = installations.Where(a => a.Name.Contains("(JetBrains Toolbox)")).ToArray(); - if (toolboxInstallations.Any()) - { - var newEditor = toolboxInstallations.Last().Path; - CodeEditor.SetExternalScriptEditor(newEditor); - path = newEditor; - } - else - { - var newEditor = installations.Last().Path; - CodeEditor.SetExternalScriptEditor(newEditor); - path = newEditor; - } - } - - // exists, is non toolbox and outdated - notify - if (installations.Any() && FileSystemUtil.EditorPathExists(path) && installations.All(a => a.Path != path)) - { - var newEditorName = installations.Last().Name; - Debug.LogWarning($"Consider updating External Editor in Unity to Rider {newEditorName}."); - } - - ShowWarningOnUnexpectedScriptEditor(path); - RiderScriptEditorData.instance.InitializedOnce = true; - } - - if (!FileSystemUtil.EditorPathExists(path)) // previously used rider was removed - { - var installations = editor.Installations; - if (installations.Any()) - { - var newEditor = installations.Last().Path; - CodeEditor.SetExternalScriptEditor(newEditor); - path = newEditor; - } - } - RiderScriptEditorData.instance.Init(); - - editor.CreateSolutionIfDoesntExist(); - if (RiderScriptEditorData.instance.shouldLoadEditorPlugin) - { - editor.m_Initiliazer.Initialize(path); - } - - InitProjectFilesWatcher(); - } - } - catch (Exception e) - { - Debug.LogException(e); - } - } - - private static void ShowWarningOnUnexpectedScriptEditor(string path) - { - // Show warning, when Unity was started from Rider, but external editor is different https://github.com/JetBrains/resharper-unity/issues/1127 - var args = Environment.GetCommandLineArgs(); - var commandlineParser = new CommandLineParser(args); - if (commandlineParser.Options.ContainsKey("-riderPath")) - { - var originRiderPath = commandlineParser.Options["-riderPath"]; - var originRealPath = GetEditorRealPath(originRiderPath); - var originVersion = RiderPathLocator.GetBuildNumber(originRealPath); - var version = RiderPathLocator.GetBuildNumber(path); - if (originVersion != string.Empty && originVersion != version) - { - Debug.LogWarning("Unity was started by a version of Rider that is not the current default external editor. Advanced integration features cannot be enabled."); - Debug.Log($"Unity was started by Rider {originVersion}, but external editor is set to: {path}"); - } - } - } - - private static void InitProjectFilesWatcher() - { - var watcher = new FileSystemWatcher(); - watcher.Path = Directory.GetCurrentDirectory(); - watcher.NotifyFilter = NotifyFilters.LastWrite; //Watch for changes in LastWrite times - watcher.Filter = "*.*"; - - // Add event handlers. - watcher.Changed += OnChanged; - watcher.Created += OnChanged; - - watcher.EnableRaisingEvents = true; // Begin watching. - - AppDomain.CurrentDomain.DomainUnload += (EventHandler) ((_, __) => - { - watcher.Dispose(); - }); - } - - private static void OnChanged(object sender, FileSystemEventArgs e) - { - var extension = Path.GetExtension(e.FullPath); - if (extension == ".sln" || extension == ".csproj") - RiderScriptEditorData.instance.HasChanges = true; - } - - internal static string GetEditorRealPath(string path) - { - if (string.IsNullOrEmpty(path)) - { - return path; - } - - if (!FileSystemUtil.EditorPathExists(path)) - return path; - - if (SystemInfo.operatingSystemFamily != OperatingSystemFamily.Windows) - { - var realPath = FileSystemUtil.GetFinalPathName(path); - - // case of snap installation - if (SystemInfo.operatingSystemFamily == OperatingSystemFamily.Linux) - { - if (new FileInfo(path).Name.ToLowerInvariant() == "rider" && - new FileInfo(realPath).Name.ToLowerInvariant() == "snap") - { - var snapInstallPath = "/snap/rider/current/bin/rider.sh"; - if (new FileInfo(snapInstallPath).Exists) - return snapInstallPath; - } - } - - // in case of symlink - return realPath; - } - - return path; - } - - const string unity_generate_all = "unity_generate_all_csproj"; - - public RiderScriptEditor(IDiscovery discovery, IGenerator projectGeneration) - { - m_Discoverability = discovery; - m_ProjectGeneration = projectGeneration; - } - - private static string[] defaultExtensions - { - get - { - var customExtensions = new[] {"json", "asmdef", "log", "xaml"}; - return EditorSettings.projectGenerationBuiltinExtensions.Concat(EditorSettings.projectGenerationUserExtensions) - .Concat(customExtensions).Distinct().ToArray(); - } - } - - private static string[] HandledExtensions - { - get - { - return HandledExtensionsString.Split(new[] {';'}, StringSplitOptions.RemoveEmptyEntries).Select(s => s.TrimStart('.', '*')) - .ToArray(); - } - } - - private static string HandledExtensionsString - { - get { return EditorPrefs.GetString("Rider_UserExtensions", string.Join(";", defaultExtensions));} - set { EditorPrefs.SetString("Rider_UserExtensions", value); } - } - - private static bool SupportsExtension(string path) - { - var extension = Path.GetExtension(path); - if (string.IsNullOrEmpty(extension)) - return false; - return HandledExtensions.Contains(extension.TrimStart('.')); - } - - public void OnGUI() - { - var prevGenerate = EditorPrefs.GetBool(unity_generate_all, false); - var generateAll = EditorGUILayout.Toggle("Generate all .csproj files.", prevGenerate); - if (generateAll != prevGenerate) - { - EditorPrefs.SetBool(unity_generate_all, generateAll); - } - - m_ProjectGeneration.GenerateAll(generateAll); - - if (RiderScriptEditorData.instance.shouldLoadEditorPlugin) - { - HandledExtensionsString = EditorGUILayout.TextField(new GUIContent("Extensions handled: "), HandledExtensionsString); - } - } - - public void SyncIfNeeded(string[] addedFiles, string[] deletedFiles, string[] movedFiles, string[] movedFromFiles, - string[] importedFiles) - { - m_ProjectGeneration.SyncIfNeeded(addedFiles.Union(deletedFiles).Union(movedFiles).Union(movedFromFiles), - importedFiles); - } - - public void SyncAll() - { - AssetDatabase.Refresh(); - if (RiderScriptEditorData.instance.HasChanges) - { - m_ProjectGeneration.Sync(); - RiderScriptEditorData.instance.HasChanges = false; - } - } - - public void Initialize(string editorInstallationPath) // is called each time ExternalEditor is changed - { - RiderScriptEditorData.instance.Invalidate(editorInstallationPath); - m_ProjectGeneration.Sync(); // regenerate csproj and sln for new editor - } - - public bool OpenProject(string path, int line, int column) - { - if (path != "" && !SupportsExtension(path)) // Assets - Open C# Project passes empty path here - { - return false; - } - - if (path == "" && SystemInfo.operatingSystemFamily == OperatingSystemFamily.MacOSX) - { - // there is a bug in DllImplementation - use package implementation here instead https://github.cds.internal.unity3d.com/unity/com.unity.ide.rider/issues/21 - return OpenOSXApp(path, line, column); - } - - if (!IsUnityScript(path)) - { - var fastOpenResult = EditorPluginInterop.OpenFileDllImplementation(path, line, column); - if (fastOpenResult) - return true; - } - - if (SystemInfo.operatingSystemFamily == OperatingSystemFamily.MacOSX) - { - return OpenOSXApp(path, line, column); - } - - var solution = GetSolutionFile(path); // TODO: If solution file doesn't exist resync. - solution = solution == "" ? "" : $"\"{solution}\""; - var process = new Process - { - StartInfo = new ProcessStartInfo - { - FileName = CodeEditor.CurrentEditorInstallation, - Arguments = $"{solution} -l {line} \"{path}\"", - UseShellExecute = true, - } - }; - - process.Start(); - - return true; - } - - private bool OpenOSXApp(string path, int line, int column) - { - var solution = GetSolutionFile(path); // TODO: If solution file doesn't exist resync. - solution = solution == "" ? "" : $"\"{solution}\""; - var pathArguments = path == "" ? "" : $"-l {line} \"{path}\""; - var process = new Process - { - StartInfo = new ProcessStartInfo - { - FileName = "open", - Arguments = $"-n \"{CodeEditor.CurrentEditorInstallation}\" --args {solution} {pathArguments}", - CreateNoWindow = true, - UseShellExecute = true, - } - }; - - process.Start(); - - return true; - } - - private string GetSolutionFile(string path) - { - if (IsUnityScript(path)) - { - return Path.Combine(GetBaseUnityDeveloperFolder(), "Projects/CSharp/Unity.CSharpProjects.gen.sln"); - } - - var solutionFile = m_ProjectGeneration.SolutionFile(); - if (File.Exists(solutionFile)) - { - return solutionFile; - } - - return ""; - } - - static bool IsUnityScript(string path) - { - if (UnityEditor.Unsupported.IsDeveloperBuild()) - { - var baseFolder = GetBaseUnityDeveloperFolder().Replace("\\", "/"); - var lowerPath = path.ToLowerInvariant().Replace("\\", "/"); - - if (lowerPath.Contains((baseFolder + "/Runtime").ToLowerInvariant()) - || lowerPath.Contains((baseFolder + "/Editor").ToLowerInvariant())) - { - return true; - } - } - - return false; - } - - static string GetBaseUnityDeveloperFolder() - { - return Directory.GetParent(EditorApplication.applicationPath).Parent.Parent.FullName; - } - - public bool TryGetInstallationForPath(string editorPath, out CodeEditor.Installation installation) - { - if (FileSystemUtil.EditorPathExists(editorPath) && IsRiderInstallation(editorPath)) - { - var info = new RiderPathLocator.RiderInfo(editorPath, false); - installation = new CodeEditor.Installation - { - Name = info.Presentation, - Path = info.Path - }; - return true; - } - - installation = default; - return false; - } - - public static bool IsRiderInstallation(string path) - { - if (IsAssetImportWorkerProcess()) - return false; - - if (string.IsNullOrEmpty(path)) - { - return false; - } - - var fileInfo = new FileInfo(path); - var filename = fileInfo.Name.ToLowerInvariant(); - return filename.StartsWith("rider", StringComparison.Ordinal); - } - - private static bool IsAssetImportWorkerProcess() - { -#if UNITY_2019_3_OR_NEWER - return UnityEditor.Experimental.AssetDatabaseExperimental.IsAssetImportWorkerProcess(); -#else - return false; -#endif - } - - public static string CurrentEditor // works fast, doesn't validate if executable really exists - => EditorPrefs.GetString("kScriptsDefaultApp"); - - public CodeEditor.Installation[] Installations => m_Discoverability.PathCallback(); - - public void CreateSolutionIfDoesntExist() - { - if (!m_ProjectGeneration.HasSolutionBeenGenerated()) - { - m_ProjectGeneration.Sync(); - } - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditorData.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditorData.cs deleted file mode 100644 index 47c7781..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditorData.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using UnityEditor; -using UnityEngine; - -namespace Packages.Rider.Editor -{ - public class RiderScriptEditorData : ScriptableSingleton - { - [SerializeField] internal bool HasChanges = true; // sln/csproj files were changed - [SerializeField] internal bool shouldLoadEditorPlugin; - [SerializeField] internal bool InitializedOnce; - [SerializeField] internal string currentEditorVersion; - - public void Init() - { - if (string.IsNullOrEmpty(currentEditorVersion)) - Invalidate(RiderScriptEditor.CurrentEditor); - } - - public void Invalidate(string editorInstallationPath) - { - currentEditorVersion = RiderPathLocator.GetBuildNumber(editorInstallationPath); - if (!Version.TryParse(currentEditorVersion, out var version)) - shouldLoadEditorPlugin = false; - - shouldLoadEditorPlugin = version >= new Version("191.7141.156"); - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackData.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackData.cs deleted file mode 100644 index 99232f6..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackData.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Collections.Generic; -using JetBrains.Annotations; -using UnityEditor; - -namespace Packages.Rider.Editor.UnitTesting -{ - public class CallbackData : ScriptableSingleton - { - public bool isRider; - - [UsedImplicitly] public static event EventHandler Changed = (sender, args) => { }; - - internal void RaiseChangedEvent() - { - Changed(null, EventArgs.Empty); - } - - public List events = new List(); - - [UsedImplicitly] - public void Clear() - { - events.Clear(); - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackInitializer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackInitializer.cs deleted file mode 100644 index f9dc5b9..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackInitializer.cs +++ /dev/null @@ -1,18 +0,0 @@ -#if TEST_FRAMEWORK -using UnityEditor; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine; - -namespace Packages.Rider.Editor.UnitTesting -{ - [InitializeOnLoad] - internal static class CallbackInitializer - { - static CallbackInitializer() - { - if (CallbackData.instance.isRider) - ScriptableObject.CreateInstance().RegisterCallbacks(ScriptableObject.CreateInstance(), 0); - } - } -} -#endif \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/RiderTestRunner.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/RiderTestRunner.cs deleted file mode 100644 index eb3b249..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/RiderTestRunner.cs +++ /dev/null @@ -1,47 +0,0 @@ -using JetBrains.Annotations; -using UnityEngine; -#if TEST_FRAMEWORK -using UnityEditor; -using UnityEditor.TestTools.TestRunner.Api; -#endif - -namespace Packages.Rider.Editor.UnitTesting -{ - public static class RiderTestRunner - { -#if TEST_FRAMEWORK - private static readonly TestsCallback Callback = ScriptableObject.CreateInstance(); -#endif - [UsedImplicitly] - public static void RunTests(int testMode, string[] assemblyNames, string[] testNames, string[] categoryNames, string[] groupNames, int? buildTarget) - { -#if !TEST_FRAMEWORK - Debug.LogError("Update Test Framework package to v.1.1.1+ to run tests from Rider."); -#else - CallbackData.instance.isRider = true; - - var api = ScriptableObject.CreateInstance(); - var settings = new ExecutionSettings(); - var filter = new Filter - { - assemblyNames = assemblyNames, - testNames = testNames, - categoryNames = categoryNames, - groupNames = groupNames, - targetPlatform = (BuildTarget?) buildTarget - }; - - if (testMode > 0) // for future use - test-framework would allow running both Edit and Play test at once - filter.testMode = (TestMode) testMode; - - settings.filters = new []{ - filter - }; - api.Execute(settings); - - api.UnregisterCallbacks(Callback); // avoid multiple registrations - api.RegisterCallbacks(Callback); // This can be used to receive information about when the test suite and individual tests starts and stops. Provide this with a scriptable object implementing ICallbacks -#endif - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestEvent.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestEvent.cs deleted file mode 100644 index 9e3fff2..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestEvent.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using NUnit.Framework.Interfaces; - -namespace Packages.Rider.Editor.UnitTesting -{ - [Serializable] - public enum EventType { TestStarted, TestFinished, RunFinished } - - [Serializable] - public class TestEvent - { - public EventType type; - public string id; - public string assemblyName; - public string output; - public TestStatus testStatus; - public double duration; - public string parentId; - - public TestEvent(EventType type, string id, string assemblyName, string output, double duration, TestStatus testStatus, string parentID) - { - this.type = type; - this.id = id; - this.assemblyName = assemblyName; - this.output = output; - this.testStatus = testStatus; - this.duration = duration; - parentId = parentID; - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestsCallback.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestsCallback.cs deleted file mode 100644 index b6a5637..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestsCallback.cs +++ /dev/null @@ -1,83 +0,0 @@ -#if TEST_FRAMEWORK -using System; -using System.Text; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine; - -namespace Packages.Rider.Editor.UnitTesting -{ - public class TestsCallback : ScriptableObject, ICallbacks - { - public void RunFinished(ITestResultAdaptor result) - { - CallbackData.instance.isRider = false; - - CallbackData.instance.events.Add( - new TestEvent(EventType.RunFinished, "", "","", 0, ParseTestStatus(result.TestStatus), "")); - CallbackData.instance.RaiseChangedEvent(); - } - - public void TestStarted(ITestAdaptor result) - { - if (result.Method == null) return; - - CallbackData.instance.events.Add( - new TestEvent(EventType.TestStarted, GetUniqueName(result), result.Method.TypeInfo.Assembly.GetName().Name, "", 0, ParseTestStatus(TestStatus.Passed), result.ParentFullName)); - CallbackData.instance.RaiseChangedEvent(); - } - - public void TestFinished(ITestResultAdaptor result) - { - if (result.Test.Method == null) return; - - CallbackData.instance.events.Add( - new TestEvent(EventType.TestFinished, GetUniqueName(result.Test), result.Test.Method.TypeInfo.Assembly.GetName().Name, ExtractOutput(result), result.Duration, ParseTestStatus(result.TestStatus), result.Test.ParentFullName)); - CallbackData.instance.RaiseChangedEvent(); - } - - // todo: reimplement JetBrains.Rider.Unity.Editor.AfterUnity56.UnitTesting.TestEventsSender.GetUniqueName - private static string GetUniqueName(ITestAdaptor test) - { - string str = test.FullName; - return str; - } - - public void RunStarted(ITestAdaptor testsToRun) - { - } - - private static NUnit.Framework.Interfaces.TestStatus ParseTestStatus(TestStatus testStatus) - { - return (NUnit.Framework.Interfaces.TestStatus)Enum.Parse(typeof(NUnit.Framework.Interfaces.TestStatus), testStatus.ToString()); - } - - private static string ExtractOutput(ITestResultAdaptor testResult) - { - var stringBuilder = new StringBuilder(); - if (testResult.Message != null) - { - stringBuilder.AppendLine("Message: "); - stringBuilder.AppendLine(testResult.Message); - } - - if (!string.IsNullOrEmpty(testResult.Output)) - { - stringBuilder.AppendLine("Output: "); - stringBuilder.AppendLine(testResult.Output); - } - - if (!string.IsNullOrEmpty(testResult.StackTrace)) - { - stringBuilder.AppendLine("Stacktrace: "); - stringBuilder.AppendLine(testResult.StackTrace); - } - - var result = stringBuilder.ToString(); - if (result.Length > 0) - return result; - - return testResult.Output ?? string.Empty; - } - } -} -#endif \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/CommandLineParser.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/CommandLineParser.cs deleted file mode 100644 index 4d4d3c9..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/CommandLineParser.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Collections.Generic; - -namespace Packages.Rider.Editor.Util -{ - public class CommandLineParser - { - public Dictionary Options = new Dictionary(); - - public CommandLineParser(string[] args) - { - var i = 0; - while (i < args.Length) - { - var arg = args[i]; - if (!arg.StartsWith("-")) - { - i++; - continue; - } - - string value = null; - if (i + 1 < args.Length && !args[i + 1].StartsWith("-")) - { - value = args[i + 1]; - i++; - } - - if (!(Options.ContainsKey(arg))) - { - Options.Add(arg, value); - } - i++; - } - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/FileSystemUtil.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/FileSystemUtil.cs deleted file mode 100644 index 1ee32cc..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/FileSystemUtil.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; -using System.ComponentModel; -using System.IO; -using System.Text; -using JetBrains.Annotations; -using UnityEngine; - -namespace Packages.Rider.Editor.Util -{ - public static class FileSystemUtil - { - [NotNull] - public static string GetFinalPathName([NotNull] string path) - { - if (path == null) throw new ArgumentNullException("path"); - - // up to MAX_PATH. MAX_PATH on Linux currently 4096, on Mac OS X 1024 - // doc: http://man7.org/linux/man-pages/man3/realpath.3.html - var sb = new StringBuilder(8192); - var result = LibcNativeInterop.realpath(path, sb); - if (result == IntPtr.Zero) - { - throw new Win32Exception($"{path} was not resolved."); - } - - return new FileInfo(sb.ToString()).FullName; - } - - public static string FileNameWithoutExtension(string path) - { - if (string.IsNullOrEmpty(path)) - { - return ""; - } - - var indexOfDot = -1; - var indexOfSlash = 0; - for (var i = path.Length - 1; i >= 0; i--) - { - if (indexOfDot == -1 && path[i] == '.') - { - indexOfDot = i; - } - - if (indexOfSlash == 0 && path[i] == '/' || path[i] == '\\') - { - indexOfSlash = i + 1; - break; - } - } - - if (indexOfDot == -1) - { - indexOfDot = path.Length; - } - - return path.Substring(indexOfSlash, indexOfDot - indexOfSlash); - } - - public static bool EditorPathExists(string editorPath) - { - return SystemInfo.operatingSystemFamily == OperatingSystemFamily.MacOSX && new DirectoryInfo(editorPath).Exists - || SystemInfo.operatingSystemFamily != OperatingSystemFamily.MacOSX && new FileInfo(editorPath).Exists; - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/LibcNativeInterop.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/LibcNativeInterop.cs deleted file mode 100644 index 5f023f9..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/LibcNativeInterop.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Runtime.InteropServices; -using System.Text; - -namespace Packages.Rider.Editor.Util -{ - internal static class LibcNativeInterop - { - [DllImport("libc", SetLastError = true)] - public static extern IntPtr realpath(string path, StringBuilder resolved_path); - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/RiderMenu.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/RiderMenu.cs deleted file mode 100644 index 1909342..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/RiderMenu.cs +++ /dev/null @@ -1,25 +0,0 @@ -using JetBrains.Annotations; -using Packages.Rider.Editor; -using Unity.CodeEditor; - -// Is called via commandline from Rider Notification after checking out from source control. - -// ReSharper disable once CheckNamespace -namespace JetBrains.Rider.Unity.Editor -{ - public static class RiderMenu - { - [UsedImplicitly] - public static void MenuOpenProject() - { - if (RiderScriptEditor.IsRiderInstallation(RiderScriptEditor.CurrentEditor)) - { - // Force the project files to be sync - CodeEditor.CurrentEditor.SyncAll(); - - // Load Project - CodeEditor.CurrentEditor.OpenProject(); - } - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/UnityUtils.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/UnityUtils.cs deleted file mode 100644 index de03492..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/UnityUtils.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Linq; -using UnityEngine; - -namespace Packages.Rider.Editor.Util -{ - public static class UnityUtils - { - internal static readonly string UnityApplicationVersion = Application.unityVersion; - - public static Version UnityVersion - { - get - { - var ver = UnityApplicationVersion.Split(".".ToCharArray()).Take(2).Aggregate((a, b) => a + "." + b); - return new Version(ver); - } - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/com.unity.ide.rider.asmdef b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/com.unity.ide.rider.asmdef deleted file mode 100644 index ad87d48..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/com.unity.ide.rider.asmdef +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Unity.Rider.Editor", - "references": [ - "GUID:0acc523941302664db1f4e527237feb3" - ], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [], - "versionDefines": [ - { - "name": "com.unity.test-framework", - "expression": "1.1.1", - "define": "TEST_FRAMEWORK" - } - ] -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/package.json b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/package.json deleted file mode 100644 index 7159e5f..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.rider@1.1.4/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "com.unity.ide.rider", - "displayName": "Rider Editor", - "description": "Code editor integration for supporting Rider as code editor for unity. Adds support for generating csproj files for code completion, auto discovery of installations, etc.", - "version": "1.1.4", - "unity": "2019.2", - "unityRelease": "0a12", - "dependencies": { - "com.unity.test-framework": "1.1.3" - }, - "relatedPackages": { - "com.unity.ide.rider.tests": "1.1.4" - }, - "repository": { - "type": "git", - "url": "git@github.cds.internal.unity3d.com:unity/com.unity.ide.rider.git", - "revision": "d2ef95989104a4ce866cdcb7f94cf3c67476fcc9" - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/CHANGELOG.md b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/CHANGELOG.md deleted file mode 100644 index 20f4072..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/CHANGELOG.md +++ /dev/null @@ -1,79 +0,0 @@ -# Code Editor Package for Visual Studio Code - -## [1.2.3] - 2020-10-23 - -Remove workaround for VSCode omnisharp (as of https://github.com/OmniSharp/omnisharp-vscode/issues/4113 we no longer need to disable the referenceoutputassemblies). - - -## [1.2.2] - 2020-09-04 - -VSC-14 - synchronize solution file when adding new assembly - - -## [1.2.1] - 2020-05-15 - -Source filtering adds support for asmref - - -## [1.2.0] - 2020-03-04 - -Do not reference projects that has not been generated (case 1211057) -Only open files that exists (case 1188394) -Add individual toggle buttons for generating csprojects for packages -Add support for Roslyn analyzers in project generation through csc.rsp and compiled assembly references -Remove Release build target from csproj and sln - - -## [1.1.4] - 2020-01-02 - -Delta project generation, only recompute the csproj files whose script modified. - - -## [1.1.3] - 2019-10-22 - -Exe version of vscode will use Normal ProcessWindowStyle while cmd will use Hidden - - -## [1.1.2] - 2019-08-30 - -Fixing OSX open command arguments - - -## [1.1.1] - 2019-08-19 - -Support for Player Project. Generates specific csproj files containing files, reference, defines, -etc. that will show how the assembly will be compiled for a target platform. - - -## [1.1.0] - 2019-08-07 - -Adds support for choosing extensions to be opened with VSCode. This can be done through the GUI in Preferences. -Avoids opening all extensions after the change in core unity. - - -## [1.0.7] - 2019-05-15 - -Fix various OSX specific issues. -Generate project on load if they are not generated. -Fix path recognition. - - -## [1.0.6] - 2019-04-30 - -Ensure asset database is refreshed when generating csproj and solution files. - -## [1.0.5] - 2019-04-27 - -Add support for generating all csproj files. - -## [1.0.4] - 2019-04-18 - -Fix relative package paths. -Fix opening editor on mac. -Add %LOCALAPPDATA%/Programs to the path of install paths. - -## [1.0.3] - 2019-01-01 - -### This is the first release of *Unity Package vscode_editor*. - -Using the newly created api to integrate Visual Studio Code with Unity. diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/CONTRIBUTING.md b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/CONTRIBUTING.md deleted file mode 100644 index 576d096..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/CONTRIBUTING.md +++ /dev/null @@ -1,6 +0,0 @@ -# Contributing - -## All contributions are subject to the [Unity Contribution Agreement(UCA)](https://unity3d.com/legal/licenses/Unity_Contribution_Agreement) -By making a pull request, you are confirming agreement to the terms and conditions of the UCA, including that your Contributions are your original creation and that you have complete right and authority to make your Contributions. - -## Once you have a change ready following these ground rules. Simply make a pull request \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/ProjectGeneration/AssemblyNameProvider.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/ProjectGeneration/AssemblyNameProvider.cs deleted file mode 100644 index c442d87..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/ProjectGeneration/AssemblyNameProvider.cs +++ /dev/null @@ -1,124 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using UnityEditor; -using UnityEditor.Compilation; -using UnityEditor.PackageManager; - -namespace VSCodeEditor -{ - public interface IAssemblyNameProvider - { - string[] ProjectSupportedExtensions { get; } - ProjectGenerationFlag ProjectGenerationFlag { get; } - string GetAssemblyNameFromScriptPath(string path); - IEnumerable GetAssemblies(Func shouldFileBePartOfSolution); - IEnumerable GetAllAssetPaths(); - IEnumerable GetRoslynAnalyzerPaths(); - UnityEditor.PackageManager.PackageInfo FindForAssetPath(string assetPath); - ResponseFileData ParseResponseFile(string responseFilePath, string projectDirectory, string[] systemReferenceDirectories); - bool IsInternalizedPackagePath(string path); - void ToggleProjectGeneration(ProjectGenerationFlag preference); - } - - internal class AssemblyNameProvider : IAssemblyNameProvider - { - ProjectGenerationFlag m_ProjectGenerationFlag = (ProjectGenerationFlag)EditorPrefs.GetInt("unity_project_generation_flag", 0); - - public string[] ProjectSupportedExtensions => EditorSettings.projectGenerationUserExtensions; - - public ProjectGenerationFlag ProjectGenerationFlag - { - get => m_ProjectGenerationFlag; - private set - { - EditorPrefs.SetInt("unity_project_generation_flag", (int)value); - m_ProjectGenerationFlag = value; - } - } - - public string GetAssemblyNameFromScriptPath(string path) - { - return CompilationPipeline.GetAssemblyNameFromScriptPath(path); - } - - public IEnumerable GetAssemblies(Func shouldFileBePartOfSolution) - { - return CompilationPipeline.GetAssemblies() - .Where(i => 0 < i.sourceFiles.Length && i.sourceFiles.Any(shouldFileBePartOfSolution)); - } - - public IEnumerable GetAllAssetPaths() - { - return AssetDatabase.GetAllAssetPaths(); - } - - public UnityEditor.PackageManager.PackageInfo FindForAssetPath(string assetPath) - { - return UnityEditor.PackageManager.PackageInfo.FindForAssetPath(assetPath); - } - - public ResponseFileData ParseResponseFile(string responseFilePath, string projectDirectory, string[] systemReferenceDirectories) - { - return CompilationPipeline.ParseResponseFile( - responseFilePath, - projectDirectory, - systemReferenceDirectories - ); - } - - public bool IsInternalizedPackagePath(string path) - { - if (string.IsNullOrWhiteSpace(path)) - { - return false; - } - var packageInfo = FindForAssetPath(path); - if (packageInfo == null) - { - return false; - } - var packageSource = packageInfo.source; - switch (packageSource) - { - case PackageSource.Embedded: - return !ProjectGenerationFlag.HasFlag(ProjectGenerationFlag.Embedded); - case PackageSource.Registry: - return !ProjectGenerationFlag.HasFlag(ProjectGenerationFlag.Registry); - case PackageSource.BuiltIn: - return !ProjectGenerationFlag.HasFlag(ProjectGenerationFlag.BuiltIn); - case PackageSource.Unknown: - return !ProjectGenerationFlag.HasFlag(ProjectGenerationFlag.Unknown); - case PackageSource.Local: - return !ProjectGenerationFlag.HasFlag(ProjectGenerationFlag.Local); - case PackageSource.Git: - return !ProjectGenerationFlag.HasFlag(ProjectGenerationFlag.Git); -#if UNITY_2019_3_OR_NEWER - case PackageSource.LocalTarball: - return !ProjectGenerationFlag.HasFlag(ProjectGenerationFlag.LocalTarBall); -#endif - } - - return false; - } - - public void ToggleProjectGeneration(ProjectGenerationFlag preference) - { - if (ProjectGenerationFlag.HasFlag(preference)) - { - ProjectGenerationFlag ^= preference; - } - else - { - ProjectGenerationFlag |= preference; - } - } - - public IEnumerable GetRoslynAnalyzerPaths() - { - return PluginImporter.GetAllImporters() - .Where(i => !i.isNativePlugin && AssetDatabase.GetLabels(i).SingleOrDefault(l => l == "RoslynAnalyzer") != null) - .Select(i => i.assetPath); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/ProjectGeneration/FileIO.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/ProjectGeneration/FileIO.cs deleted file mode 100644 index aeff22e..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/ProjectGeneration/FileIO.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System.IO; -using System.Text; - -namespace VSCodeEditor -{ - public interface IFileIO - { - bool Exists(string fileName); - - string ReadAllText(string fileName); - void WriteAllText(string fileName, string content); - - void CreateDirectory(string pathName); - } - - class FileIOProvider : IFileIO - { - public bool Exists(string fileName) - { - return File.Exists(fileName); - } - - public string ReadAllText(string fileName) - { - return File.ReadAllText(fileName); - } - - public void WriteAllText(string fileName, string content) - { - File.WriteAllText(fileName, content, Encoding.UTF8); - } - - public void CreateDirectory(string pathName) - { - Directory.CreateDirectory(pathName); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/ProjectGeneration/GUIDGenerator.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/ProjectGeneration/GUIDGenerator.cs deleted file mode 100644 index 0654966..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/ProjectGeneration/GUIDGenerator.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace VSCodeEditor -{ - public interface IGUIDGenerator - { - string ProjectGuid(string projectName, string assemblyName); - string SolutionGuid(string projectName, string extension); - } - - class GUIDProvider : IGUIDGenerator - { - public string ProjectGuid(string projectName, string assemblyName) - { - return SolutionGuidGenerator.GuidForProject(projectName + assemblyName); - } - - public string SolutionGuid(string projectName, string extension) - { - return SolutionGuidGenerator.GuidForSolution(projectName, extension); // GetExtensionOfSourceFiles(assembly.sourceFiles) - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/ProjectGeneration/ProjectGeneration.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/ProjectGeneration/ProjectGeneration.cs deleted file mode 100644 index 4552728..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/ProjectGeneration/ProjectGeneration.cs +++ /dev/null @@ -1,777 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Security; -using System.Security.Cryptography; -using System.Text; -using UnityEditor; -using UnityEditor.Compilation; -using UnityEngine; -using UnityEngine.Profiling; - -namespace VSCodeEditor -{ - public interface IGenerator - { - bool SyncIfNeeded(List affectedFiles, string[] reimportedFiles); - void Sync(); - string SolutionFile(); - string ProjectDirectory { get; } - IAssemblyNameProvider AssemblyNameProvider { get; } - void GenerateAll(bool generateAll); - bool SolutionExists(); - } - - public class ProjectGeneration : IGenerator - { - enum ScriptingLanguage - { - None, - CSharp - } - - public static readonly string MSBuildNamespaceUri = "http://schemas.microsoft.com/developer/msbuild/2003"; - - const string k_WindowsNewline = "\r\n"; - - const string k_SettingsJson = @"{ - ""files.exclude"": - { - ""**/.DS_Store"":true, - ""**/.git"":true, - ""**/.gitignore"":true, - ""**/.gitmodules"":true, - ""**/*.booproj"":true, - ""**/*.pidb"":true, - ""**/*.suo"":true, - ""**/*.user"":true, - ""**/*.userprefs"":true, - ""**/*.unityproj"":true, - ""**/*.dll"":true, - ""**/*.exe"":true, - ""**/*.pdf"":true, - ""**/*.mid"":true, - ""**/*.midi"":true, - ""**/*.wav"":true, - ""**/*.gif"":true, - ""**/*.ico"":true, - ""**/*.jpg"":true, - ""**/*.jpeg"":true, - ""**/*.png"":true, - ""**/*.psd"":true, - ""**/*.tga"":true, - ""**/*.tif"":true, - ""**/*.tiff"":true, - ""**/*.3ds"":true, - ""**/*.3DS"":true, - ""**/*.fbx"":true, - ""**/*.FBX"":true, - ""**/*.lxo"":true, - ""**/*.LXO"":true, - ""**/*.ma"":true, - ""**/*.MA"":true, - ""**/*.obj"":true, - ""**/*.OBJ"":true, - ""**/*.asset"":true, - ""**/*.cubemap"":true, - ""**/*.flare"":true, - ""**/*.mat"":true, - ""**/*.meta"":true, - ""**/*.prefab"":true, - ""**/*.unity"":true, - ""build/"":true, - ""Build/"":true, - ""Library/"":true, - ""library/"":true, - ""obj/"":true, - ""Obj/"":true, - ""ProjectSettings/"":true, - ""temp/"":true, - ""Temp/"":true - } -}"; - - /// - /// Map source extensions to ScriptingLanguages - /// - static readonly Dictionary k_BuiltinSupportedExtensions = new Dictionary - { - { "cs", ScriptingLanguage.CSharp }, - { "uxml", ScriptingLanguage.None }, - { "uss", ScriptingLanguage.None }, - { "shader", ScriptingLanguage.None }, - { "compute", ScriptingLanguage.None }, - { "cginc", ScriptingLanguage.None }, - { "hlsl", ScriptingLanguage.None }, - { "glslinc", ScriptingLanguage.None }, - { "template", ScriptingLanguage.None }, - { "raytrace", ScriptingLanguage.None } - }; - - string m_SolutionProjectEntryTemplate = string.Join("\r\n", @"Project(""{{{0}}}"") = ""{1}"", ""{2}"", ""{{{3}}}""", @"EndProject").Replace(" ", "\t"); - - string m_SolutionProjectConfigurationTemplate = string.Join("\r\n", @" {{{0}}}.Debug|Any CPU.ActiveCfg = Debug|Any CPU", @" {{{0}}}.Debug|Any CPU.Build.0 = Debug|Any CPU").Replace(" ", "\t"); - - static readonly string[] k_ReimportSyncExtensions = { ".dll", ".asmdef" }; - - string[] m_ProjectSupportedExtensions = new string[0]; - public string ProjectDirectory { get; } - IAssemblyNameProvider IGenerator.AssemblyNameProvider => m_AssemblyNameProvider; - - public void GenerateAll(bool generateAll) - { - m_AssemblyNameProvider.ToggleProjectGeneration( - ProjectGenerationFlag.BuiltIn - | ProjectGenerationFlag.Embedded - | ProjectGenerationFlag.Git - | ProjectGenerationFlag.Local -#if UNITY_2019_3_OR_NEWER - | ProjectGenerationFlag.LocalTarBall -#endif - | ProjectGenerationFlag.PlayerAssemblies - | ProjectGenerationFlag.Registry - | ProjectGenerationFlag.Unknown); - } - - readonly string m_ProjectName; - readonly IAssemblyNameProvider m_AssemblyNameProvider; - readonly IFileIO m_FileIOProvider; - readonly IGUIDGenerator m_GUIDProvider; - - const string k_ToolsVersion = "4.0"; - const string k_ProductVersion = "10.0.20506"; - const string k_BaseDirectory = "."; - const string k_TargetFrameworkVersion = "v4.7.1"; - const string k_TargetLanguageVersion = "latest"; - - public ProjectGeneration(string tempDirectory) - : this(tempDirectory, new AssemblyNameProvider(), new FileIOProvider(), new GUIDProvider()) { } - - public ProjectGeneration(string tempDirectory, IAssemblyNameProvider assemblyNameProvider, IFileIO fileIO, IGUIDGenerator guidGenerator) - { - ProjectDirectory = tempDirectory.Replace('\\', '/'); - m_ProjectName = Path.GetFileName(ProjectDirectory); - m_AssemblyNameProvider = assemblyNameProvider; - m_FileIOProvider = fileIO; - m_GUIDProvider = guidGenerator; - } - - /// - /// Syncs the scripting solution if any affected files are relevant. - /// - /// - /// Whether the solution was synced. - /// - /// - /// A set of files whose status has changed - /// - /// - /// A set of files that got reimported - /// - public bool SyncIfNeeded(List affectedFiles, string[] reimportedFiles) - { - Profiler.BeginSample("SolutionSynchronizerSync"); - SetupProjectSupportedExtensions(); - - // Don't sync if we haven't synced before - if (SolutionExists() && HasFilesBeenModified(affectedFiles, reimportedFiles)) - { - var assemblies = m_AssemblyNameProvider.GetAssemblies(ShouldFileBePartOfSolution); - var allProjectAssemblies = RelevantAssembliesForMode(assemblies).ToList(); - SyncSolution(allProjectAssemblies); - - var allAssetProjectParts = GenerateAllAssetProjectParts(); - - var affectedNames = affectedFiles.Select(asset => m_AssemblyNameProvider.GetAssemblyNameFromScriptPath(asset)).Where(name => !string.IsNullOrWhiteSpace(name)).Select(name => name.Split(new [] {".dll"}, StringSplitOptions.RemoveEmptyEntries)[0]); - var reimportedNames = reimportedFiles.Select(asset => m_AssemblyNameProvider.GetAssemblyNameFromScriptPath(asset)).Where(name => !string.IsNullOrWhiteSpace(name)).Select(name => name.Split(new [] {".dll"}, StringSplitOptions.RemoveEmptyEntries)[0]); - var affectedAndReimported = new HashSet(affectedNames.Concat(reimportedNames)); - var assemblyNames = new HashSet(allProjectAssemblies.Select(assembly => Path.GetFileName(assembly.outputPath))); - - foreach (var assembly in allProjectAssemblies) - { - if (!affectedAndReimported.Contains(assembly.name)) - continue; - - SyncProject(assembly, allAssetProjectParts, ParseResponseFileData(assembly), assemblyNames); - } - - Profiler.EndSample(); - return true; - } - - Profiler.EndSample(); - return false; - } - - bool HasFilesBeenModified(List affectedFiles, string[] reimportedFiles) - { - return affectedFiles.Any(ShouldFileBePartOfSolution) || reimportedFiles.Any(ShouldSyncOnReimportedAsset); - } - - static bool ShouldSyncOnReimportedAsset(string asset) - { - return k_ReimportSyncExtensions.Contains(new FileInfo(asset).Extension); - } - - public void Sync() - { - SetupProjectSupportedExtensions(); - GenerateAndWriteSolutionAndProjects(); - } - - public bool SolutionExists() - { - return m_FileIOProvider.Exists(SolutionFile()); - } - - void SetupProjectSupportedExtensions() - { - m_ProjectSupportedExtensions = m_AssemblyNameProvider.ProjectSupportedExtensions; - } - - bool ShouldFileBePartOfSolution(string file) - { - // Exclude files coming from packages except if they are internalized. - if (m_AssemblyNameProvider.IsInternalizedPackagePath(file)) - { - return false; - } - - return HasValidExtension(file); - } - - bool HasValidExtension(string file) - { - string extension = Path.GetExtension(file); - - // Dll's are not scripts but still need to be included.. - if (extension == ".dll") - return true; - - if (file.ToLower().EndsWith(".asmdef")) - return true; - - return IsSupportedExtension(extension); - } - - bool IsSupportedExtension(string extension) - { - extension = extension.TrimStart('.'); - if (k_BuiltinSupportedExtensions.ContainsKey(extension)) - return true; - if (m_ProjectSupportedExtensions.Contains(extension)) - return true; - return false; - } - - static ScriptingLanguage ScriptingLanguageFor(Assembly assembly) - { - return ScriptingLanguageFor(GetExtensionOfSourceFiles(assembly.sourceFiles)); - } - - static string GetExtensionOfSourceFiles(string[] files) - { - return files.Length > 0 ? GetExtensionOfSourceFile(files[0]) : "NA"; - } - - static string GetExtensionOfSourceFile(string file) - { - var ext = Path.GetExtension(file).ToLower(); - ext = ext.Substring(1); //strip dot - return ext; - } - - static ScriptingLanguage ScriptingLanguageFor(string extension) - { - return k_BuiltinSupportedExtensions.TryGetValue(extension.TrimStart('.'), out var result) - ? result - : ScriptingLanguage.None; - } - - public void GenerateAndWriteSolutionAndProjects() - { - // Only synchronize assemblies that have associated source files and ones that we actually want in the project. - // This also filters out DLLs coming from .asmdef files in packages. - var assemblies = m_AssemblyNameProvider.GetAssemblies(ShouldFileBePartOfSolution); - - var allAssetProjectParts = GenerateAllAssetProjectParts(); - - SyncSolution(assemblies); - var allProjectAssemblies = RelevantAssembliesForMode(assemblies).ToList(); - var assemblyNames = new HashSet(allProjectAssemblies.Select(assembly => Path.GetFileName(assembly.outputPath))); - foreach (Assembly assembly in allProjectAssemblies) - { - var responseFileData = ParseResponseFileData(assembly); - SyncProject(assembly, allAssetProjectParts, responseFileData, assemblyNames); - } - - WriteVSCodeSettingsFiles(); - } - - List ParseResponseFileData(Assembly assembly) - { - var systemReferenceDirectories = CompilationPipeline.GetSystemAssemblyDirectories(assembly.compilerOptions.ApiCompatibilityLevel); - - Dictionary responseFilesData = assembly.compilerOptions.ResponseFiles.ToDictionary(x => x, x => m_AssemblyNameProvider.ParseResponseFile( - x, - ProjectDirectory, - systemReferenceDirectories - )); - - Dictionary responseFilesWithErrors = responseFilesData.Where(x => x.Value.Errors.Any()) - .ToDictionary(x => x.Key, x => x.Value); - - if (responseFilesWithErrors.Any()) - { - foreach (var error in responseFilesWithErrors) - foreach (var valueError in error.Value.Errors) - { - Debug.LogError($"{error.Key} Parse Error : {valueError}"); - } - } - - return responseFilesData.Select(x => x.Value).ToList(); - } - - Dictionary GenerateAllAssetProjectParts() - { - Dictionary stringBuilders = new Dictionary(); - - foreach (string asset in m_AssemblyNameProvider.GetAllAssetPaths()) - { - // Exclude files coming from packages except if they are internalized. - // TODO: We need assets from the assembly API - if (m_AssemblyNameProvider.IsInternalizedPackagePath(asset)) - { - continue; - } - - string extension = Path.GetExtension(asset); - if (IsSupportedExtension(extension) && ScriptingLanguage.None == ScriptingLanguageFor(extension)) - { - // Find assembly the asset belongs to by adding script extension and using compilation pipeline. - var assemblyName = m_AssemblyNameProvider.GetAssemblyNameFromScriptPath(asset); - - if (string.IsNullOrEmpty(assemblyName)) - { - continue; - } - - assemblyName = Path.GetFileNameWithoutExtension(assemblyName); - - if (!stringBuilders.TryGetValue(assemblyName, out var projectBuilder)) - { - projectBuilder = new StringBuilder(); - stringBuilders[assemblyName] = projectBuilder; - } - - projectBuilder.Append(" ").Append(k_WindowsNewline); - } - } - - var result = new Dictionary(); - - foreach (var entry in stringBuilders) - result[entry.Key] = entry.Value.ToString(); - - return result; - } - - void SyncProject( - Assembly assembly, - Dictionary allAssetsProjectParts, - List responseFilesData, - HashSet assemblyNames) - { - SyncProjectFileIfNotChanged(ProjectFile(assembly), ProjectText(assembly, allAssetsProjectParts, responseFilesData, assemblyNames, GetAllRoslynAnalyzerPaths().ToArray())); - } - - private IEnumerable GetAllRoslynAnalyzerPaths() - { - return m_AssemblyNameProvider.GetRoslynAnalyzerPaths(); - } - - void SyncProjectFileIfNotChanged(string path, string newContents) - { - SyncFileIfNotChanged(path, newContents); - } - - void SyncSolutionFileIfNotChanged(string path, string newContents) - { - SyncFileIfNotChanged(path, newContents); - } - - void SyncFileIfNotChanged(string filename, string newContents) - { - if (m_FileIOProvider.Exists(filename)) - { - var currentContents = m_FileIOProvider.ReadAllText(filename); - - if (currentContents == newContents) - { - return; - } - } - - m_FileIOProvider.WriteAllText(filename, newContents); - } - - string ProjectText( - Assembly assembly, - Dictionary allAssetsProjectParts, - List responseFilesData, - HashSet assemblyNames, - string[] roslynAnalyzerDllPaths) - { - var projectBuilder = new StringBuilder(); - ProjectHeader(assembly, responseFilesData, roslynAnalyzerDllPaths, projectBuilder); - var references = new List(); - - foreach (string file in assembly.sourceFiles) - { - if (!HasValidExtension(file)) - continue; - - var extension = Path.GetExtension(file).ToLower(); - var fullFile = EscapedRelativePathFor(file); - if (".dll" != extension) - { - projectBuilder.Append(" ").Append(k_WindowsNewline); - } - else - { - references.Add(fullFile); - } - } - - // Append additional non-script files that should be included in project generation. - if (allAssetsProjectParts.TryGetValue(assembly.name, out var additionalAssetsForProject)) - projectBuilder.Append(additionalAssetsForProject); - - var responseRefs = responseFilesData.SelectMany(x => x.FullPathReferences.Select(r => r)); - var internalAssemblyReferences = assembly.assemblyReferences - .Where(i => !i.sourceFiles.Any(ShouldFileBePartOfSolution)).Select(i => i.outputPath); - var allReferences = - assembly.compiledAssemblyReferences - .Union(responseRefs) - .Union(references) - .Union(internalAssemblyReferences) - .Except(roslynAnalyzerDllPaths); - - foreach (var reference in allReferences) - { - string fullReference = Path.IsPathRooted(reference) ? reference : Path.Combine(ProjectDirectory, reference); - AppendReference(fullReference, projectBuilder); - } - - if (0 < assembly.assemblyReferences.Length) - { - projectBuilder.Append(" ").Append(k_WindowsNewline); - projectBuilder.Append(" ").Append(k_WindowsNewline); - foreach (Assembly reference in assembly.assemblyReferences.Where(i => i.sourceFiles.Any(ShouldFileBePartOfSolution))) - { - var referencedProject = reference.outputPath; - - projectBuilder.Append(" ").Append(k_WindowsNewline); - projectBuilder.Append(" {").Append(ProjectGuid(reference.name)).Append("}").Append(k_WindowsNewline); - projectBuilder.Append(" ").Append(reference.name).Append("").Append(k_WindowsNewline); - projectBuilder.Append(" ").Append(k_WindowsNewline); - } - } - - projectBuilder.Append(ProjectFooter()); - return projectBuilder.ToString(); - } - - static void AppendReference(string fullReference, StringBuilder projectBuilder) - { - //replace \ with / and \\ with / - var escapedFullPath = SecurityElement.Escape(fullReference); - escapedFullPath = escapedFullPath.Replace("\\\\", "/"); - escapedFullPath = escapedFullPath.Replace("\\", "/"); - projectBuilder.Append(" ").Append(k_WindowsNewline); - projectBuilder.Append(" ").Append(escapedFullPath).Append("").Append(k_WindowsNewline); - projectBuilder.Append(" ").Append(k_WindowsNewline); - } - - public string ProjectFile(Assembly assembly) - { - var fileBuilder = new StringBuilder(assembly.name); - fileBuilder.Append(".csproj"); - return Path.Combine(ProjectDirectory, fileBuilder.ToString()); - } - - public string SolutionFile() - { - return Path.Combine(ProjectDirectory, $"{m_ProjectName}.sln"); - } - - void ProjectHeader( - Assembly assembly, - List responseFilesData, - string[] roslynAnalyzerDllPaths, - StringBuilder builder - ) - { - var otherArguments = GetOtherArgumentsFromResponseFilesData(responseFilesData); - GetProjectHeaderTemplate( - builder, - ProjectGuid(assembly.name), - assembly.name, - string.Join(";", new[] { "DEBUG", "TRACE" }.Concat(assembly.defines).Concat(responseFilesData.SelectMany(x => x.Defines)).Concat(EditorUserBuildSettings.activeScriptCompilationDefines).Distinct().ToArray()), - assembly.compilerOptions.AllowUnsafeCode | responseFilesData.Any(x => x.Unsafe), - GenerateAnalyserItemGroup(otherArguments["analyzer"].Concat(otherArguments["a"]) - .SelectMany(x => x.Split(';')) - .Concat(roslynAnalyzerDllPaths) - .Distinct() - .ToArray())); - } - - private static ILookup GetOtherArgumentsFromResponseFilesData(List responseFilesData) - { - var paths = responseFilesData.SelectMany(x => - { - return x.OtherArguments.Where(a => a.StartsWith("/") || a.StartsWith("-")) - .Select(b => - { - var index = b.IndexOf(":", StringComparison.Ordinal); - if (index > 0 && b.Length > index) - { - var key = b.Substring(1, index - 1); - return new KeyValuePair(key, b.Substring(index + 1)); - } - - const string warnaserror = "warnaserror"; - if (b.Substring(1).StartsWith(warnaserror)) - { - return new KeyValuePair(warnaserror, b.Substring(warnaserror.Length + 1)); - } - - return default; - }); - }) - .Distinct() - .ToLookup(o => o.Key, pair => pair.Value); - return paths; - } - - private static string GenerateAnalyserItemGroup(string[] paths) - { - // - // - // - // - if (!paths.Any()) - return string.Empty; - - var analyserBuilder = new StringBuilder(); - analyserBuilder.Append(" ").Append(k_WindowsNewline); - foreach (var path in paths) - { - analyserBuilder.Append($" ").Append(k_WindowsNewline); - } - analyserBuilder.Append(" ").Append(k_WindowsNewline); - return analyserBuilder.ToString(); - } - - static string GetSolutionText() - { - return string.Join("\r\n", @"", @"Microsoft Visual Studio Solution File, Format Version {0}", @"# Visual Studio {1}", @"{2}", @"Global", @" GlobalSection(SolutionConfigurationPlatforms) = preSolution", @" Debug|Any CPU = Debug|Any CPU", @" EndGlobalSection", @" GlobalSection(ProjectConfigurationPlatforms) = postSolution", @"{3}", @" EndGlobalSection", @" GlobalSection(SolutionProperties) = preSolution", @" HideSolutionNode = FALSE", @" EndGlobalSection", @"EndGlobal", @"").Replace(" ", "\t"); - } - - static string GetProjectFooterTemplate() - { - return string.Join("\r\n", @" ", @" ", @" ", @"", @""); - } - - static void GetProjectHeaderTemplate( - StringBuilder builder, - string assemblyGUID, - string assemblyName, - string defines, - bool allowUnsafe, - string analyzerBlock - ) - { - builder.Append(@"").Append(k_WindowsNewline); - builder.Append(@"").Append(k_WindowsNewline); - builder.Append(@" ").Append(k_WindowsNewline); - builder.Append(@" ").Append(k_TargetLanguageVersion).Append("").Append(k_WindowsNewline); - builder.Append(@" ").Append(k_WindowsNewline); - builder.Append(@" ").Append(k_WindowsNewline); - builder.Append(@" Debug").Append(k_WindowsNewline); - builder.Append(@" AnyCPU").Append(k_WindowsNewline); - builder.Append(@" ").Append(k_ProductVersion).Append("").Append(k_WindowsNewline); - builder.Append(@" 2.0").Append(k_WindowsNewline); - builder.Append(@" ").Append(EditorSettings.projectGenerationRootNamespace).Append("").Append(k_WindowsNewline); - builder.Append(@" {").Append(assemblyGUID).Append("}").Append(k_WindowsNewline); - builder.Append(@" Library").Append(k_WindowsNewline); - builder.Append(@" Properties").Append(k_WindowsNewline); - builder.Append(@" ").Append(assemblyName).Append("").Append(k_WindowsNewline); - builder.Append(@" ").Append(k_TargetFrameworkVersion).Append("").Append(k_WindowsNewline); - builder.Append(@" 512").Append(k_WindowsNewline); - builder.Append(@" ").Append(k_BaseDirectory).Append("").Append(k_WindowsNewline); - builder.Append(@" ").Append(k_WindowsNewline); - builder.Append(@" ").Append(k_WindowsNewline); - builder.Append(@" true").Append(k_WindowsNewline); - builder.Append(@" full").Append(k_WindowsNewline); - builder.Append(@" false").Append(k_WindowsNewline); - builder.Append(@" Temp\bin\Debug\").Append(k_WindowsNewline); - builder.Append(@" ").Append(defines).Append("").Append(k_WindowsNewline); - builder.Append(@" prompt").Append(k_WindowsNewline); - builder.Append(@" 4").Append(k_WindowsNewline); - builder.Append(@" 0169").Append(k_WindowsNewline); - builder.Append(@" ").Append(allowUnsafe).Append("").Append(k_WindowsNewline); - builder.Append(@" ").Append(k_WindowsNewline); - builder.Append(@" ").Append(k_WindowsNewline); - builder.Append(@" true").Append(k_WindowsNewline); - builder.Append(@" true").Append(k_WindowsNewline); - builder.Append(@" false").Append(k_WindowsNewline); - builder.Append(@" false").Append(k_WindowsNewline); - builder.Append(@" false").Append(k_WindowsNewline); - builder.Append(@" ").Append(k_WindowsNewline); - builder.Append(analyzerBlock); - builder.Append(@" ").Append(k_WindowsNewline); - } - - void SyncSolution(IEnumerable assemblies) - { - SyncSolutionFileIfNotChanged(SolutionFile(), SolutionText(assemblies)); - } - - string SolutionText(IEnumerable assemblies) - { - var fileversion = "11.00"; - var vsversion = "2010"; - - var relevantAssemblies = RelevantAssembliesForMode(assemblies); - string projectEntries = GetProjectEntries(relevantAssemblies); - string projectConfigurations = string.Join(k_WindowsNewline, relevantAssemblies.Select(i => GetProjectActiveConfigurations(ProjectGuid(i.name))).ToArray()); - return string.Format(GetSolutionText(), fileversion, vsversion, projectEntries, projectConfigurations); - } - - static IEnumerable RelevantAssembliesForMode(IEnumerable assemblies) - { - return assemblies.Where(i => ScriptingLanguage.CSharp == ScriptingLanguageFor(i)); - } - - /// - /// Get a Project("{guid}") = "MyProject", "MyProject.csproj", "{projectguid}" - /// entry for each relevant language - /// - string GetProjectEntries(IEnumerable assemblies) - { - var projectEntries = assemblies.Select(i => string.Format( - m_SolutionProjectEntryTemplate, - SolutionGuid(i), - i.name, - Path.GetFileName(ProjectFile(i)), - ProjectGuid(i.name) - )); - - return string.Join(k_WindowsNewline, projectEntries.ToArray()); - } - - /// - /// Generate the active configuration string for a given project guid - /// - string GetProjectActiveConfigurations(string projectGuid) - { - return string.Format( - m_SolutionProjectConfigurationTemplate, - projectGuid); - } - - string EscapedRelativePathFor(string file) - { - var projectDir = ProjectDirectory.Replace('/', '\\'); - file = file.Replace('/', '\\'); - var path = SkipPathPrefix(file, projectDir); - - var packageInfo = m_AssemblyNameProvider.FindForAssetPath(path.Replace('\\', '/')); - if (packageInfo != null) - { - // We have to normalize the path, because the PackageManagerRemapper assumes - // dir seperators will be os specific. - var absolutePath = Path.GetFullPath(NormalizePath(path)).Replace('/', '\\'); - path = SkipPathPrefix(absolutePath, projectDir); - } - - return SecurityElement.Escape(path); - } - - static string SkipPathPrefix(string path, string prefix) - { - if (path.StartsWith($@"{prefix}\")) - return path.Substring(prefix.Length + 1); - return path; - } - - static string NormalizePath(string path) - { - if (Path.DirectorySeparatorChar == '\\') - return path.Replace('/', Path.DirectorySeparatorChar); - return path.Replace('\\', Path.DirectorySeparatorChar); - } - - string ProjectGuid(string assembly) - { - return m_GUIDProvider.ProjectGuid(m_ProjectName, assembly); - } - - string SolutionGuid(Assembly assembly) - { - return m_GUIDProvider.SolutionGuid(m_ProjectName, GetExtensionOfSourceFiles(assembly.sourceFiles)); - } - - static string ProjectFooter() - { - return GetProjectFooterTemplate(); - } - - static string GetProjectExtension() - { - return ".csproj"; - } - - void WriteVSCodeSettingsFiles() - { - var vsCodeDirectory = Path.Combine(ProjectDirectory, ".vscode"); - - if (!m_FileIOProvider.Exists(vsCodeDirectory)) - m_FileIOProvider.CreateDirectory(vsCodeDirectory); - - var vsCodeSettingsJson = Path.Combine(vsCodeDirectory, "settings.json"); - - if (!m_FileIOProvider.Exists(vsCodeSettingsJson)) - m_FileIOProvider.WriteAllText(vsCodeSettingsJson, k_SettingsJson); - } - } - - public static class SolutionGuidGenerator - { - static MD5 mD5 = MD5CryptoServiceProvider.Create(); - - public static string GuidForProject(string projectName) - { - return ComputeGuidHashFor(projectName + "salt"); - } - - public static string GuidForSolution(string projectName, string sourceFileExtension) - { - if (sourceFileExtension.ToLower() == "cs") - - // GUID for a C# class library: http://www.codeproject.com/Reference/720512/List-of-Visual-Studio-Project-Type-GUIDs - return "FAE04EC0-301F-11D3-BF4B-00C04F79EFBC"; - - return ComputeGuidHashFor(projectName); - } - - static string ComputeGuidHashFor(string input) - { - var hash = mD5.ComputeHash(Encoding.Default.GetBytes(input)); - return new Guid(hash).ToString(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/ProjectGeneration/ProjectGenerationFlag.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/ProjectGeneration/ProjectGenerationFlag.cs deleted file mode 100644 index e51dd43..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/ProjectGeneration/ProjectGenerationFlag.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; - -namespace VSCodeEditor -{ - [Flags] - public enum ProjectGenerationFlag - { - None = 0, - Embedded = 1, - Local = 2, - Registry = 4, - Git = 8, - BuiltIn = 16, - Unknown = 32, - PlayerAssemblies = 64, - LocalTarBall = 128, - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/Unity.com.unity.vscode.Editor.asmdef b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/Unity.com.unity.vscode.Editor.asmdef deleted file mode 100644 index 032da7c..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/Unity.com.unity.vscode.Editor.asmdef +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "Unity.VSCode.Editor", - "references": [], - "optionalUnityReferences": [], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [] -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/VSCodeDiscovery.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/VSCodeDiscovery.cs deleted file mode 100644 index 609d2cd..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/VSCodeDiscovery.cs +++ /dev/null @@ -1,137 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using Unity.CodeEditor; - -namespace VSCodeEditor -{ - public interface IDiscovery - { - CodeEditor.Installation[] PathCallback(); - } - - public class VSCodeDiscovery : IDiscovery - { - List m_Installations; - - public CodeEditor.Installation[] PathCallback() - { - if (m_Installations == null) - { - m_Installations = new List(); - FindInstallationPaths(); - } - - return m_Installations.ToArray(); - } - - void FindInstallationPaths() - { - string[] possiblePaths = -#if UNITY_EDITOR_OSX - { - "/Applications/Visual Studio Code.app", - "/Applications/Visual Studio Code - Insiders.app" - }; -#elif UNITY_EDITOR_WIN - { - GetProgramFiles() + @"/Microsoft VS Code/bin/code.cmd", - GetProgramFiles() + @"/Microsoft VS Code/Code.exe", - GetProgramFiles() + @"/Microsoft VS Code Insiders/bin/code-insiders.cmd", - GetProgramFiles() + @"/Microsoft VS Code Insiders/Code.exe", - GetLocalAppData() + @"/Programs/Microsoft VS Code/bin/code.cmd", - GetLocalAppData() + @"/Programs/Microsoft VS Code/Code.exe", - GetLocalAppData() + @"/Programs/Microsoft VS Code Insiders/bin/code-insiders.cmd", - GetLocalAppData() + @"/Programs/Microsoft VS Code Insiders/Code.exe", - }; -#else - { - "/usr/bin/code", - "/bin/code", - "/usr/local/bin/code", - "/var/lib/flatpak/exports/bin/com.visualstudio.code", - "/snap/current/bin/code" - }; -#endif - var existingPaths = possiblePaths.Where(VSCodeExists).ToList(); - if (!existingPaths.Any()) - { - return; - } - - var lcp = GetLongestCommonPrefix(existingPaths); - switch (existingPaths.Count) - { - case 1: - { - var path = existingPaths.First(); - m_Installations = new List - { - new CodeEditor.Installation - { - Path = path, - Name = path.Contains("Insiders") - ? "Visual Studio Code Insiders" - : "Visual Studio Code" - } - }; - break; - } - case 2 when existingPaths.Any(path => !(path.Substring(lcp.Length).Contains("/") || path.Substring(lcp.Length).Contains("\\"))): - { - goto case 1; - } - default: - { - m_Installations = existingPaths.Select(path => new CodeEditor.Installation - { - Name = $"Visual Studio Code Insiders ({path.Substring(lcp.Length)})", - Path = path - }).ToList(); - - break; - } - } - } - -#if UNITY_EDITOR_WIN - static string GetProgramFiles() - { - return Environment.GetEnvironmentVariable("ProgramFiles")?.Replace("\\", "/"); - } - - static string GetLocalAppData() - { - return Environment.GetEnvironmentVariable("LOCALAPPDATA")?.Replace("\\", "/"); - } -#endif - - static string GetLongestCommonPrefix(List paths) - { - var baseLength = paths.First().Length; - for (var pathIndex = 1; pathIndex < paths.Count; pathIndex++) - { - baseLength = Math.Min(baseLength, paths[pathIndex].Length); - for (var i = 0; i < baseLength; i++) - { - if (paths[pathIndex][i] == paths[0][i]) continue; - - baseLength = i; - break; - } - } - - return paths[0].Substring(0, baseLength); - } - - static bool VSCodeExists(string path) - { -#if UNITY_EDITOR_OSX - return System.IO.Directory.Exists(path); -#else - return new FileInfo(path).Exists; -#endif - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/VSCodeScriptEditor.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/VSCodeScriptEditor.cs deleted file mode 100644 index 7efc69f..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/Editor/VSCodeScriptEditor.cs +++ /dev/null @@ -1,280 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using System.Diagnostics; -using UnityEditor; -using UnityEngine; -using Unity.CodeEditor; - -namespace VSCodeEditor -{ - [InitializeOnLoad] - public class VSCodeScriptEditor : IExternalCodeEditor - { - const string vscode_argument = "vscode_arguments"; - const string vscode_extension = "vscode_userExtensions"; - static readonly GUIContent k_ResetArguments = EditorGUIUtility.TrTextContent("Reset argument"); - string m_Arguments; - - IDiscovery m_Discoverability; - IGenerator m_ProjectGeneration; - - static readonly string[] k_SupportedFileNames = { "code.exe", "visualstudiocode.app", "visualstudiocode-insiders.app", "vscode.app", "code.app", "code.cmd", "code-insiders.cmd", "code", "com.visualstudio.code" }; - - static bool IsOSX => Application.platform == RuntimePlatform.OSXEditor; - - static string DefaultApp => EditorPrefs.GetString("kScriptsDefaultApp"); - - static string DefaultArgument { get; } = "\"$(ProjectPath)\" -g \"$(File)\":$(Line):$(Column)"; - - string Arguments - { - get => m_Arguments ?? (m_Arguments = EditorPrefs.GetString(vscode_argument, DefaultArgument)); - set - { - m_Arguments = value; - EditorPrefs.SetString(vscode_argument, value); - } - } - - static string[] defaultExtensions - { - get - { - var customExtensions = new[] { "json", "asmdef", "log" }; - return EditorSettings.projectGenerationBuiltinExtensions - .Concat(EditorSettings.projectGenerationUserExtensions) - .Concat(customExtensions) - .Distinct().ToArray(); - } - } - - static string[] HandledExtensions - { - get - { - return HandledExtensionsString - .Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries) - .Select(s => s.TrimStart('.', '*')) - .ToArray(); - } - } - - static string HandledExtensionsString - { - get => EditorPrefs.GetString(vscode_extension, string.Join(";", defaultExtensions)); - set => EditorPrefs.SetString(vscode_extension, value); - } - - public bool TryGetInstallationForPath(string editorPath, out CodeEditor.Installation installation) - { - var lowerCasePath = editorPath.ToLower(); - var filename = Path.GetFileName(lowerCasePath).Replace(" ", ""); - var installations = Installations; - if (!k_SupportedFileNames.Contains(filename)) - { - installation = default; - return false; - } - - if (!installations.Any()) - { - installation = new CodeEditor.Installation - { - Name = "Visual Studio Code", - Path = editorPath - }; - } - else - { - try - { - installation = installations.First(inst => inst.Path == editorPath); - } - catch (InvalidOperationException) - { - installation = new CodeEditor.Installation - { - Name = "Visual Studio Code", - Path = editorPath - }; - } - } - - return true; - } - - public void OnGUI() - { - Arguments = EditorGUILayout.TextField("External Script Editor Args", Arguments); - if (GUILayout.Button(k_ResetArguments, GUILayout.Width(120))) - { - Arguments = DefaultArgument; - } - - EditorGUILayout.LabelField("Generate .csproj files for:"); - EditorGUI.indentLevel++; - SettingsButton(ProjectGenerationFlag.Embedded, "Embedded packages", ""); - SettingsButton(ProjectGenerationFlag.Local, "Local packages", ""); - SettingsButton(ProjectGenerationFlag.Registry, "Registry packages", ""); - SettingsButton(ProjectGenerationFlag.Git, "Git packages", ""); - SettingsButton(ProjectGenerationFlag.BuiltIn, "Built-in packages", ""); -#if UNITY_2019_3_OR_NEWER - SettingsButton(ProjectGenerationFlag.LocalTarBall, "Local tarball", ""); -#endif - SettingsButton(ProjectGenerationFlag.Unknown, "Packages from unknown sources", ""); - RegenerateProjectFiles(); - EditorGUI.indentLevel--; - - HandledExtensionsString = EditorGUILayout.TextField(new GUIContent("Extensions handled: "), HandledExtensionsString); - } - - void RegenerateProjectFiles() - { - var rect = EditorGUI.IndentedRect(EditorGUILayout.GetControlRect(new GUILayoutOption[] { })); - rect.width = 252; - if (GUI.Button(rect, "Regenerate project files")) - { - m_ProjectGeneration.Sync(); - } - } - - void SettingsButton(ProjectGenerationFlag preference, string guiMessage, string toolTip) - { - var prevValue = m_ProjectGeneration.AssemblyNameProvider.ProjectGenerationFlag.HasFlag(preference); - var newValue = EditorGUILayout.Toggle(new GUIContent(guiMessage, toolTip), prevValue); - if (newValue != prevValue) - { - m_ProjectGeneration.AssemblyNameProvider.ToggleProjectGeneration(preference); - } - } - - public void CreateIfDoesntExist() - { - if (!m_ProjectGeneration.SolutionExists()) - { - m_ProjectGeneration.Sync(); - } - } - - public void SyncIfNeeded(string[] addedFiles, string[] deletedFiles, string[] movedFiles, string[] movedFromFiles, string[] importedFiles) - { - m_ProjectGeneration.SyncIfNeeded(addedFiles.Union(deletedFiles).Union(movedFiles).Union(movedFromFiles).ToList(), importedFiles); - } - - public void SyncAll() - { - AssetDatabase.Refresh(); - m_ProjectGeneration.Sync(); - } - - public bool OpenProject(string path, int line, int column) - { - if (path != "" && (!SupportsExtension(path) || !File.Exists(path))) // Assets - Open C# Project passes empty path here - { - return false; - } - - if (line == -1) - line = 1; - if (column == -1) - column = 0; - - string arguments; - if (Arguments != DefaultArgument) - { - arguments = m_ProjectGeneration.ProjectDirectory != path - ? CodeEditor.ParseArgument(Arguments, path, line, column) - : m_ProjectGeneration.ProjectDirectory; - } - else - { - arguments = $@"""{m_ProjectGeneration.ProjectDirectory}"""; - if (m_ProjectGeneration.ProjectDirectory != path && path.Length != 0) - { - arguments += $@" -g ""{path}"":{line}:{column}"; - } - } - - if (IsOSX) - { - return OpenOSX(arguments); - } - - var app = DefaultApp; - var process = new Process - { - StartInfo = new ProcessStartInfo - { - FileName = app, - Arguments = arguments, - WindowStyle = app.EndsWith(".cmd", StringComparison.OrdinalIgnoreCase) ? ProcessWindowStyle.Hidden : ProcessWindowStyle.Normal, - CreateNoWindow = true, - UseShellExecute = true, - } - }; - - process.Start(); - return true; - } - - static bool OpenOSX(string arguments) - { - var process = new Process - { - StartInfo = new ProcessStartInfo - { - FileName = "open", - Arguments = $"-n \"{DefaultApp}\" --args {arguments}", - UseShellExecute = true, - } - }; - - process.Start(); - return true; - } - - static bool SupportsExtension(string path) - { - var extension = Path.GetExtension(path); - if (string.IsNullOrEmpty(extension)) - return false; - return HandledExtensions.Contains(extension.TrimStart('.')); - } - - public CodeEditor.Installation[] Installations => m_Discoverability.PathCallback(); - - public VSCodeScriptEditor(IDiscovery discovery, IGenerator projectGeneration) - { - m_Discoverability = discovery; - m_ProjectGeneration = projectGeneration; - } - - static VSCodeScriptEditor() - { - var editor = new VSCodeScriptEditor(new VSCodeDiscovery(), new ProjectGeneration(Directory.GetParent(Application.dataPath).FullName)); - CodeEditor.Register(editor); - - if (IsVSCodeInstallation(CodeEditor.CurrentEditorInstallation)) - { - editor.CreateIfDoesntExist(); - } - } - - static bool IsVSCodeInstallation(string path) - { - if (string.IsNullOrEmpty(path)) - { - return false; - } - - var lowerCasePath = path.ToLower(); - var filename = Path - .GetFileName(lowerCasePath.Replace('\\', Path.DirectorySeparatorChar).Replace('/', Path.DirectorySeparatorChar)) - .Replace(" ", ""); - return k_SupportedFileNames.Contains(filename); - } - - public void Initialize(string editorInstallationPath) { } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/LICENSE.md b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/LICENSE.md deleted file mode 100644 index eb18dfb..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Unity Technologies - -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/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/package.json b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/package.json deleted file mode 100644 index 6f6f1c1..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.ide.vscode@1.2.3/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "com.unity.ide.vscode", - "displayName": "Visual Studio Code Editor", - "description": "Code editor integration for supporting Visual Studio Code as code editor for unity. Adds support for generating csproj files for intellisense purposes, auto discovery of installations, etc.", - "version": "1.2.3", - "unity": "2019.2", - "unityRelease": "0a12", - "relatedPackages": { - "com.unity.ide.vscode.tests": "1.2.3" - }, - "upmCi": { - "footprint": "ab99793db10bad3c377fc6971b0b21989002c495" - }, - "repository": { - "url": "https://github.cds.internal.unity3d.com/unity/com.unity.ide.vscode.git", - "type": "git", - "revision": "547f63839bdc87e0aed2c9e0d84f8f6336a83ea3" - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/CHANGELOG.md b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/CHANGELOG.md deleted file mode 100644 index c0c0313..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/CHANGELOG.md +++ /dev/null @@ -1,171 +0,0 @@ -# Changelog -## [1.1.20] - 2020-12-04 -- The logscope is now available in OneTimeTearDown. -- Fixed an issue where failing tests would not result in the correct exit code if a domain reload happens after the test has run (DS-1304). -- If a player build fails, the test specific build settings should be cleaned up and the original values restored as intended (DS-1001). -- Added better error message when using TestRunCallbackAttribute and the implementation is stripped away (DS-454). -- Fixed an issue where the test results xml would have a zero end-time for tests executed before a domain reload (DSTR-63). -- Fixed OpenSource in case of a Test in a nested class (DSTR-6) -- UnityTests with a domain reload now works correctly in combination with Retry and Repeat attributes (DS-428). -- Fixed OpenSource in case of Tests located inside a package (DS-432) -- Update `com.unity.ext.nunit` version to 1.0.6 - -## [1.1.19] - 2020-11-17 -- Command line runs with an inconclusive test result now exit with exit code 2 (case DS-951). -- Fixed timeout during UnitySetUp which caoused test to pass instead of failing due to wrong time format. -- Timeout exeption thrown when timeout time is exeded in the UnitySetup when using `WaitForSeconds(n)`. -- Updating `com.unity.ext.nunit` version -- Method marked with UnityTest that are not returning IEnumerator is now giving a proper error (DS-1059). - -## [1.1.18] - 2020-10-07 -- Fixed issue of timeout during UnitySetUp which wasn't detected and allowed the test to pass instead of failing (case DSTR-21) - -## [1.1.17] - 2020-10-05 -- Fixed an issue where the WaitForDomainReload yield instruction would sometimes let the test continue for one frame before the domain reload. -- Added support for negation in filters using !. E.g. !CategoryToExclude. -- Fixed an issue where if the first test enters PlayMode from UnitySetup then the test body will not run on consecutive runs (case 1260901). -- Clear Results button clears the test results in the GUI (DSTR-16) -- Improved UI in Test Runner window, added new options: - - Run Selected Tests in player - - Build/Export project with all tests in player - - Build/Export project with selected tests in player -- Fixed issue on loading EditMode or Playmode test tree in the wrong tab when switching between tabs when TestRunner is loading (DS-865) - -## [1.1.16] - 2020-07-09 -- Follow up on fix when UTF picks up on outdated compilation errors - -## [1.1.15] - 2020-07-02 -- Fixed an issue where an exception is thrown on getting the enumerator of a UnityTest would result in stopping the test run instead of failing it (case 1212000). -- Including a trailing semi-colon in a testName filter no longer results in all tests being run (case 1171200). -- Fixed and issue when Unity Test Framework exits editor on an outdated script compilation error (during api updates) - -## [1.1.14] - 2020-04-03 -- Added the 'assemblyNames' command line argument for filtering on the assembly level. -- The dll and project level of the tree view should now correctly show the results when running tests in a player (case 1197026). -- Optimize usage of player connection when transfering test results (case 1229200). -- Ignore internal test framework tests assertions (case 1206961). - -## [1.1.13] - 2020-03-16 -- Fixed an issue where a combination of Entering / Exiting playmode and recompiling scripts would result in the test run repeating (case 1213958). -- Fixed a regression from 1.1.12 where prefabs left in the scene would be cleaned up to aggressively. -- Fixed Test execution timed out. No activity received from the player in 600 seconds error when player is not supposed to start (case 1225147) - -## [1.1.12] - 2020-03-02 -- Now 'Open error line' for a failed UTF test does not throw exceptions for corrupted testable pdb in Editor release mode (case 1118259) -- Fixed an issue where running a test fixture would also run other fixtures with the same full name (namespace plus classname) in other assemblies (case 1197385). -- Running tests with the same full name, with a domain reload inbetween, will no longer fail to initialize the fixture of the second class (case 1205240). -- Running a playmode tests with "Maximize on Play" will now correctly show the result of the tests in the test runner window (case 1014908). -- Fixed an issue where leaving a game object in a scene with a DontSaveInEditor hideFlags would result in an error on cleanup (case 1136883). -- Now ITestPlayerBuildModifier.ModifyOptions is called as expected when running tests on a device (case 1213845) - -## [1.1.11] - 2020-01-16 -- Fixed test runner dlls got included into player build (case 1211624) -- Passing a non-full-path of XML file for -testResults in Unity Batchmode issue resolved, now passing "result.xml" creates the result file in the project file directory (case 959078) -- Respect Script Debugging build setting when running tests - -## [1.1.10] - 2019-12-19 -- Introduced PostSuccessfulLaunchAction callback -- Fixed an issue where canceling a UnityTest while it was running would incorrectly mark it as passed instead of canceled. -- Added command line argument for running tests synchronously. -- The test search bar now handles null values correctly. -- The test output pane now retains its size on domain reloads. - -## [1.1.9] - 2019-12-12 -- Rolled back refactoring to the test run system, as it caused issues in some corner cases. - -## [1.1.8] - 2019-11-15 -- Ensured that a resumed test run is continued instantly. - -## [1.1.7] - 2019-11-14 -- Fixed an issue with test runs after domain reload. - -## [1.1.6] - 2019-11-12 -- Building a player for test will no longer look in unrelated assemblies for relevant attributes. - -## [1.1.5] - 2019-10-23 -- Fixed a regression to synchronous runs introduced in 1.1.4. - -## [1.1.4] - 2019-10-15 -- Running tests in batch mode now correctly returns error code 3 (RunError) when a timeout or a build error occurs. -- Fixed an issue where a test run in a player would time out, if the player takes longer than 10 minutes to run. -- Added command line argument and api setting for specifying custom heartbeat timeout for running on players. - -## [1.1.3] - 2019-09-23 -- Fixed a regression where tests in a player would report a timeout after a test run is finished. -- Made it possible for the ui to change its test items when the test tree changes without script compilation. -- Added synchronous runs as an option to the TestRunnerApi. - -## [1.1.2] - 2019-09-11 -- Fixed an issue where Run Selected would run all tests in the category, if a category filter was selected, regardless of what tests were selected. -- Unsupported attributes used in UnityTests now give an explicit error. -- Added support for the Repeat and Retry attributes in UnityTests (case 1131940). -- Tests with a explicit timeout higher than 10 minutes, no longer times out after running longer than 10 minutes when running from command line (case 1125991). -- Fixed a performance regression in the test runner api result reporting, introduced in 2018.3 (case 1109865). -- Fixed an issue where parameterized test fixtures would not run if selected in the test tree (case 1092244). -- Pressing Clear Results now also correctly clears the counters on the test list (case 1181763). -- Prebuild setup now handles errors logged with Debug.LogError and stops the run if any is logged (case 1115240). It now also supports LogAssert.Expect. - -## [1.1.1] - 2019-08-07 -- Tests retrieved as a test list with the test runner api incorrectly showed both mode as their TestMode. -- Fixed a compatibility issue with running tests from rider. - -## [1.1.0] - 2019-07-30 -- Introduced the TestRunnerApi for running tests programmatically from elsewhere inside the Editor. -- Introduced yield instructions for recompiling scripts and awaiting a domain reload in Edit Mode tests. -- Added a button to the Test Runner UI for clearing the results. - -## [1.0.18] - 2019-07-15 -- Included new full documentation of the test framework. - -## [1.0.17] - 2019-07-11 -- Fixed an issue where the Test Runner window wouldn’t frame selected items after search filter is cleared. -- Fixed a regression where playmode test application on the IOS platform would not quit after the tests are done. - -## [1.0.16] - 2019-06-20 -- Fixed an issue where the Test Runner window popped out if it was docked, or if something else was docked next to it, when re-opened (case 1158961) -- Fixed a regression where the running standalone playmode tests from the ui would result in an error. - -## [1.0.15] - 2019-06-18 -- Added new `[TestMustExpectAllLogs]` attribute, which automatically does `LogAssert.NoUnexpectedReceived()` at the end of affected tests. See docs for this attribute for more info on usage. -- Fixed a regression where no tests would be run if multiple filters are specified. E.g. selecting both a whole assembly and an individual test in the ui. -- Fixed an issue where performing `Run Selected` on a selected assembly would run all assemblies. -- Introduced the capability to do a split build and run, when running playmode tests on standalone devices. -- Fixed an error in ConditionalIgnore, if the condition were not set. - -## [1.0.14] - 2019-05-27 -- Fixed issue preventing scene creation in IPrebuildSetup.Setup callback when running standalone playmode tests. -- Fixed an issue where test assemblies would sometimes not be ordered alphabetically. -- Added module references to the package for the required modules: imgui and jsonserialize. -- Added a ConditionalIgnore attribute to help ignoring tests only under specific conditions. -- Fixed a typo in the player test window (case 1148671). - -## [1.0.13] - 2019-05-07 -- Fixed a regression where results from the player would no longer update correctly in the UI (case 1151147). - -## [1.0.12] - 2019-04-16 -- Added specific unity release to the package information. - -## [1.0.11] - 2019-04-10 -- Fixed a regression from 1.0.10 where test-started events were triggered multiple times after a domain reload. - -## [1.0.10] - 2019-04-08 -- Fixed an issue where test-started events would not be fired correctly after a test performing a domain reload (case 1141530). -- The UI should correctly run tests inside a nested class, when that class is selected. -- All actions should now correctly display a prefix when reporting test result. E.g. "TearDown :". -- Errors logged with Debug.LogError in TearDowns now append the error, rather than overwriting the existing result (case 1114306). -- Incorrect implementations of IWrapTestMethod and IWrapSetUpTearDown now gives a meaningful error. -- Fixed a regression where the Test Framework would run TearDown in a base class before the inheriting class (case 1142553). -- Fixed a regression introduced in 1.0.9 where tests with the Explicit attribute could no longer be executed. - -## [1.0.9] - 2019-03-27 -- Fixed an issue where a corrupt instance of the test runner window would block for a new being opened. -- Added the required modules to the list of package requirements. -- Fixed an issue where errors would happen if the test filter ui was clicked before the ui is done loading. -- Fix selecting items with duplicate names in test hierarchy of Test Runner window (case 987587). -- Fixed RecompileScripts instruction which we use in tests (case 1128994). -- Fixed an issue where using multiple filters on tests would sometimes give an incorrect result. - -## [1.0.7] - 2019-03-12 -### This is the first release of *Unity Package com.unity.test-framework*. - -- Migrated the test-framework from the current extension in unity. diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/CONTRIBUTING.md b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/CONTRIBUTING.md deleted file mode 100644 index 4a67963..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/CONTRIBUTING.md +++ /dev/null @@ -1,9 +0,0 @@ -# Contributing - -## If you are interested in contributing, here are some ground rules: -* ... Define guidelines & rules for what contributors need to know to successfully make Pull requests against your repo ... - -## All contributions are subject to the [Unity Contribution Agreement(UCA)](https://unity3d.com/legal/licenses/Unity_Contribution_Agreement) -By making a pull request, you are confirming agreement to the terms and conditions of the UCA, including that your Contributions are your original creation and that you have complete right and authority to make your Contributions. - -## Once you have a change ready following these ground rules. Simply make a pull request diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/LICENSE.md b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/LICENSE.md deleted file mode 100644 index 1819021..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/LICENSE.md +++ /dev/null @@ -1,5 +0,0 @@ -Test Framework copyright © 2020 Unity Technologies ApS - -Licensed under the Unity Companion License for Unity-dependent projects--see [Unity Companion License](http://www.unity3d.com/legal/licenses/Unity_Companion_License). - -Unless expressly provided otherwise, the Software under this license is made available strictly on an “AS IS” BASIS WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. Please review the license for details on these and other terms and conditions. diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/CallbacksDelegator.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/CallbacksDelegator.cs deleted file mode 100644 index 9418464..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/CallbacksDelegator.cs +++ /dev/null @@ -1,136 +0,0 @@ -using System; -using System.Linq; -using System.Text; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using UnityEngine; -using UnityEngine.TestRunner.TestLaunchers; - -namespace UnityEditor.TestTools.TestRunner.Api -{ - internal class CallbacksDelegator : ICallbacksDelegator - { - private static CallbacksDelegator s_instance; - public static CallbacksDelegator instance - { - get - { - if (s_instance == null) - { - s_instance = new CallbacksDelegator(CallbacksHolder.instance.GetAll, new TestAdaptorFactory()); - } - return s_instance; - } - } - - private readonly Func m_CallbacksProvider; - private readonly ITestAdaptorFactory m_AdaptorFactory; - - public CallbacksDelegator(Func callbacksProvider, ITestAdaptorFactory adaptorFactory) - { - m_CallbacksProvider = callbacksProvider; - m_AdaptorFactory = adaptorFactory; - } - - public void RunStarted(ITest testsToRun) - { - m_AdaptorFactory.ClearResultsCache(); - var testRunnerTestsToRun = m_AdaptorFactory.Create(testsToRun); - TryInvokeAllCallbacks(callbacks => callbacks.RunStarted(testRunnerTestsToRun)); - } - - public void RunStartedRemotely(byte[] testsToRunData) - { - var testData = Deserialize(testsToRunData); - var testsToRun = m_AdaptorFactory.BuildTree(testData); - TryInvokeAllCallbacks(callbacks => callbacks.RunStarted(testsToRun)); - } - - public void RunFinished(ITestResult testResults) - { - var testResult = m_AdaptorFactory.Create(testResults); - TryInvokeAllCallbacks(callbacks => callbacks.RunFinished(testResult)); - } - - public void RunFinishedRemotely(byte[] testResultsData) - { - var remoteTestResult = Deserialize(testResultsData); - var testResult = m_AdaptorFactory.Create(remoteTestResult.results.First(), remoteTestResult); - TryInvokeAllCallbacks(callbacks => callbacks.RunFinished(testResult)); - } - - public void RunFailed(string failureMessage) - { - Debug.LogError(failureMessage); - TryInvokeAllCallbacks(callbacks => - { - var errorCallback = callbacks as IErrorCallbacks; - if (errorCallback != null) - { - errorCallback.OnError(failureMessage); - } - }); - } - - public void TestStarted(ITest test) - { - var testRunnerTest = m_AdaptorFactory.Create(test); - TryInvokeAllCallbacks(callbacks => callbacks.TestStarted(testRunnerTest)); - } - - public void TestStartedRemotely(byte[] testStartedData) - { - var testData = Deserialize(testStartedData); - var testsToRun = m_AdaptorFactory.BuildTree(testData); - - TryInvokeAllCallbacks(callbacks => callbacks.TestStarted(testsToRun)); - } - - public void TestFinished(ITestResult result) - { - var testResult = m_AdaptorFactory.Create(result); - TryInvokeAllCallbacks(callbacks => callbacks.TestFinished(testResult)); - } - - public void TestFinishedRemotely(byte[] testResultsData) - { - var remoteTestResult = Deserialize(testResultsData); - var testResult = m_AdaptorFactory.Create(remoteTestResult.results.First(), remoteTestResult); - TryInvokeAllCallbacks(callbacks => callbacks.TestFinished(testResult)); - } - - public void TestTreeRebuild(ITest test) - { - m_AdaptorFactory.ClearTestsCache(); - var testAdaptor = m_AdaptorFactory.Create(test); - TryInvokeAllCallbacks(callbacks => - { - var rebuildCallbacks = callbacks as ITestTreeRebuildCallbacks; - if (rebuildCallbacks != null) - { - rebuildCallbacks.TestTreeRebuild(testAdaptor); - } - }); - } - - private void TryInvokeAllCallbacks(Action callbackAction) - { - foreach (var testRunnerApiCallback in m_CallbacksProvider()) - { - try - { - callbackAction(testRunnerApiCallback); - } - catch (Exception ex) - { - Debug.LogException(ex); - } - } - } - - private static T Deserialize(byte[] data) - { - return JsonUtility.FromJson(Encoding.UTF8.GetString(data)); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/CallbacksDelegatorListener.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/CallbacksDelegatorListener.cs deleted file mode 100644 index b3cb5b8..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/CallbacksDelegatorListener.cs +++ /dev/null @@ -1,28 +0,0 @@ -using UnityEngine; -using UnityEngine.TestTools.TestRunner; - -namespace UnityEditor.TestTools.TestRunner.Api -{ - internal class CallbacksDelegatorListener : ScriptableObject, ITestRunnerListener - { - public void RunStarted(NUnit.Framework.Interfaces.ITest testsToRun) - { - CallbacksDelegator.instance.RunStarted(testsToRun); - } - - public void RunFinished(NUnit.Framework.Interfaces.ITestResult testResults) - { - CallbacksDelegator.instance.RunFinished(testResults); - } - - public void TestStarted(NUnit.Framework.Interfaces.ITest test) - { - CallbacksDelegator.instance.TestStarted(test); - } - - public void TestFinished(NUnit.Framework.Interfaces.ITestResult result) - { - CallbacksDelegator.instance.TestFinished(result); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/CallbacksHolder.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/CallbacksHolder.cs deleted file mode 100644 index 91acb8c..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/CallbacksHolder.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace UnityEditor.TestTools.TestRunner.Api -{ - internal class CallbacksHolder : ScriptableSingleton, ICallbacksHolder - { - private List m_Callbacks = new List(); - public void Add(ICallbacks callback, int priority) - { - m_Callbacks.Add(new CallbackWithPriority(callback, priority)); - } - - public void Remove(ICallbacks callback) - { - m_Callbacks.RemoveAll(callbackWithPriority => callbackWithPriority.Callback == callback); - } - - public ICallbacks[] GetAll() - { - return m_Callbacks.OrderByDescending(callback => callback.Priority).Select(callback => callback.Callback).ToArray(); - } - - public void Clear() - { - m_Callbacks.Clear(); - } - - private struct CallbackWithPriority - { - public ICallbacks Callback; - public int Priority; - public CallbackWithPriority(ICallbacks callback, int priority) - { - Callback = callback; - Priority = priority; - } - } - - // Sometimes - such as when we want to test the test framework itself - it's necessary to launch a test run from - // inside a test. Because callbacks are registered globally, this can cause a lot of confusion (e.g. the in-test - // run will emit UTP messages, utterly confusing UTR). In such circumstances the safest thing to do is to - // temporarily suppress all registered callbacks for the duration of the in-test run. This method can be called - // to set up a using() block which will suppress the callbacks for the scope. - public IDisposable TemporarilySuppressCallbacks() - { - return new Suppressor(this); - } - - private sealed class Suppressor : IDisposable - { - private readonly CallbacksHolder _instance; - private readonly List _suppressed; - - public Suppressor(CallbacksHolder instance) - { - _instance = instance; - _suppressed = new List(instance.m_Callbacks); - instance.m_Callbacks.Clear(); - } - - public void Dispose() - { - _instance.m_Callbacks.AddRange(_suppressed); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ExecutionSettings.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ExecutionSettings.cs deleted file mode 100644 index e7e88e6..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ExecutionSettings.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System; -using System.Linq; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal.Filters; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner.Api -{ - /// - /// A set of execution settings defining how to run tests, using the . - /// - [Serializable] - public class ExecutionSettings - { - /// - /// Creates an instance with a given set of filters, if any. - /// - /// Set of filters - public ExecutionSettings(params Filter[] filtersToExecute) - { - filters = filtersToExecute; - } - - [SerializeField] - internal BuildTarget? targetPlatform; - - /// - /// An instance of to set up before running tests on a Player. - /// - // Note: Is not available after serialization - public ITestRunSettings overloadTestRunSettings; - - [SerializeField] - internal Filter filter; - ///A collection of to execute tests on. - [SerializeField] - public Filter[] filters; - /// - /// Note that this is only supported for EditMode tests, and that tests which take multiple frames (i.e. [UnityTest] tests, or tests with [UnitySetUp] or [UnityTearDown] scaffolding) will be filtered out. - /// - /// If true, the call to Execute() will run tests synchronously, guaranteeing that all tests have finished running by the time the call returns. - [SerializeField] - public bool runSynchronously; - /// - /// The time, in seconds, the editor should wait for heartbeats after starting a test run on a player. This defaults to 10 minutes. - /// - [SerializeField] - public int playerHeartbeatTimeout = 60*10; - - internal bool EditModeIncluded() - { - return filters.Any(f => IncludesTestMode(f.testMode, TestMode.EditMode)); - } - - internal bool PlayModeInEditorIncluded() - { - return filters.Any(f => IncludesTestMode(f.testMode, TestMode.PlayMode) && targetPlatform == null); - } - - internal bool PlayerIncluded() - { - return filters.Any(f => IncludesTestMode(f.testMode, TestMode.PlayMode) && targetPlatform != null); - } - - private static bool IncludesTestMode(TestMode testMode, TestMode modeToCheckFor) - { - return (testMode & modeToCheckFor) == modeToCheckFor; - } - - internal ITestFilter BuildNUnitFilter() - { - return new OrFilter(filters.Select(f => f.ToRuntimeTestRunnerFilter(runSynchronously).BuildNUnitFilter()).ToArray()); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/Filter.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/Filter.cs deleted file mode 100644 index fb5d272..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/Filter.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System; -using UnityEngine; -using UnityEngine.TestTools.TestRunner.GUI; - -namespace UnityEditor.TestTools.TestRunner.Api -{ - /// - /// The filter class provides the with a specification of what tests to run when [running tests programmatically](https://docs.unity3d.com/Packages/com.unity.test-framework@1.1/manual/extension-run-tests.html). - /// - [Serializable] - public class Filter - { - /// - /// An enum flag that specifies if Edit Mode or Play Mode tests should run. - /// - [SerializeField] - public TestMode testMode; - /// - /// The full name of the tests to match the filter. This is usually in the format FixtureName.TestName. If the test has test arguments, then include them in parenthesis. E.g. MyTestClass2.MyTestWithMultipleValues(1). - /// - [SerializeField] - public string[] testNames; - /// - /// The same as testNames, except that it allows for Regex. This is useful for running specific fixtures or namespaces. E.g. "^MyNamespace\\." Runs any tests where the top namespace is MyNamespace. - /// - [SerializeField] - public string[] groupNames; - /// - /// The name of a [Category](https://nunit.org/docs/2.2.7/category.html) to include in the run. Any test or fixtures runs that have a Category matching the string. - /// - [SerializeField] - public string[] categoryNames; - /// - /// The name of assemblies included in the run. That is the assembly name, without the .dll file extension. E.g., MyTestAssembly - /// - [SerializeField] - public string[] assemblyNames; - /// - /// The platform to run the test on. If set to null, then the Editor is the target for the tests. - /// - [SerializeField] - public BuildTarget? targetPlatform; - - internal RuntimeTestRunnerFilter ToRuntimeTestRunnerFilter(bool synchronousOnly) - { - return new RuntimeTestRunnerFilter() - { - testNames = testNames, - categoryNames = categoryNames, - groupNames = groupNames, - assemblyNames = assemblyNames, - synchronousOnly = synchronousOnly - }; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ICallbacks.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ICallbacks.cs deleted file mode 100644 index 5a7b2ba..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ICallbacks.cs +++ /dev/null @@ -1,29 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner.Api -{ - /// - /// Callbacks in the for the test stages when running tests. - /// - public interface ICallbacks - { - /// - /// A callback invoked when a test run is started. - /// - /// The full loaded test tree. - void RunStarted(ITestAdaptor testsToRun); - /// - /// A callback invoked when a test run is finished. - /// - /// The result of the test run. - void RunFinished(ITestResultAdaptor result); - /// - /// A callback invoked when each individual node of the test tree has started executing. - /// - /// The test node currently executed. - void TestStarted(ITestAdaptor test); - /// - /// A callback invoked when each individual node of the test tree has finished executing. - /// - /// The result of the test tree node after it had been executed. - void TestFinished(ITestResultAdaptor result); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ICallbacksDelegator.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ICallbacksDelegator.cs deleted file mode 100644 index 5622c82..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ICallbacksDelegator.cs +++ /dev/null @@ -1,18 +0,0 @@ -using NUnit.Framework.Interfaces; - -namespace UnityEditor.TestTools.TestRunner.Api -{ - internal interface ICallbacksDelegator - { - void RunStarted(ITest testsToRun); - void RunStartedRemotely(byte[] testsToRunData); - void RunFinished(ITestResult testResults); - void RunFinishedRemotely(byte[] testResultsData); - void RunFailed(string failureMessage); - void TestStarted(ITest test); - void TestStartedRemotely(byte[] testStartedData); - void TestFinished(ITestResult result); - void TestFinishedRemotely(byte[] testResultsData); - void TestTreeRebuild(ITest test); - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ICallbacksHolder.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ICallbacksHolder.cs deleted file mode 100644 index 5d3a652..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ICallbacksHolder.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner.Api -{ - internal interface ICallbacksHolder - { - void Add(ICallbacks callback, int priority); - void Remove(ICallbacks callback); - ICallbacks[] GetAll(); - void Clear(); - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/IErrorCallbacks.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/IErrorCallbacks.cs deleted file mode 100644 index d7705f0..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/IErrorCallbacks.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner.Api -{ - /// - /// An extended version of the , which get invoked if the test run fails due to a build error or if any has a failure. - /// The error message detailing the reason for the run to fail. - void OnError(string message); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ITestAdaptor.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ITestAdaptor.cs deleted file mode 100644 index 3d6425b..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ITestAdaptor.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System.Collections.Generic; -using NUnit.Framework.Interfaces; - -namespace UnityEditor.TestTools.TestRunner.Api -{ - /// - /// ```ITestAdaptor``` is a representation of a node in the test tree implemented as a wrapper around the [NUnit](http://www.nunit.org/) [ITest](https://github.com/nunit/nunit/blob/master/src/NUnitFramework/framework/Interfaces/ITest.cs) interface. - /// - public interface ITestAdaptor - { - /// The ID of the test tree node. The ID can change if you add new tests to the suite. Use UniqueName, if you want to have a more permanent point of reference. - string Id { get; } - /// The name of the test. E.g.,```MyTest```. - string Name { get; } - /// The full name of the test. E.g., ```MyNamespace.MyTestClass.MyTest```. - string FullName { get; } - /// The total number of test cases in the node and all sub-nodes. - int TestCaseCount { get; } - /// Whether the node has any children. - bool HasChildren { get; } - /// True if the node is a test suite/fixture, false otherwise. - bool IsSuite { get; } - /// The child nodes. - IEnumerable Children { get; } - /// The parent node, if any. - ITestAdaptor Parent { get; } - /// The test case timeout in milliseconds. Note that this value is only available on TestFinished. - int TestCaseTimeout { get; } - /// The type of test class as an ```NUnit``` . If the node is not a test class, then the value is null. - ITypeInfo TypeInfo { get; } - /// The Nunit of the test method. If the node is not a test method, then the value is null. - IMethodInfo Method { get; } - /// An array of the categories applied to the test or fixture. - string[] Categories { get; } - /// Returns true if the node represents a test assembly, false otherwise. - bool IsTestAssembly { get; } - /// The run state of the test node. Either ```NotRunnable```, ```Runnable```, ```Explicit```, ```Skipped```, or ```Ignored```. - RunState RunState { get; } - /// The description of the test. - string Description { get; } - /// The skip reason. E.g., if ignoring the test. - string SkipReason { get; } - /// The ID of the parent node. - string ParentId { get; } - /// The full name of the parent node. - string ParentFullName { get; } - /// A unique generated name for the test node. E.g., ```Tests.dll/MyNamespace/MyTestClass/[Tests][MyNamespace.MyTestClass.MyTest]```. - string UniqueName { get; } - /// A unique name of the parent node. E.g., ```Tests.dll/MyNamespace/[Tests][MyNamespace.MyTestClass][suite]```. - string ParentUniqueName { get; } - /// The child index of the node in its parent. - int ChildIndex { get; } - /// The mode of the test. Either **Edit Mode** or **Play Mode**. - TestMode TestMode { get; } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ITestAdaptorFactory.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ITestAdaptorFactory.cs deleted file mode 100644 index 578c053..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ITestAdaptorFactory.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System.Collections.Generic; -using NUnit.Framework.Interfaces; -using UnityEngine.TestRunner.TestLaunchers; - -namespace UnityEditor.TestTools.TestRunner.Api -{ - internal interface ITestAdaptorFactory - { - ITestAdaptor Create(ITest test); - ITestAdaptor Create(RemoteTestData testData); - ITestResultAdaptor Create(ITestResult testResult); - ITestResultAdaptor Create(RemoteTestResultData testResult, RemoteTestResultDataWithTestData allData); - ITestAdaptor BuildTree(RemoteTestResultDataWithTestData data); - IEnumerator BuildTreeAsync(RemoteTestResultDataWithTestData data); - void ClearResultsCache(); - void ClearTestsCache(); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ITestResultAdaptor.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ITestResultAdaptor.cs deleted file mode 100644 index c4c647f..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ITestResultAdaptor.cs +++ /dev/null @@ -1,96 +0,0 @@ -using System; -using System.Collections.Generic; -using NUnit.Framework.Interfaces; - -namespace UnityEditor.TestTools.TestRunner.Api -{ - /// - /// The `ITestResultAdaptor` is the representation of the test results for a node in the test tree implemented as a wrapper around the [NUnit](http://www.nunit.org/) [ITest](https://github.com/nunit/nunit/blob/master/src/NUnitFramework/framework/Interfaces/ITestResults.cs) interface. - /// - public interface ITestResultAdaptor - { - /// The test details of the test result tree node as a - ITestAdaptor Test { get; } - ///The name of the test node. - string Name { get; } - /// Gets the full name of the test result - /// The name of the test result. - string FullName { get; } - ///Gets the state of the result as a string. - /// It returns one of these values: `Success`, `Skipped`, `Failure`, `Explicit`, `Cancelled` - string ResultState { get; } - ///Gets the status of the test as an enum. - ///It returns one of these values:`Inconclusive`, `Skipped`, `Passed`, or `Failed` - TestStatus TestStatus { get; } - /// Gets the elapsed time for running the test in seconds - /// Time in seconds. - double Duration { get; } - /// Gets or sets the time the test started running. - /// A DataTime object. - DateTime StartTime { get; } - ///Gets or sets the time the test finished running. - /// A DataTime object. - DateTime EndTime { get; } - - /// - /// The message associated with a test - /// failure or with not running the test - /// - string Message { get; } - - /// - /// Any stacktrace associated with an - /// error or failure. Not available in - /// the Compact Framework 1.0. - /// - string StackTrace { get; } - - /// - /// The number of asserts executed - /// when running the test and all its children. - /// - int AssertCount { get; } - - /// - /// The number of test cases that failed - /// when running the test and all its children. - /// - int FailCount { get; } - - /// - /// The number of test cases that passed - /// when running the test and all its children. - /// - int PassCount { get; } - - /// - /// The number of test cases that were skipped - /// when running the test and all its children. - /// - int SkipCount { get; } - - /// - ///The number of test cases that were inconclusive - /// when running the test and all its children. - /// - int InconclusiveCount { get; } - - /// - /// Accessing HasChildren should not force creation of the - /// Children collection in classes implementing this interface. - /// - /// True if this result has any child results. - bool HasChildren { get; } - - /// Gets the the collection of child results. - IEnumerable Children { get; } - - /// Gets any text output written to this result. - string Output { get; } - /// - /// Use this to save the results to an XML file - /// - /// The test results as an `NUnit` XML node. - TNode ToXml(); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ITestRunSettings.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ITestRunSettings.cs deleted file mode 100644 index 426eecf..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ITestRunSettings.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; - -namespace UnityEditor.TestTools.TestRunner.Api -{ - /// - /// ITestRunSettings lets you set any of the global settings right before building a Player for a test run and then reverts the settings afterward. ITestRunSettings implements - /// [IDisposable](https://docs.microsoft.com/en-us/dotnet/api/system.idisposable?view=netframework-4.8), and runs after building the Player with tests. - /// - public interface ITestRunSettings : IDisposable - { - /// - /// A method called before building the Player. - /// - void Apply(); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ITestRunnerApi.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ITestRunnerApi.cs deleted file mode 100644 index 3a2388d..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ITestRunnerApi.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; - -namespace UnityEditor.TestTools.TestRunner.Api -{ - internal interface ITestRunnerApi - { - string Execute(ExecutionSettings executionSettings); - void RegisterCallbacks(T testCallbacks, int priority = 0) where T : ICallbacks; - void UnregisterCallbacks(T testCallbacks) where T : ICallbacks; - void RetrieveTestList(TestMode testMode, Action callback); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ITestTreeRebuildCallbacks.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ITestTreeRebuildCallbacks.cs deleted file mode 100644 index e71d026..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/ITestTreeRebuildCallbacks.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner.Api -{ - internal interface ITestTreeRebuildCallbacks : ICallbacks - { - void TestTreeRebuild(ITestAdaptor test); - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/RunState.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/RunState.cs deleted file mode 100644 index 5372580..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/RunState.cs +++ /dev/null @@ -1,33 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner.Api -{ - /// - /// The RunState enum indicates whether a test can be executed. - /// - public enum RunState - { - /// - /// The test is not runnable. - /// - NotRunnable, - - /// - /// The test is runnable. - /// - Runnable, - - /// - /// The test can only be run explicitly - /// - Explicit, - - /// - /// The test has been skipped. This value may appear on a Test when certain attributes are used to skip the test. - /// - Skipped, - - /// - /// The test has been ignored. May appear on a Test, when the IgnoreAttribute is used. - /// - Ignored, - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/TestAdaptor.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/TestAdaptor.cs deleted file mode 100644 index 89274dc..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/TestAdaptor.cs +++ /dev/null @@ -1,142 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using NUnit.Framework; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using UnityEngine.TestRunner.NUnitExtensions; -using UnityEngine.TestRunner.NUnitExtensions.Runner; -using UnityEngine.TestRunner.TestLaunchers; -using UnityEngine.TestTools.Utils; - -namespace UnityEditor.TestTools.TestRunner.Api -{ - internal class TestAdaptor : ITestAdaptor - { - internal TestAdaptor(ITest test, ITestAdaptor[] children = null) - { - Id = test.Id; - Name = test.Name; - var childIndex = -1; - if (test.Properties["childIndex"].Count > 0) - { - childIndex = (int)test.Properties["childIndex"][0]; - } - FullName = childIndex != -1 ? GetIndexedTestCaseName(test.FullName, childIndex) : test.FullName; - TestCaseCount = test.TestCaseCount; - HasChildren = test.HasChildren; - IsSuite = test.IsSuite; - if (UnityTestExecutionContext.CurrentContext != null) - { - TestCaseTimeout = UnityTestExecutionContext.CurrentContext.TestCaseTimeout; - } - else - { - TestCaseTimeout = CoroutineRunner.k_DefaultTimeout; - } - - TypeInfo = test.TypeInfo; - Method = test.Method; - Categories = test.GetAllCategoriesFromTest().Distinct().ToArray(); - IsTestAssembly = test is TestAssembly; - RunState = (RunState)Enum.Parse(typeof(RunState), test.RunState.ToString()); - Description = (string)test.Properties.Get(PropertyNames.Description); - SkipReason = test.GetSkipReason(); - ParentId = test.GetParentId(); - ParentFullName = test.GetParentFullName(); - UniqueName = test.GetUniqueName(); - ParentUniqueName = test.GetParentUniqueName(); - ChildIndex = childIndex; - - if (test.Parent != null) - { - if (test.Parent.Parent == null) // Assembly level - { - TestMode = (TestMode)Enum.Parse(typeof(TestMode),test.Properties.Get("platform").ToString()); - } - } - - Children = children; - } - - public void SetParent(ITestAdaptor parent) - { - Parent = parent; - if (parent != null) - { - TestMode = parent.TestMode; - } - } - - internal TestAdaptor(RemoteTestData test) - { - Id = test.id; - Name = test.name; - FullName = test.ChildIndex != -1 ? GetIndexedTestCaseName(test.fullName, test.ChildIndex) : test.fullName; - TestCaseCount = test.testCaseCount; - HasChildren = test.hasChildren; - IsSuite = test.isSuite; - m_ChildrenIds = test.childrenIds; - TestCaseTimeout = test.testCaseTimeout; - Categories = test.Categories; - IsTestAssembly = test.IsTestAssembly; - RunState = (RunState)Enum.Parse(typeof(RunState), test.RunState.ToString()); - Description = test.Description; - SkipReason = test.SkipReason; - ParentId = test.ParentId; - UniqueName = test.UniqueName; - ParentUniqueName = test.ParentUniqueName; - ParentFullName = test.ParentFullName; - ChildIndex = test.ChildIndex; - TestMode = TestMode.PlayMode; - } - - internal void ApplyChildren(IEnumerable allTests) - { - Children = m_ChildrenIds.Select(id => allTests.First(t => t.Id == id)).ToArray(); - if (!string.IsNullOrEmpty(ParentId)) - { - Parent = allTests.FirstOrDefault(t => t.Id == ParentId); - } - } - - public string Id { get; private set; } - public string Name { get; private set; } - public string FullName { get; private set; } - public int TestCaseCount { get; private set; } - public bool HasChildren { get; private set; } - public bool IsSuite { get; private set; } - public IEnumerable Children { get; private set; } - public ITestAdaptor Parent { get; private set; } - public int TestCaseTimeout { get; private set; } - public ITypeInfo TypeInfo { get; private set; } - public IMethodInfo Method { get; private set; } - private string[] m_ChildrenIds; - public string[] Categories { get; private set; } - public bool IsTestAssembly { get; private set; } - public RunState RunState { get; } - public string Description { get; } - public string SkipReason { get; } - public string ParentId { get; } - public string ParentFullName { get; } - public string UniqueName { get; } - public string ParentUniqueName { get; } - public int ChildIndex { get; } - public TestMode TestMode { get; private set; } - - private static string GetIndexedTestCaseName(string fullName, int index) - { - var generatedTestSuffix = " GeneratedTestCase" + index; - if (fullName.EndsWith(")")) - { - // Test names from generated TestCaseSource look like Test(TestCaseSourceType) - // This inserts a unique test case index in the name, so that it becomes Test(TestCaseSourceType GeneratedTestCase0) - return fullName.Substring(0, fullName.Length - 1) + generatedTestSuffix + fullName[fullName.Length - 1]; - } - - // In some cases there can be tests with duplicate names generated in other ways and they won't have () in their name - // We just append a suffix at the end of the name in that case - return fullName + generatedTestSuffix; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/TestAdaptorFactory.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/TestAdaptorFactory.cs deleted file mode 100644 index 9c747f9..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/TestAdaptorFactory.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using NUnit.Framework.Interfaces; -using UnityEngine.TestRunner.NUnitExtensions; -using UnityEngine.TestRunner.TestLaunchers; - -namespace UnityEditor.TestTools.TestRunner.Api -{ - internal class TestAdaptorFactory : ITestAdaptorFactory - { - private Dictionary m_TestAdaptorCache = new Dictionary(); - private Dictionary m_TestResultAdaptorCache = new Dictionary(); - public ITestAdaptor Create(ITest test) - { - var uniqueName = test.GetUniqueName(); - if (m_TestAdaptorCache.ContainsKey(uniqueName)) - { - return m_TestAdaptorCache[uniqueName]; - } - - var adaptor = new TestAdaptor(test, test.Tests.Select(Create).ToArray()); - foreach (var child in adaptor.Children) - { - (child as TestAdaptor).SetParent(adaptor); - } - m_TestAdaptorCache[uniqueName] = adaptor; - return adaptor; - } - - public ITestAdaptor Create(RemoteTestData testData) - { - return new TestAdaptor(testData); - } - - public ITestResultAdaptor Create(ITestResult testResult) - { - var uniqueName = testResult.Test.GetUniqueName(); - if (m_TestResultAdaptorCache.ContainsKey(uniqueName)) - { - return m_TestResultAdaptorCache[uniqueName]; - } - var adaptor = new TestResultAdaptor(testResult, Create(testResult.Test), testResult.Children.Select(Create).ToArray()); - m_TestResultAdaptorCache[uniqueName] = adaptor; - return adaptor; - } - - public ITestResultAdaptor Create(RemoteTestResultData testResult, RemoteTestResultDataWithTestData allData) - { - return new TestResultAdaptor(testResult, allData); - } - - public ITestAdaptor BuildTree(RemoteTestResultDataWithTestData data) - { - var tests = data.tests.Select(remoteTestData => new TestAdaptor(remoteTestData)).ToList(); - - foreach (var test in tests) - { - test.ApplyChildren(tests); - } - - return tests.First(); - } - - public IEnumerator BuildTreeAsync(RemoteTestResultDataWithTestData data) - { - var tests = data.tests.Select(remoteTestData => new TestAdaptor(remoteTestData)).ToList(); - - for (var index = 0; index < tests.Count; index++) - { - var test = tests[index]; - test.ApplyChildren(tests); - if (index % 100 == 0) - { - yield return null; - } - } - - yield return tests.First(); - } - - public void ClearResultsCache() - { - m_TestResultAdaptorCache.Clear(); - } - - public void ClearTestsCache() - { - m_TestAdaptorCache.Clear(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/TestMode.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/TestMode.cs deleted file mode 100644 index 7a4daec..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/TestMode.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; - -namespace UnityEditor.TestTools.TestRunner.Api -{ - /// - /// A flag indicating whether to run Edit Mode or Play Mode tests. - /// - [Flags] - public enum TestMode - { - /// - /// Run EditMode tests. - /// - EditMode = 1 << 0, - /// - /// Run PlayMode tests. - /// - PlayMode = 1 << 1 - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/TestResultAdaptor.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/TestResultAdaptor.cs deleted file mode 100644 index 61501ac..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/TestResultAdaptor.cs +++ /dev/null @@ -1,87 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using NUnit.Framework.Interfaces; -using UnityEngine.TestRunner.TestLaunchers; - -namespace UnityEditor.TestTools.TestRunner.Api -{ - internal class TestResultAdaptor : ITestResultAdaptor - { - private TNode m_Node; - - internal TestResultAdaptor(ITestResult result, ITestAdaptor test, ITestResultAdaptor[] children = null) - { - Test = test; - Name = result.Name; - FullName = result.FullName; - ResultState = result.ResultState.ToString(); - TestStatus = ParseTestStatus(result.ResultState.Status); - Duration = result.Duration; - StartTime = result.StartTime; - EndTime = result.EndTime; - Message = result.Message; - StackTrace = result.StackTrace; - AssertCount = result.AssertCount; - FailCount = result.FailCount; - PassCount = result.PassCount; - SkipCount = result.SkipCount; - InconclusiveCount = result.InconclusiveCount; - HasChildren = result.HasChildren; - Output = result.Output; - Children = children; - m_Node = result.ToXml(true); - } - - internal TestResultAdaptor(RemoteTestResultData result, RemoteTestResultDataWithTestData allData) - { - Test = new TestAdaptor(allData.tests.First(t => t.id == result.testId)); - Name = result.name; - FullName = result.fullName; - ResultState = result.resultState; - TestStatus = ParseTestStatus(result.testStatus); - Duration = result.duration; - StartTime = result.startTime; - EndTime = result.endTime; - Message = result.message; - StackTrace = result.stackTrace; - AssertCount = result.assertCount; - FailCount = result.failCount; - PassCount = result.passCount; - SkipCount = result.skipCount; - InconclusiveCount = result.inconclusiveCount; - HasChildren = result.hasChildren; - Output = result.output; - Children = result.childrenIds.Select(childId => new TestResultAdaptor(allData.results.First(r => r.testId == childId), allData)).ToArray(); - m_Node = TNode.FromXml(result.xml); - } - - public ITestAdaptor Test { get; private set; } - public string Name { get; private set; } - public string FullName { get; private set; } - public string ResultState { get; private set; } - public TestStatus TestStatus { get; private set; } - public double Duration { get; private set; } - public DateTime StartTime { get; private set; } - public DateTime EndTime { get; private set; } - public string Message { get; private set; } - public string StackTrace { get; private set; } - public int AssertCount { get; private set; } - public int FailCount { get; private set; } - public int PassCount { get; private set; } - public int SkipCount { get; private set; } - public int InconclusiveCount { get; private set; } - public bool HasChildren { get; private set; } - public IEnumerable Children { get; private set; } - public string Output { get; private set; } - public TNode ToXml() - { - return m_Node; - } - - private static TestStatus ParseTestStatus(NUnit.Framework.Interfaces.TestStatus testStatus) - { - return (TestStatus)Enum.Parse(typeof(TestStatus), testStatus.ToString()); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/TestRunnerApi.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/TestRunnerApi.cs deleted file mode 100644 index df0b3d1..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/TestRunnerApi.cs +++ /dev/null @@ -1,147 +0,0 @@ -using System; -using System.Linq; -using System.Threading; -using UnityEditor.TestTools.TestRunner.CommandLineTest; -using UnityEditor.TestTools.TestRunner.TestRun; -using UnityEngine; -using UnityEngine.TestRunner.TestLaunchers; -using UnityEngine.TestTools; -using UnityEngine.TestTools.NUnitExtensions; - -namespace UnityEditor.TestTools.TestRunner.Api -{ - /// - /// The TestRunnerApi retrieves and runs tests programmatically from code inside the project, or inside other packages. TestRunnerApi is a [ScriptableObject](https://docs.unity3d.com/ScriptReference/ScriptableObject.html). - ///You can initialize the API like this: - /// ``` - /// var testRunnerApi = ScriptableObject.CreateInstance<TestRunnerApi>(); - /// ``` - /// Note: You can subscribe and receive test results in one instance of the API, even if the run starts from another instance. - /// The TestRunnerApi supports the following workflows: - /// - [How to run tests programmatically](https://docs.unity3d.com/Packages/com.unity.test-framework@1.1/manual/extension-run-tests.html) - /// - [How to get test results](https://docs.unity3d.com/Packages/com.unity.test-framework@1.1/manual/extension-get-test-results.html) - /// - [How to retrieve the list of tests](https://docs.unity3d.com/Packages/com.unity.test-framework@1.1/manual/extension-retrieve-test-list.html) - /// - public class TestRunnerApi : ScriptableObject, ITestRunnerApi - { - internal ICallbacksHolder callbacksHolder; - - private ICallbacksHolder m_CallbacksHolder - { - get - { - if (callbacksHolder == null) - { - return CallbacksHolder.instance; - } - - return callbacksHolder; - } - } - - internal Func ScheduleJob = (executionSettings) => - { - var runner = new TestJobRunner(); - return runner.RunJob(new TestJobData(executionSettings)); - }; - /// - /// Starts a test run with a given set of executionSettings. - /// - /// Set of - /// A GUID that identifies the TestJobData. - public string Execute(ExecutionSettings executionSettings) - { - if (executionSettings == null) - { - throw new ArgumentNullException(nameof(executionSettings)); - } - - if ((executionSettings.filters == null || executionSettings.filters.Length == 0) && executionSettings.filter != null) - { - // Map filter (singular) to filters (plural), for backwards compatibility. - executionSettings.filters = new [] {executionSettings.filter}; - } - - if (executionSettings.targetPlatform == null && executionSettings.filters != null && - executionSettings.filters.Length > 0) - { - executionSettings.targetPlatform = executionSettings.filters[0].targetPlatform; - } - - return ScheduleJob(executionSettings); - } - - /// - /// Sets up a given instance of to be invoked on test runs. - /// - /// The test callbacks to be invoked - public void RegisterCallbacks(T testCallbacks, int priority = 0) where T : ICallbacks - { - if (testCallbacks == null) - { - throw new ArgumentNullException(nameof(testCallbacks)); - } - - m_CallbacksHolder.Add(testCallbacks, priority); - } - /// - /// Unregister an instance of to no longer receive callbacks from test runs. - /// - /// The test callbacks to unregister. - public void UnregisterCallbacks(T testCallbacks) where T : ICallbacks - { - if (testCallbacks == null) - { - throw new ArgumentNullException(nameof(testCallbacks)); - } - - m_CallbacksHolder.Remove(testCallbacks); - } - - internal void RetrieveTestList(ExecutionSettings executionSettings, Action callback) - { - if (executionSettings == null) - { - throw new ArgumentNullException(nameof(executionSettings)); - } - - var firstFilter = executionSettings.filters?.FirstOrDefault() ?? executionSettings.filter; - RetrieveTestList(firstFilter.testMode, callback); - } - /// - /// Retrieve the full test tree as ITestAdaptor for a given test mode. This is obsolete. Use TestRunnerApi.RetrieveTestTree instead. - /// - /// - /// - public void RetrieveTestList(TestMode testMode, Action callback) - { - if (callback == null) - { - throw new ArgumentNullException(nameof(callback)); - } - - var platform = ParseTestMode(testMode); - var testAssemblyProvider = new EditorLoadedTestAssemblyProvider(new EditorCompilationInterfaceProxy(), new EditorAssembliesProxy()); - var testAdaptorFactory = new TestAdaptorFactory(); - var testListCache = new TestListCache(testAdaptorFactory, new RemoteTestResultDataFactory(), TestListCacheData.instance); - var testListProvider = new TestListProvider(testAssemblyProvider, new UnityTestAssemblyBuilder()); - var cachedTestListProvider = new CachingTestListProvider(testListProvider, testListCache, testAdaptorFactory); - - var job = new TestListJob(cachedTestListProvider, platform, (testRoot) => - { - callback(testRoot); - }); - job.Start(); - } - - internal static bool IsRunActive() - { - return RunData.instance.isRunning; - } - - private static TestPlatform ParseTestMode(TestMode testMode) - { - return (((testMode & TestMode.EditMode) == TestMode.EditMode) ? TestPlatform.EditMode : 0) | (((testMode & TestMode.PlayMode) == TestMode.PlayMode) ? TestPlatform.PlayMode : 0); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/TestStatus.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/TestStatus.cs deleted file mode 100644 index 2579bf0..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/Api/TestStatus.cs +++ /dev/null @@ -1,28 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner.Api -{ - /// - /// The TestStatus enum indicates the test result status. - /// - public enum TestStatus - { - /// - /// The test ran with an inconclusive result. - /// - Inconclusive, - - /// - /// The test was skipped. - /// - Skipped, - - /// - /// The test ran and passed. - /// - Passed, - - /// - /// The test ran and failed. - /// - Failed - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/AssemblyInfo.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/AssemblyInfo.cs deleted file mode 100644 index 657c29d..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/AssemblyInfo.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -[assembly: AssemblyTitle("UnityEditor.TestRunner")] -[assembly: InternalsVisibleTo("Assembly-CSharp-Editor-testable")] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] -[assembly: InternalsVisibleTo("Unity.PerformanceTesting.Editor")] -[assembly: InternalsVisibleTo("Unity.IntegrationTests")] -[assembly: InternalsVisibleTo("UnityEditor.TestRunner.Tests")] -[assembly: InternalsVisibleTo("Unity.TestTools.CodeCoverage.Editor")] -[assembly: InternalsVisibleTo("Unity.PackageManagerUI.Develop.Editor")] -[assembly: InternalsVisibleTo("Unity.PackageManagerUI.Develop.EditorTests")] -[assembly: InternalsVisibleTo("Unity.PackageValidationSuite.Editor")] - -[assembly: AssemblyVersion("1.0.0")] diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineParser/CommandLineOption.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineParser/CommandLineOption.cs deleted file mode 100644 index 407cfe8..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineParser/CommandLineOption.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.Linq; - -namespace UnityEditor.TestRunner.CommandLineParser -{ - internal class CommandLineOption : ICommandLineOption - { - Action m_ArgAction; - - public CommandLineOption(string argName, Action action) - { - ArgName = argName; - m_ArgAction = s => action(); - } - - public CommandLineOption(string argName, Action action) - { - ArgName = argName; - m_ArgAction = action; - } - - public CommandLineOption(string argName, Action action) - { - ArgName = argName; - m_ArgAction = s => action(SplitStringToArray(s)); - } - - public string ArgName { get; private set; } - - public void ApplyValue(string value) - { - m_ArgAction(value); - } - - static string[] SplitStringToArray(string value) - { - if (string.IsNullOrEmpty(value)) - { - return null; - } - - return value.Split(new[] {';'}, StringSplitOptions.RemoveEmptyEntries); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineParser/CommandLineOptionSet.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineParser/CommandLineOptionSet.cs deleted file mode 100644 index f67ab2f..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineParser/CommandLineOptionSet.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System; - -namespace UnityEditor.TestRunner.CommandLineParser -{ - internal class CommandLineOptionSet - { - ICommandLineOption[] m_Options; - - public CommandLineOptionSet(params ICommandLineOption[] options) - { - m_Options = options; - } - - public void Parse(string[] args) - { - var i = 0; - while (i < args.Length) - { - var arg = args[i]; - if (!arg.StartsWith("-")) - { - i++; - continue; - } - - string value = null; - if (i + 1 < args.Length && !args[i + 1].StartsWith("-")) - { - value = args[i + 1]; - i++; - } - - ApplyValueToMatchingOptions(arg, value); - i++; - } - } - - private void ApplyValueToMatchingOptions(string argName, string value) - { - foreach (var option in m_Options) - { - if ("-" + option.ArgName == argName) - { - option.ApplyValue(value); - } - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineParser/ICommandLineOption.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineParser/ICommandLineOption.cs deleted file mode 100644 index 792113e..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineParser/ICommandLineOption.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace UnityEditor.TestRunner.CommandLineParser -{ - interface ICommandLineOption - { - string ArgName { get; } - void ApplyValue(string value); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/Executer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/Executer.cs deleted file mode 100644 index 7204617..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/Executer.cs +++ /dev/null @@ -1,134 +0,0 @@ -using System; -using System.Linq; -using UnityEditor.TestRunner.TestLaunchers; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner.CommandLineTest -{ - internal class Executer - { - private ITestRunnerApi m_TestRunnerApi; - private ISettingsBuilder m_SettingsBuilder; - private Action m_LogErrorFormat; - private Action m_LogException; - private Action m_ExitEditorApplication; - private Func m_ScriptCompilationFailedCheck; - - public Executer(ITestRunnerApi testRunnerApi, ISettingsBuilder settingsBuilder, Action logErrorFormat, Action logException, Action exitEditorApplication, Func scriptCompilationFailedCheck) - { - m_TestRunnerApi = testRunnerApi; - m_SettingsBuilder = settingsBuilder; - m_LogErrorFormat = logErrorFormat; - m_LogException = logException; - m_ExitEditorApplication = exitEditorApplication; - m_ScriptCompilationFailedCheck = scriptCompilationFailedCheck; - } - - internal void InitializeAndExecuteRun(string[] commandLineArgs) - { - Api.ExecutionSettings executionSettings; - try - { - executionSettings = m_SettingsBuilder.BuildApiExecutionSettings(commandLineArgs); - if (executionSettings.targetPlatform.HasValue) - RemotePlayerLogController.instance.SetBuildTarget(executionSettings.targetPlatform.Value); - } - catch (SetupException exception) - { - HandleSetupException(exception); - return; - } - - try - { - Debug.Log("Executing tests with settings: " + ExecutionSettingsToString(executionSettings)); - m_TestRunnerApi.Execute(executionSettings); - } - catch (Exception exception) - { - m_LogException(exception); - m_ExitEditorApplication((int)ReturnCodes.RunError); - } - } - - internal ExecutionSettings BuildExecutionSettings(string[] commandLineArgs) - { - return m_SettingsBuilder.BuildExecutionSettings(commandLineArgs); - } - - internal enum ReturnCodes - { - Ok = 0, - Failed = 2, - RunError = 3, - PlatformNotFoundReturnCode = 4 - } - - internal void SetUpCallbacks(ExecutionSettings executionSettings) - { - RemotePlayerLogController.instance.SetLogsDirectory(executionSettings.DeviceLogsDirectory); - - var resultSavingCallback = ScriptableObject.CreateInstance(); - resultSavingCallback.m_ResultFilePath = executionSettings.TestResultsFile; - - var logSavingCallback = ScriptableObject.CreateInstance(); - - m_TestRunnerApi.RegisterCallbacks(resultSavingCallback); - m_TestRunnerApi.RegisterCallbacks(logSavingCallback); - m_TestRunnerApi.RegisterCallbacks(ScriptableObject.CreateInstance(), -10); - } - - internal void ExitOnCompileErrors() - { - if (m_ScriptCompilationFailedCheck()) - { - var handling = s_ExceptionHandlingMapping.First(h => h.m_ExceptionType == SetupException.ExceptionType.ScriptCompilationFailed); - m_LogErrorFormat(handling.m_Message, new object[0]); - m_ExitEditorApplication(handling.m_ReturnCode); - } - } - - void HandleSetupException(SetupException exception) - { - ExceptionHandling handling = s_ExceptionHandlingMapping.FirstOrDefault(h => h.m_ExceptionType == exception.Type) ?? new ExceptionHandling(exception.Type, "Unknown command line test run error. " + exception.Type, ReturnCodes.RunError); - m_LogErrorFormat(handling.m_Message, exception.Details); - m_ExitEditorApplication(handling.m_ReturnCode); - } - - private class ExceptionHandling - { - internal SetupException.ExceptionType m_ExceptionType; - internal string m_Message; - internal int m_ReturnCode; - public ExceptionHandling(SetupException.ExceptionType exceptionType, string message, ReturnCodes returnCode) - { - m_ExceptionType = exceptionType; - m_Message = message; - m_ReturnCode = (int)returnCode; - } - } - - static ExceptionHandling[] s_ExceptionHandlingMapping = new[] - { - new ExceptionHandling(SetupException.ExceptionType.ScriptCompilationFailed, "Scripts had compilation errors.", ReturnCodes.RunError), - new ExceptionHandling(SetupException.ExceptionType.PlatformNotFound, "Test platform not found ({0}).", ReturnCodes.PlatformNotFoundReturnCode), - new ExceptionHandling(SetupException.ExceptionType.TestSettingsFileNotFound, "Test settings file not found at {0}.", ReturnCodes.RunError) - }; - - private static string ExecutionSettingsToString(Api.ExecutionSettings executionSettings) - { - if (executionSettings == null) - { - return "none"; - } - - if (executionSettings.filters == null || executionSettings.filters.Length == 0) - { - return "no filter"; - } - - return "test mode = " + executionSettings.filters[0].testMode; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/ExecutionSettings.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/ExecutionSettings.cs deleted file mode 100644 index 031e28f..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/ExecutionSettings.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; - -namespace UnityEditor.TestTools.TestRunner.CommandLineTest -{ - [Serializable] - internal class ExecutionSettings - { - public string TestResultsFile; - public string DeviceLogsDirectory; - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/ExitCallbacks.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/ExitCallbacks.cs deleted file mode 100644 index 85168fc..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/ExitCallbacks.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner.CommandLineTest -{ - [Serializable] - internal class ExitCallbacks : ScriptableObject, IErrorCallbacks - { - internal static bool preventExit; - - public void RunFinished(ITestResultAdaptor testResults) - { - if (preventExit) - { - return; - } - - if (!ExitCallbacksDataHolder.instance.AnyTestsExecuted) - { - Debug.LogFormat(LogType.Warning, LogOption.NoStacktrace, null, "No tests were executed"); - } - - EditorApplication.Exit(ExitCallbacksDataHolder.instance.RunFailed ? (int)Executer.ReturnCodes.Failed : (int)Executer.ReturnCodes.Ok); - } - - public void TestStarted(ITestAdaptor test) - { - if (!test.IsSuite) - { - ExitCallbacksDataHolder.instance.AnyTestsExecuted = true; - } - } - - public void TestFinished(ITestResultAdaptor result) - { - if (!result.Test.IsSuite && (result.TestStatus == TestStatus.Failed || result.TestStatus == TestStatus.Inconclusive)) - { - ExitCallbacksDataHolder.instance.RunFailed = true; - } - } - - public void RunStarted(ITestAdaptor testsToRun) - { - } - - public void OnError(string message) - { - EditorApplication.Exit((int)Executer.ReturnCodes.RunError); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/ExitCallbacksDataHolder.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/ExitCallbacksDataHolder.cs deleted file mode 100644 index 0ccbcf9..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/ExitCallbacksDataHolder.cs +++ /dev/null @@ -1,12 +0,0 @@ -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner.CommandLineTest -{ - internal class ExitCallbacksDataHolder : ScriptableSingleton - { - [SerializeField] - public bool AnyTestsExecuted; - [SerializeField] - public bool RunFailed; - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/ISettingsBuilder.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/ISettingsBuilder.cs deleted file mode 100644 index dd55e8f..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/ISettingsBuilder.cs +++ /dev/null @@ -1,10 +0,0 @@ -using UnityEditor.TestTools.TestRunner.Api; - -namespace UnityEditor.TestTools.TestRunner.CommandLineTest -{ - interface ISettingsBuilder - { - Api.ExecutionSettings BuildApiExecutionSettings(string[] commandLineArgs); - ExecutionSettings BuildExecutionSettings(string[] commandLineArgs); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/LogSavingCallbacks.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/LogSavingCallbacks.cs deleted file mode 100644 index 69e5499..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/LogSavingCallbacks.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using UnityEditor.TestRunner.TestLaunchers; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner.CommandLineTest -{ - [Serializable] - internal class LogSavingCallbacks : ScriptableObject, ICallbacks - { - public void RunStarted(ITestAdaptor testsToRun) - { - RemotePlayerLogController.instance.StartLogWriters(); - } - - public virtual void RunFinished(ITestResultAdaptor testResults) - { - RemotePlayerLogController.instance.StopLogWriters(); - } - - public void TestStarted(ITestAdaptor test) - { - } - - public void TestFinished(ITestResultAdaptor result) - { - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/LogWriter.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/LogWriter.cs deleted file mode 100644 index ba5532e..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/LogWriter.cs +++ /dev/null @@ -1,92 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using UnityEditor.DeploymentTargets; -using UnityEditor.Utils; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner.CommandLineTest -{ - internal class LogWriter : IDisposable - { - private string m_LogsDirectory; - private string m_DeviceID; - private Dictionary m_LogStreams; - private DeploymentTargetLogger m_Logger; - - internal LogWriter(string logsDirectory, string deviceID, DeploymentTargetLogger logger) - { - m_LogStreams = new Dictionary(); - m_Logger = logger; - m_LogsDirectory = logsDirectory; - m_DeviceID = deviceID; - - logger.logMessage += WriteLogToFile; - } - - private void WriteLogToFile(string id, string logLine) - { - StreamWriter logStream; - var streamExists = m_LogStreams.TryGetValue(id, out logStream); - if (!streamExists) - { - var filePath = GetLogFilePath(m_LogsDirectory, m_DeviceID, id); - logStream = CreateLogFile(filePath); - - m_LogStreams.Add(id, logStream); - } - - try - { - if (logLine != null) - logStream.WriteLine(logLine); - } - catch (Exception ex) - { - Debug.LogError($"Writing {id} log failed."); - Debug.LogException(ex); - } - } - - public void Stop() - { - m_Logger.Stop(); - foreach (var logStream in m_LogStreams) - { - logStream.Value.Close(); - } - } - - public void Dispose() - { - Stop(); - } - - private StreamWriter CreateLogFile(string path) - { - Debug.LogFormat(LogType.Log, LogOption.NoStacktrace, null, "Creating {0} device log: {1}", m_DeviceID, path); - StreamWriter streamWriter = null; - try - { - if (!Directory.Exists(path)) - Directory.CreateDirectory(Path.GetDirectoryName(path)); - - streamWriter = File.CreateText(path); - } - catch (Exception ex) - { - Debug.LogError($"Creating device log {path} file failed."); - Debug.LogException(ex); - } - - return streamWriter; - } - - private string GetLogFilePath(string lgosDirectory, string deviceID, string logID) - { - var fileName = "Device-" + deviceID + "-" + logID + ".txt"; - fileName = string.Join("_", fileName.Split(Path.GetInvalidFileNameChars())); - return Paths.Combine(lgosDirectory, fileName); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/ResultsSavingCallbacks.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/ResultsSavingCallbacks.cs deleted file mode 100644 index a3f184f..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/ResultsSavingCallbacks.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System; -using System.IO; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEditor.Utils; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner.CommandLineTest -{ - [Serializable] - internal class ResultsSavingCallbacks : ScriptableObject, ICallbacks - { - [SerializeField] - public string m_ResultFilePath; - - public ResultsSavingCallbacks() - { - this.m_ResultFilePath = GetDefaultResultFilePath(); - } - - public void RunStarted(ITestAdaptor testsToRun) - { - } - - public virtual void RunFinished(ITestResultAdaptor testResults) - { - if (string.IsNullOrEmpty(m_ResultFilePath)) - { - m_ResultFilePath = GetDefaultResultFilePath(); - } - - var resultWriter = new ResultsWriter(); - resultWriter.WriteResultToFile(testResults, m_ResultFilePath); - } - - public void TestStarted(ITestAdaptor test) - { - } - - public void TestFinished(ITestResultAdaptor result) - { - } - - private static string GetDefaultResultFilePath() - { - var fileName = "TestResults-" + DateTime.Now.Ticks + ".xml"; - var projectPath = Directory.GetCurrentDirectory(); - return Paths.Combine(projectPath, fileName); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/ResultsWriter.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/ResultsWriter.cs deleted file mode 100644 index ffb8af3..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/ResultsWriter.cs +++ /dev/null @@ -1,103 +0,0 @@ -using System; -using System.IO; -using System.Xml; -using NUnit.Framework.Interfaces; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner.CommandLineTest -{ - internal class ResultsWriter - { - private const string k_nUnitVersion = "3.5.0.0"; - - private const string k_TestRunNode = "test-run"; - private const string k_Id = "id"; - private const string k_Testcasecount = "testcasecount"; - private const string k_Result = "result"; - private const string k_Total = "total"; - private const string k_Passed = "passed"; - private const string k_Failed = "failed"; - private const string k_Inconclusive = "inconclusive"; - private const string k_Skipped = "skipped"; - private const string k_Asserts = "asserts"; - private const string k_EngineVersion = "engine-version"; - private const string k_ClrVersion = "clr-version"; - private const string k_StartTime = "start-time"; - private const string k_EndTime = "end-time"; - private const string k_Duration = "duration"; - - private const string k_TimeFormat = "u"; - - public void WriteResultToFile(ITestResultAdaptor result, string filePath) - { - Debug.LogFormat(LogType.Log, LogOption.NoStacktrace, null, "Saving results to: {0}", filePath); - - try - { - if (!Directory.Exists(filePath)) - { - CreateDirectory(filePath); - } - - using (var fileStream = File.CreateText(filePath)) - { - WriteResultToStream(result, fileStream); - } - } - catch (Exception ex) - { - Debug.LogError("Saving result file failed."); - Debug.LogException(ex); - } - } - - void CreateDirectory(string filePath) - { - var driectoryPath = Path.GetDirectoryName(filePath); - if (!String.IsNullOrEmpty(driectoryPath)) - { - Directory.CreateDirectory(driectoryPath); - } - } - - public void WriteResultToStream(ITestResultAdaptor result, StreamWriter streamWriter, XmlWriterSettings settings = null) - { - settings = settings ?? new XmlWriterSettings(); - settings.Indent = true; - settings.NewLineOnAttributes = false; - - using (var xmlWriter = XmlWriter.Create(streamWriter, settings)) - { - WriteResultsToXml(result, xmlWriter); - } - } - - void WriteResultsToXml(ITestResultAdaptor result, XmlWriter xmlWriter) - { - // XML format as specified at https://github.com/nunit/docs/wiki/Test-Result-XML-Format - - var testRunNode = new TNode(k_TestRunNode); - - testRunNode.AddAttribute(k_Id, "2"); - testRunNode.AddAttribute(k_Testcasecount, (result.PassCount + result.FailCount + result.SkipCount + result.InconclusiveCount).ToString()); - testRunNode.AddAttribute(k_Result, result.ResultState.ToString()); - testRunNode.AddAttribute(k_Total, (result.PassCount + result.FailCount + result.SkipCount + result.InconclusiveCount).ToString()); - testRunNode.AddAttribute(k_Passed, result.PassCount.ToString()); - testRunNode.AddAttribute(k_Failed, result.FailCount.ToString()); - testRunNode.AddAttribute(k_Inconclusive, result.InconclusiveCount.ToString()); - testRunNode.AddAttribute(k_Skipped, result.SkipCount.ToString()); - testRunNode.AddAttribute(k_Asserts, result.AssertCount.ToString()); - testRunNode.AddAttribute(k_EngineVersion, k_nUnitVersion); - testRunNode.AddAttribute(k_ClrVersion, Environment.Version.ToString()); - testRunNode.AddAttribute(k_StartTime, result.StartTime.ToString(k_TimeFormat)); - testRunNode.AddAttribute(k_EndTime, result.EndTime.ToString(k_TimeFormat)); - testRunNode.AddAttribute(k_Duration, result.Duration.ToString()); - - var resultNode = result.ToXml(); - testRunNode.ChildNodes.Add(resultNode); - - testRunNode.WriteTo(xmlWriter); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/RunData.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/RunData.cs deleted file mode 100644 index 8f92198..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/RunData.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner.CommandLineTest -{ - internal class RunData : ScriptableSingleton - { - public bool isRunning; - public ExecutionSettings executionSettings; - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/RunSettings.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/RunSettings.cs deleted file mode 100644 index df00772..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/RunSettings.cs +++ /dev/null @@ -1,29 +0,0 @@ -using UnityEditor.TestTools.TestRunner.Api; - -namespace UnityEditor.TestTools.TestRunner.CommandLineTest -{ - internal class RunSettings : ITestRunSettings - { - private ITestSettings m_TestSettings; - public RunSettings(ITestSettings testSettings) - { - this.m_TestSettings = testSettings; - } - - public void Apply() - { - if (m_TestSettings != null) - { - m_TestSettings.SetupProjectParameters(); - } - } - - public void Dispose() - { - if (m_TestSettings != null) - { - m_TestSettings.Dispose(); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/SettingsBuilder.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/SettingsBuilder.cs deleted file mode 100644 index 1c4d62b..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/SettingsBuilder.cs +++ /dev/null @@ -1,188 +0,0 @@ -using System; -using System.IO; -using UnityEditor.TestRunner.CommandLineParser; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEditor.TestTools.TestRunner.GUI; - -namespace UnityEditor.TestTools.TestRunner.CommandLineTest -{ - internal class SettingsBuilder : ISettingsBuilder - { - private ITestSettingsDeserializer m_TestSettingsDeserializer; - private Action m_LogAction; - private Action m_LogWarningAction; - private Func m_FileExistsCheck; - private Func m_ScriptCompilationFailedCheck; - public SettingsBuilder(ITestSettingsDeserializer testSettingsDeserializer, Action logAction, Action logWarningAction, Func fileExistsCheck, Func scriptCompilationFailedCheck) - { - m_LogAction = logAction; - m_LogWarningAction = logWarningAction; - m_FileExistsCheck = fileExistsCheck; - m_ScriptCompilationFailedCheck = scriptCompilationFailedCheck; - m_TestSettingsDeserializer = testSettingsDeserializer; - } - - public Api.ExecutionSettings BuildApiExecutionSettings(string[] commandLineArgs) - { - var quit = false; - string testPlatform = TestMode.EditMode.ToString(); - string[] testFilters = null; - string[] testCategories = null; - string testSettingsFilePath = null; - int testRepetitions = 1; - int? playerHeartbeatTimeout = null; - bool runSynchronously = false; - string[] testAssemblyNames = null; - - var optionSet = new CommandLineOptionSet( - new CommandLineOption("quit", () => { quit = true; }), - new CommandLineOption("testPlatform", platform => { testPlatform = platform; }), - new CommandLineOption("editorTestsFilter", filters => { testFilters = filters; }), - new CommandLineOption("testFilter", filters => { testFilters = filters; }), - new CommandLineOption("editorTestsCategories", catagories => { testCategories = catagories; }), - new CommandLineOption("testCategory", catagories => { testCategories = catagories; }), - new CommandLineOption("testSettingsFile", settingsFilePath => { testSettingsFilePath = settingsFilePath; }), - new CommandLineOption("testRepetitions", reps => { testRepetitions = int.Parse(reps); }), - new CommandLineOption("playerHeartbeatTimeout", timeout => { playerHeartbeatTimeout = int.Parse(timeout); }), - new CommandLineOption("runSynchronously", () => { runSynchronously = true; }), - new CommandLineOption("assemblyNames", assemblyNames => { testAssemblyNames = assemblyNames; }) - ); - optionSet.Parse(commandLineArgs); - - DisplayQuitWarningIfQuitIsGiven(quit); - - CheckForScriptCompilationErrors(); - - LogParametersForRun(testPlatform, testFilters, testCategories, testSettingsFilePath); - - var testSettings = GetTestSettings(testSettingsFilePath); - - var filter = new Filter() - { - groupNames = testFilters, - categoryNames = testCategories, - assemblyNames = testAssemblyNames - }; - - var buildTarget = SetFilterAndGetBuildTarget(testPlatform, filter); - - RerunCallbackData.instance.runFilters = new []{new UITestRunnerFilter() - { - categoryNames = filter.categoryNames, - groupNames = filter.groupNames, - testRepetitions = testRepetitions - }}; - - RerunCallbackData.instance.testMode = filter.testMode; - - var settings = new Api.ExecutionSettings() - { - filters = new []{filter}, - overloadTestRunSettings = new RunSettings(testSettings), - targetPlatform = buildTarget, - runSynchronously = runSynchronously - }; - - if (playerHeartbeatTimeout != null) - { - settings.playerHeartbeatTimeout = playerHeartbeatTimeout.Value; - } - - return settings; - } - - public ExecutionSettings BuildExecutionSettings(string[] commandLineArgs) - { - string resultFilePath = null; - string deviceLogsDirectory = null; - - var optionSet = new CommandLineOptionSet( - new CommandLineOption("editorTestsResultFile", filePath => { resultFilePath = filePath; }), - new CommandLineOption("testResults", filePath => { resultFilePath = filePath; }), - new CommandLineOption("deviceLogs", dirPath => { deviceLogsDirectory = dirPath; }) - ); - optionSet.Parse(commandLineArgs); - - return new ExecutionSettings() - { - TestResultsFile = resultFilePath, - DeviceLogsDirectory = deviceLogsDirectory - }; - } - - void DisplayQuitWarningIfQuitIsGiven(bool quitIsGiven) - { - if (quitIsGiven) - { - m_LogWarningAction("Running tests from command line arguments will not work when \"quit\" is specified."); - } - } - - void CheckForScriptCompilationErrors() - { - if (m_ScriptCompilationFailedCheck()) - { - throw new SetupException(SetupException.ExceptionType.ScriptCompilationFailed); - } - } - - void LogParametersForRun(string testPlatform, string[] testFilters, string[] testCategories, string testSettingsFilePath) - { - m_LogAction("Running tests for " + testPlatform); - if (testFilters != null && testFilters.Length > 0) - { - m_LogAction("With test filter: " + string.Join(", ", testFilters)); - } - if (testCategories != null && testCategories.Length > 0) - { - m_LogAction("With test categories: " + string.Join(", ", testCategories)); - } - if (!string.IsNullOrEmpty(testSettingsFilePath)) - { - m_LogAction("With test settings file: " + testSettingsFilePath); - } - } - - ITestSettings GetTestSettings(string testSettingsFilePath) - { - ITestSettings testSettings = null; - if (!string.IsNullOrEmpty(testSettingsFilePath)) - { - if (!m_FileExistsCheck(testSettingsFilePath)) - { - throw new SetupException(SetupException.ExceptionType.TestSettingsFileNotFound, testSettingsFilePath); - } - - testSettings = m_TestSettingsDeserializer.GetSettingsFromJsonFile(testSettingsFilePath); - } - return testSettings; - } - - static BuildTarget? SetFilterAndGetBuildTarget(string testPlatform, Filter filter) - { - BuildTarget? buildTarget = null; - if (testPlatform.ToLower() == "editmode") - { - filter.testMode = TestMode.EditMode; - } - else if (testPlatform.ToLower() == "playmode") - { - filter.testMode = TestMode.PlayMode; - } - else - { - try - { - buildTarget = (BuildTarget)Enum.Parse(typeof(BuildTarget), testPlatform, true); - - filter.testMode = TestMode.PlayMode; - } - catch (ArgumentException) - { - throw new SetupException(SetupException.ExceptionType.PlatformNotFound, testPlatform); - } - } - return buildTarget; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/SetupException.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/SetupException.cs deleted file mode 100644 index 2f4051b..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/SetupException.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; - -namespace UnityEditor.TestTools.TestRunner.CommandLineTest -{ - internal class SetupException : Exception - { - public ExceptionType Type { get; } - public object[] Details { get; } - - public SetupException(ExceptionType type, params object[] details) - { - Type = type; - Details = details; - } - - public enum ExceptionType - { - ScriptCompilationFailed, - PlatformNotFound, - TestSettingsFileNotFound, - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/TestStarter.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/TestStarter.cs deleted file mode 100644 index 3722cb4..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/CommandLineTest/TestStarter.cs +++ /dev/null @@ -1,82 +0,0 @@ -using System; -using System.IO; -using UnityEditor.TestRunner.CommandLineParser; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine; -using UnityEditor.Compilation; -using System.Linq; -using UnityEngine.TestTools; - -namespace UnityEditor.TestTools.TestRunner.CommandLineTest -{ - [InitializeOnLoad] - static class TestStarter - { - static TestStarter() - { - if (!ShouldRunTests()) - { - return; - } - - if (EditorApplication.isCompiling) - { - return; - } - - if (RunData.instance.isRunning) - { - executer.ExitOnCompileErrors(); - executer.SetUpCallbacks(RunData.instance.executionSettings); - return; - } - - EditorApplication.update += UpdateWatch; - } - - static void UpdateWatch() - { - EditorApplication.update -= UpdateWatch; - - if (RunData.instance.isRunning) - { - return; - } - - RunData.instance.isRunning = true; - var commandLineArgs = Environment.GetCommandLineArgs(); - RunData.instance.executionSettings = executer.BuildExecutionSettings(commandLineArgs); - executer.SetUpCallbacks(RunData.instance.executionSettings); - executer.InitializeAndExecuteRun(commandLineArgs); - } - - static bool ShouldRunTests() - { - var shouldRunTests = false; - var optionSet = new CommandLineOptionSet( - new CommandLineOption("runTests", () => { shouldRunTests = true; }), - new CommandLineOption("runEditorTests", () => { shouldRunTests = true; }) - ); - optionSet.Parse(Environment.GetCommandLineArgs()); - return shouldRunTests; - } - - static Executer s_Executer; - - static Executer executer - { - get - { - if (s_Executer == null) - { - Func compilationCheck = () => EditorUtility.scriptCompilationFailed; - Action actionLogger = (string msg) => { Debug.LogFormat(LogType.Log, LogOption.NoStacktrace, null, msg); }; - var apiSettingsBuilder = new SettingsBuilder(new TestSettingsDeserializer(() => new TestSettings()), actionLogger, Debug.LogWarning, File.Exists, compilationCheck); - s_Executer = new Executer(ScriptableObject.CreateInstance(), apiSettingsBuilder, Debug.LogErrorFormat, Debug.LogException, EditorApplication.Exit, compilationCheck); - } - - return s_Executer; - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/AssetsDatabaseHelper.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/AssetsDatabaseHelper.cs deleted file mode 100644 index d4fd891..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/AssetsDatabaseHelper.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner.GUI -{ - internal class AssetsDatabaseHelper : IAssetsDatabaseHelper - { - public void OpenAssetInItsDefaultExternalEditor(string assetPath, int line) - { - var asset = AssetDatabase.LoadMainAssetAtPath(assetPath); - AssetDatabase.OpenAsset(asset, line); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/GuiHelper.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/GuiHelper.cs deleted file mode 100644 index e3914a4..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/GuiHelper.cs +++ /dev/null @@ -1,138 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Text.RegularExpressions; -using Unity.CodeEditor; -using UnityEditor.Utils; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner.GUI -{ - internal class GuiHelper : IGuiHelper - { - public GuiHelper(IMonoCecilHelper monoCecilHelper, IAssetsDatabaseHelper assetsDatabaseHelper) - { - MonoCecilHelper = monoCecilHelper; - AssetsDatabaseHelper = assetsDatabaseHelper; - Editor = new DefaultExternalCodeEditor(); - GetCSFiles = (dirPath, fileExtension) => - { - return Directory.GetFiles(dirPath, $"*{fileExtension}", SearchOption.AllDirectories) - .Select(Paths.UnifyDirectorySeparator); - }; - } - internal Func> GetCSFiles; - protected IMonoCecilHelper MonoCecilHelper { get; private set; } - public IAssetsDatabaseHelper AssetsDatabaseHelper { get; private set; } - public IExternalCodeEditor Editor { get; internal set; } - private const string FileExtension = ".cs"; - - public void OpenScriptInExternalEditor(Type type, MethodInfo method) - { - var fileOpenInfo = GetFileOpenInfo(type, method); - - if (string.IsNullOrEmpty(fileOpenInfo.FilePath)) - { - Debug.LogWarning("Failed to open test method source code in external editor. Inconsistent filename and yield return operator in target method."); - - return; - } - - if (fileOpenInfo.LineNumber == 1) - { - Debug.LogWarning("Failed to get a line number for unity test method. So please find it in opened file in external editor."); - } - - if (!fileOpenInfo.FilePath.Contains("Assets")) - { - Editor.OpenProject(fileOpenInfo.FilePath, fileOpenInfo.LineNumber, 1); - } - else - { - AssetsDatabaseHelper.OpenAssetInItsDefaultExternalEditor(fileOpenInfo.FilePath, fileOpenInfo.LineNumber); - } - - } - - public IFileOpenInfo GetFileOpenInfo(Type type, MethodInfo method) - { - var fileOpenInfo = MonoCecilHelper.TryGetCecilFileOpenInfo(type, method); - if (string.IsNullOrEmpty(fileOpenInfo.FilePath)) - { - var dirPath = Paths.UnifyDirectorySeparator(Application.dataPath); - var allCsFiles = GetCSFiles(dirPath, FileExtension); - - var fileName = allCsFiles.FirstOrDefault(x => - x.Split(Path.DirectorySeparatorChar).Last().Equals(string.Concat(GetTestFileName(type), FileExtension))); - - fileOpenInfo.FilePath = fileName ?? string.Empty; - } - - if (!fileOpenInfo.FilePath.Contains("Assets")) - { - return fileOpenInfo; - } - fileOpenInfo.FilePath = FilePathToAssetsRelativeAndUnified(fileOpenInfo.FilePath); - - return fileOpenInfo; - } - - internal static string GetTestFileName(Type type) - { - //This handles the case of a test in a nested class, getting the name of the base class - if (type.FullName != null && type.Namespace!=null && type.FullName.Contains("+")) - { - var removedNamespace = type.FullName.Substring(type.Namespace.Length+1); - return removedNamespace.Substring(0,removedNamespace.IndexOf("+", StringComparison.Ordinal)); - } - return type.Name; - } - public string FilePathToAssetsRelativeAndUnified(string filePath) - { - if (string.IsNullOrEmpty(filePath)) - return string.Empty; - - filePath = Paths.UnifyDirectorySeparator(filePath); - var length = Paths.UnifyDirectorySeparator(Application.dataPath).Length - "Assets".Length; - - return filePath.Substring(length); - } - - public bool OpenScriptInExternalEditor(string stacktrace) - { - if (string.IsNullOrEmpty(stacktrace)) - return false; - - var regex = new Regex("in (?.*):{1}(?[0-9]+)"); - - var matchingLines = stacktrace.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).Where(x => regex.IsMatch(x)).ToList(); - if (!matchingLines.Any()) - return false; - - var fileOpenInfos = matchingLines - .Select(x => regex.Match(x)) - .Select(x => - new FileOpenInfo - { - FilePath = x.Groups["path"].Value, - LineNumber = int.Parse(x.Groups["line"].Value) - }).ToList(); - - var fileOpenInfo = fileOpenInfos - .FirstOrDefault(openInfo => !string.IsNullOrEmpty(openInfo.FilePath) && File.Exists(openInfo.FilePath)); - - if (fileOpenInfo == null) - { - return false; - } - - var filePath = FilePathToAssetsRelativeAndUnified(fileOpenInfo.FilePath); - AssetsDatabaseHelper.OpenAssetInItsDefaultExternalEditor(filePath, fileOpenInfo.LineNumber); - - return true; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/IAssetsDatabaseHelper.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/IAssetsDatabaseHelper.cs deleted file mode 100644 index 975996b..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/IAssetsDatabaseHelper.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner.GUI -{ - internal interface IAssetsDatabaseHelper - { - void OpenAssetInItsDefaultExternalEditor(string assetPath, int line); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/IGuiHelper.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/IGuiHelper.cs deleted file mode 100644 index 9d43397..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/IGuiHelper.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Reflection; - -namespace UnityEditor.TestTools.TestRunner.GUI -{ - internal interface IGuiHelper - { - bool OpenScriptInExternalEditor(string stacktrace); - void OpenScriptInExternalEditor(Type type, MethodInfo method); - IFileOpenInfo GetFileOpenInfo(Type type, MethodInfo method); - string FilePathToAssetsRelativeAndUnified(string filePath); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListBuilder/RenderingOptions.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListBuilder/RenderingOptions.cs deleted file mode 100644 index 495537f..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListBuilder/RenderingOptions.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner.GUI -{ - internal class RenderingOptions - { - public string nameFilter; - public bool showSucceeded; - public bool showFailed; - public bool showIgnored; - public bool showNotRunned; - public string[] categories; - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListBuilder/ResultSummarizer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListBuilder/ResultSummarizer.cs deleted file mode 100644 index f81990f..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListBuilder/ResultSummarizer.cs +++ /dev/null @@ -1,174 +0,0 @@ -// **************************************************************** -// Based on nUnit 2.6.2 (http://www.nunit.org/) -// **************************************************************** - -using System; -using System.Collections.Generic; - -namespace UnityEditor.TestTools.TestRunner.GUI -{ - /// - /// Summary description for ResultSummarizer. - /// - internal class ResultSummarizer - { - private int m_ErrorCount = -1; - private int m_FailureCount; - private int m_IgnoreCount = -1; - private int m_InconclusiveCount = -1; - private int m_NotRunnable = -1; - private int m_ResultCount; - private int m_SkipCount; - private int m_SuccessCount; - private int m_TestsRun; - - private TimeSpan m_Duration = TimeSpan.FromSeconds(0); - - public ResultSummarizer(IEnumerable results) - { - foreach (var result in results) - Summarize(result); - } - - public bool success - { - get { return m_FailureCount == 0; } - } - - /// - /// Returns the number of test cases for which results - /// have been summarized. Any tests excluded by use of - /// Category or Explicit attributes are not counted. - /// - public int ResultCount - { - get { return m_ResultCount; } - } - - /// - /// Returns the number of test cases actually run, which - /// is the same as ResultCount, less any Skipped, Ignored - /// or NonRunnable tests. - /// - public int TestsRun - { - get { return m_TestsRun; } - } - - /// - /// Returns the number of tests that passed - /// - public int Passed - { - get { return m_SuccessCount; } - } - - /// - /// Returns the number of test cases that had an error. - /// - public int errors - { - get { return m_ErrorCount; } - } - - /// - /// Returns the number of test cases that failed. - /// - public int failures - { - get { return m_FailureCount; } - } - - /// - /// Returns the number of test cases that failed. - /// - public int inconclusive - { - get { return m_InconclusiveCount; } - } - - /// - /// Returns the number of test cases that were not runnable - /// due to errors in the signature of the class or method. - /// Such tests are also counted as Errors. - /// - public int notRunnable - { - get { return m_NotRunnable; } - } - - /// - /// Returns the number of test cases that were skipped. - /// - public int Skipped - { - get { return m_SkipCount; } - } - - public int ignored - { - get { return m_IgnoreCount; } - } - - public double duration - { - get { return m_Duration.TotalSeconds; } - } - - public int testsNotRun - { - get { return m_SkipCount + m_IgnoreCount + m_NotRunnable; } - } - - public void Summarize(TestRunnerResult result) - { - m_Duration += TimeSpan.FromSeconds(result.duration); - m_ResultCount++; - - if (result.resultStatus != TestRunnerResult.ResultStatus.NotRun) - { - //TODO implement missing features - // if(result.IsIgnored) - // { - // m_IgnoreCount++; - // return; - // } - - m_SkipCount++; - return; - } - - switch (result.resultStatus) - { - case TestRunnerResult.ResultStatus.Passed: - m_SuccessCount++; - m_TestsRun++; - break; - case TestRunnerResult.ResultStatus.Failed: - m_FailureCount++; - m_TestsRun++; - break; - //TODO implement missing features - // case TestResultState.Error: - // case TestResultState.Cancelled: - // m_ErrorCount++; - // m_TestsRun++; - // break; - // case TestResultState.Inconclusive: - // m_InconclusiveCount++; - // m_TestsRun++; - // break; - // case TestResultState.NotRunnable: - // m_NotRunnable++; - // // errorCount++; - // break; - // case TestResultState.Ignored: - // m_IgnoreCount++; - // break; - default: - m_SkipCount++; - break; - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListBuilder/TestFilterSettings.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListBuilder/TestFilterSettings.cs deleted file mode 100644 index 7b0f960..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListBuilder/TestFilterSettings.cs +++ /dev/null @@ -1,104 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner.GUI -{ - internal class TestFilterSettings - { - public bool showSucceeded; - public bool showFailed; - public bool showIgnored; - public bool showNotRun; - - public string filterByName; - public int filterByCategory; - - private GUIContent m_SucceededBtn; - private GUIContent m_FailedBtn; - private GUIContent m_IgnoredBtn; - private GUIContent m_NotRunBtn; - - public string[] availableCategories; - - private readonly string m_PrefsKey; - - public TestFilterSettings(string prefsKey) - { - availableCategories = null; - m_PrefsKey = prefsKey; - Load(); - UpdateCounters(Enumerable.Empty()); - } - - public void Load() - { - showSucceeded = EditorPrefs.GetBool(m_PrefsKey + ".ShowSucceeded", true); - showFailed = EditorPrefs.GetBool(m_PrefsKey + ".ShowFailed", true); - showIgnored = EditorPrefs.GetBool(m_PrefsKey + ".ShowIgnored", true); - showNotRun = EditorPrefs.GetBool(m_PrefsKey + ".ShowNotRun", true); - filterByName = EditorPrefs.GetString(m_PrefsKey + ".FilterByName", string.Empty); - filterByCategory = EditorPrefs.GetInt(m_PrefsKey + ".FilterByCategory", 0); - } - - public void Save() - { - EditorPrefs.SetBool(m_PrefsKey + ".ShowSucceeded", showSucceeded); - EditorPrefs.SetBool(m_PrefsKey + ".ShowFailed", showFailed); - EditorPrefs.SetBool(m_PrefsKey + ".ShowIgnored", showIgnored); - EditorPrefs.SetBool(m_PrefsKey + ".ShowNotRun", showNotRun); - EditorPrefs.SetString(m_PrefsKey + ".FilterByName", filterByName); - EditorPrefs.SetInt(m_PrefsKey + ".FilterByCategory", filterByCategory); - } - - public void UpdateCounters(IEnumerable results) - { - var summary = new ResultSummarizer(results); - - m_SucceededBtn = new GUIContent(summary.Passed.ToString(), Icons.s_SuccessImg, "Show tests that succeeded"); - m_FailedBtn = new GUIContent((summary.errors + summary.failures + summary.inconclusive).ToString(), Icons.s_FailImg, "Show tests that failed"); - m_IgnoredBtn = new GUIContent((summary.ignored + summary.notRunnable).ToString(), Icons.s_IgnoreImg, "Show tests that are ignored"); - m_NotRunBtn = new GUIContent((summary.testsNotRun - summary.ignored - summary.notRunnable).ToString(), Icons.s_UnknownImg, "Show tests that didn't run"); - } - - public string[] GetSelectedCategories() - { - if (availableCategories == null) - return new string[0]; - - return availableCategories.Where((c, i) => (filterByCategory & (1 << i)) != 0).ToArray(); - } - - public void OnGUI() - { - EditorGUI.BeginChangeCheck(); - - filterByName = GUILayout.TextField(filterByName, "ToolbarSeachTextField", GUILayout.MinWidth(100), GUILayout.MaxWidth(250), GUILayout.ExpandWidth(true)); - if (GUILayout.Button(GUIContent.none, string.IsNullOrEmpty(filterByName) ? "ToolbarSeachCancelButtonEmpty" : "ToolbarSeachCancelButton")) - filterByName = string.Empty; - - if (availableCategories != null && availableCategories.Length > 0) - filterByCategory = EditorGUILayout.MaskField(filterByCategory, availableCategories, EditorStyles.toolbarDropDown, GUILayout.MaxWidth(90)); - - showSucceeded = GUILayout.Toggle(showSucceeded, m_SucceededBtn, EditorStyles.toolbarButton); - showFailed = GUILayout.Toggle(showFailed, m_FailedBtn, EditorStyles.toolbarButton); - showIgnored = GUILayout.Toggle(showIgnored, m_IgnoredBtn, EditorStyles.toolbarButton); - showNotRun = GUILayout.Toggle(showNotRun, m_NotRunBtn, EditorStyles.toolbarButton); - - if (EditorGUI.EndChangeCheck()) - Save(); - } - - public RenderingOptions BuildRenderingOptions() - { - var options = new RenderingOptions(); - options.showSucceeded = showSucceeded; - options.showFailed = showFailed; - options.showIgnored = showIgnored; - options.showNotRunned = showNotRun; - options.nameFilter = filterByName; - options.categories = GetSelectedCategories(); - return options; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListBuilder/TestTreeViewBuilder.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListBuilder/TestTreeViewBuilder.cs deleted file mode 100644 index a6bd856..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListBuilder/TestTreeViewBuilder.cs +++ /dev/null @@ -1,110 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using UnityEditor.IMGUI.Controls; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine.TestRunner.NUnitExtensions; -using UnityEngine.TestRunner.NUnitExtensions.Filters; - -namespace UnityEditor.TestTools.TestRunner.GUI -{ - internal class TestTreeViewBuilder - { - public List results = new List(); - private readonly List m_OldTestResultList; - private readonly TestRunnerUIFilter m_UIFilter; - private readonly ITestAdaptor m_TestListRoot; - - private readonly List m_AvailableCategories = new List(); - - public string[] AvailableCategories - { - get { return m_AvailableCategories.Distinct().OrderBy(a => a).ToArray(); } - } - - public TestTreeViewBuilder(ITestAdaptor tests, List oldTestResultResults, TestRunnerUIFilter uiFilter) - { - m_AvailableCategories.Add(CategoryFilterExtended.k_DefaultCategory); - m_OldTestResultList = oldTestResultResults; - m_TestListRoot = tests; - m_UIFilter = uiFilter; - } - - public TreeViewItem BuildTreeView(TestFilterSettings settings, bool sceneBased, string sceneName) - { - var rootItem = new TreeViewItem(int.MaxValue, 0, null, "Invisible Root Item"); - ParseTestTree(0, rootItem, m_TestListRoot); - return rootItem; - } - - private bool IsFilteredOutByUIFilter(ITestAdaptor test, TestRunnerResult result) - { - if (m_UIFilter.PassedHidden && result.resultStatus == TestRunnerResult.ResultStatus.Passed) - return true; - if (m_UIFilter.FailedHidden && (result.resultStatus == TestRunnerResult.ResultStatus.Failed || result.resultStatus == TestRunnerResult.ResultStatus.Inconclusive)) - return true; - if (m_UIFilter.NotRunHidden && (result.resultStatus == TestRunnerResult.ResultStatus.NotRun || result.resultStatus == TestRunnerResult.ResultStatus.Skipped)) - return true; - if (m_UIFilter.CategoryFilter.Length > 0) - return !test.Categories.Any(category => m_UIFilter.CategoryFilter.Contains(category)); - return false; - } - - private void ParseTestTree(int depth, TreeViewItem rootItem, ITestAdaptor testElement) - { - m_AvailableCategories.AddRange(testElement.Categories); - - var testElementId = testElement.UniqueName; - if (!testElement.HasChildren) - { - var result = m_OldTestResultList.FirstOrDefault(a => a.uniqueId == testElementId); - - if (result != null && - (result.ignoredOrSkipped - || result.notRunnable - || testElement.RunState == RunState.NotRunnable - || testElement.RunState == RunState.Ignored - || testElement.RunState == RunState.Skipped - ) - ) - { - //if the test was or becomes ignored or not runnable, we recreate the result in case it has changed - result = null; - } - if (result == null) - { - result = new TestRunnerResult(testElement); - } - results.Add(result); - - var test = new TestTreeViewItem(testElement, depth, rootItem); - if (!IsFilteredOutByUIFilter(testElement, result)) - rootItem.AddChild(test); - test.SetResult(result); - return; - } - - var groupResult = m_OldTestResultList.FirstOrDefault(a => a.uniqueId == testElementId); - if (groupResult == null) - { - groupResult = new TestRunnerResult(testElement); - } - - results.Add(groupResult); - var group = new TestTreeViewItem(testElement, depth, rootItem); - group.SetResult(groupResult); - - depth++; - foreach (var child in testElement.Children) - { - ParseTestTree(depth, group, child); - } - - - if (testElement.IsTestAssembly && !testElement.HasChildren) - return; - - if (group.hasChildren) - rootItem.AddChild(group); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListGuiHelper.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListGuiHelper.cs deleted file mode 100644 index 992f161..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListGuiHelper.cs +++ /dev/null @@ -1,135 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using UnityEditor.ProjectWindowCallback; -using UnityEditor.Scripting.ScriptCompilation; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner.GUI -{ - internal class TestListGUIHelper - { - private const string kResourcesTemplatePath = "Resources/ScriptTemplates"; - private const string kAssemblyDefinitionTestTemplate = "92-Assembly Definition-NewTestAssembly.asmdef.txt"; - - private const string kAssemblyDefinitionEditModeTestTemplate = - "92-Assembly Definition-NewEditModeTestAssembly.asmdef.txt"; - - private const string kTestScriptTemplate = "83-C# Script-NewTestScript.cs.txt"; - private const string kNewTestScriptName = "NewTestScript.cs"; - private const string kNunit = "nunit.framework.dll"; - - [MenuItem("Assets/Create/Testing/Tests Assembly Folder", false, 83)] - public static void MenuItemAddFolderAndAsmDefForTesting() - { - AddFolderAndAsmDefForTesting(); - } - - [MenuItem("Assets/Create/Testing/Tests Assembly Folder", true, 83)] - public static bool MenuItemAddFolderAndAsmDefForTestingWithValidation() - { - return !SelectedFolderContainsTestAssembly(); - } - - public static void AddFolderAndAsmDefForTesting(bool isEditorOnly = false) - { - ProjectWindowUtil.CreateFolderWithTemplates("Tests", - isEditorOnly ? kAssemblyDefinitionEditModeTestTemplate : kAssemblyDefinitionTestTemplate); - } - - public static bool SelectedFolderContainsTestAssembly() - { - var theNearestCustomScriptAssembly = GetTheNearestCustomScriptAssembly(); - if (theNearestCustomScriptAssembly != null) - { - return theNearestCustomScriptAssembly.PrecompiledReferences != null && theNearestCustomScriptAssembly.PrecompiledReferences.Any(x => Path.GetFileName(x) == kNunit); - } - - return false; - } - - [MenuItem("Assets/Create/Testing/C# Test Script", false, 83)] - public static void AddTest() - { - var basePath = Path.Combine(EditorApplication.applicationContentsPath, kResourcesTemplatePath); - var destPath = Path.Combine(GetActiveFolderPath(), kNewTestScriptName); - var templatePath = Path.Combine(basePath, kTestScriptTemplate); - var icon = EditorGUIUtility.IconContent("cs Script Icon").image as Texture2D; - ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, - ScriptableObject.CreateInstance(), destPath, icon, templatePath); - - AssetDatabase.Refresh(); - } - - [MenuItem("Assets/Create/Testing/C# Test Script", true, 83)] - public static bool CanAddScriptAndItWillCompile() - { - return CanAddEditModeTestScriptAndItWillCompile() || CanAddPlayModeTestScriptAndItWillCompile(); - } - - public static bool CanAddEditModeTestScriptAndItWillCompile() - { - var theNearestCustomScriptAssembly = GetTheNearestCustomScriptAssembly(); - if (theNearestCustomScriptAssembly != null) - { - return (theNearestCustomScriptAssembly.AssemblyFlags & AssemblyFlags.EditorOnly) == - AssemblyFlags.EditorOnly; - } - - var activeFolderPath = GetActiveFolderPath(); - return activeFolderPath.ToLower().Contains("/editor"); - } - - public static bool CanAddPlayModeTestScriptAndItWillCompile() - { - if (PlayerSettings.playModeTestRunnerEnabled) - { - return true; - } - - var theNearestCustomScriptAssembly = GetTheNearestCustomScriptAssembly(); - - if (theNearestCustomScriptAssembly == null) - { - return false; - } - - var hasTestAssemblyFlag = theNearestCustomScriptAssembly.PrecompiledReferences != null && theNearestCustomScriptAssembly.PrecompiledReferences.Any(x => Path.GetFileName(x) == kNunit);; - var editorOnlyAssembly = (theNearestCustomScriptAssembly.AssemblyFlags & AssemblyFlags.EditorOnly) != 0; - - return hasTestAssemblyFlag && !editorOnlyAssembly; - } - - public static string GetActiveFolderPath() - { - var path = "Assets"; - - foreach (var obj in Selection.GetFiltered(typeof(UnityEngine.Object), SelectionMode.Assets)) - { - path = AssetDatabase.GetAssetPath(obj); - if (!string.IsNullOrEmpty(path) && File.Exists(path)) - { - path = Path.GetDirectoryName(path); - break; - } - } - return path; - } - - private static CustomScriptAssembly GetTheNearestCustomScriptAssembly() - { - CustomScriptAssembly findCustomScriptAssemblyFromScriptPath; - try - { - findCustomScriptAssemblyFromScriptPath = - EditorCompilationInterface.Instance.FindCustomScriptAssemblyFromScriptPath( - Path.Combine(GetActiveFolderPath(), "Foo.cs")); - } - catch (Exception) - { - return null; - } - return findCustomScriptAssemblyFromScriptPath; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListTreeView/Icons.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListTreeView/Icons.cs deleted file mode 100644 index 706130a..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListTreeView/Icons.cs +++ /dev/null @@ -1,24 +0,0 @@ -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner.GUI -{ - internal static class Icons - { - public static readonly Texture2D s_FailImg; - public static readonly Texture2D s_IgnoreImg; - public static readonly Texture2D s_SuccessImg; - public static readonly Texture2D s_UnknownImg; - public static readonly Texture2D s_InconclusiveImg; - public static readonly Texture2D s_StopwatchImg; - - static Icons() - { - s_FailImg = EditorGUIUtility.IconContent("TestFailed").image as Texture2D; - s_IgnoreImg = EditorGUIUtility.IconContent("TestIgnored").image as Texture2D; - s_SuccessImg = EditorGUIUtility.IconContent("TestPassed").image as Texture2D; - s_UnknownImg = EditorGUIUtility.IconContent("TestNormal").image as Texture2D; - s_InconclusiveImg = EditorGUIUtility.IconContent("TestInconclusive").image as Texture2D; - s_StopwatchImg = EditorGUIUtility.IconContent("TestStopwatch").image as Texture2D; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListTreeView/TestListTreeViewDataSource.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListTreeView/TestListTreeViewDataSource.cs deleted file mode 100644 index 7647432..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListTreeView/TestListTreeViewDataSource.cs +++ /dev/null @@ -1,98 +0,0 @@ -using System.Collections.Generic; -using NUnit.Framework.Interfaces; -using UnityEditor.IMGUI.Controls; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine.SceneManagement; -using UnityEngine.TestTools.TestRunner; - -namespace UnityEditor.TestTools.TestRunner.GUI -{ - internal class TestListTreeViewDataSource : TreeViewDataSource - { - private bool m_ExpandTreeOnCreation; - private readonly TestListGUI m_TestListGUI; - private ITestAdaptor m_RootTest; - - public TestListTreeViewDataSource(TreeViewController testListTree, TestListGUI testListGUI, ITestAdaptor rootTest) : base(testListTree) - { - showRootItem = false; - rootIsCollapsable = false; - m_TestListGUI = testListGUI; - m_RootTest = rootTest; - } - - public void UpdateRootTest(ITestAdaptor rootTest) - { - m_RootTest = rootTest; - } - - public override void FetchData() - { - var sceneName = SceneManager.GetActiveScene().name; - if (sceneName.StartsWith("InitTestScene")) - sceneName = PlaymodeTestsController.GetController().settings.originalScene; - - var testListBuilder = new TestTreeViewBuilder(m_RootTest, m_TestListGUI.newResultList, m_TestListGUI.m_TestRunnerUIFilter); - - m_RootItem = testListBuilder.BuildTreeView(null, false, sceneName); - SetExpanded(m_RootItem, true); - if (m_RootItem.hasChildren && m_RootItem.children.Count == 1) - SetExpanded(m_RootItem.children[0], true); - - if (m_ExpandTreeOnCreation) - SetExpandedWithChildren(m_RootItem, true); - - m_TestListGUI.newResultList = new List(testListBuilder.results); - m_TestListGUI.m_TestRunnerUIFilter.availableCategories = testListBuilder.AvailableCategories; - m_NeedRefreshRows = true; - } - - public override bool IsRenamingItemAllowed(TreeViewItem item) - { - return false; - } - - public void ExpandTreeOnCreation() - { - m_ExpandTreeOnCreation = true; - } - - public override bool IsExpandable(TreeViewItem item) - { - if (item is TestTreeViewItem) - return ((TestTreeViewItem)item).IsGroupNode; - return base.IsExpandable(item); - } - - protected override List Search(TreeViewItem rootItem, string search) - { - var result = new List(); - - if (rootItem.hasChildren) - { - foreach (var child in rootItem.children) - { - SearchTestTree(child, search, result); - } - } - return result; - } - - protected void SearchTestTree(TreeViewItem item, string search, IList searchResult) - { - var testItem = item as TestTreeViewItem; - if (!testItem.IsGroupNode) - { - if (testItem.FullName.ToLower().Contains(search)) - { - searchResult.Add(item); - } - } - else if (item.children != null) - { - foreach (var child in item.children) - SearchTestTree(child, search, searchResult); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListTreeView/TestListTreeViewGUI.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListTreeView/TestListTreeViewGUI.cs deleted file mode 100644 index a45d2bb..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListTreeView/TestListTreeViewGUI.cs +++ /dev/null @@ -1,11 +0,0 @@ -using UnityEditor.IMGUI.Controls; - -namespace UnityEditor.TestTools.TestRunner.GUI -{ - internal class TestListTreeViewGUI : TreeViewGUI - { - public TestListTreeViewGUI(TreeViewController testListTree) : base(testListTree) - { - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListTreeView/TestTreeViewItem.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListTreeView/TestTreeViewItem.cs deleted file mode 100644 index 4226e31..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestListTreeView/TestTreeViewItem.cs +++ /dev/null @@ -1,137 +0,0 @@ -using System; -using System.Reflection; -using System.Text; -using UnityEditor.IMGUI.Controls; -using UnityEditor.TestTools.TestRunner.Api; - -namespace UnityEditor.TestTools.TestRunner.GUI -{ - internal sealed class TestTreeViewItem : TreeViewItem - { - public TestRunnerResult result; - internal ITestAdaptor m_Test; - - public Type type; - public MethodInfo method; - - private const int k_ResultTestMaxLength = 15000; - - public bool IsGroupNode { get { return m_Test.IsSuite; } } - - public string FullName { get { return m_Test.FullName; } } - - public string GetAssemblyName() - { - var test = m_Test; - while (test != null) - { - if (test.IsTestAssembly) - { - return test.FullName; - } - - test = test.Parent; - } - - return null; - } - - public TestTreeViewItem(ITestAdaptor test, int depth, TreeViewItem parent) - : base(GetId(test), depth, parent, test.Name) - { - m_Test = test; - - if (test.TypeInfo != null) - { - type = test.TypeInfo.Type; - } - if (test.Method != null) - { - method = test.Method.MethodInfo; - } - - displayName = test.Name.Replace("\n", ""); - icon = Icons.s_UnknownImg; - } - - private static int GetId(ITestAdaptor test) - { - return test.UniqueName.GetHashCode(); - } - - public void SetResult(TestRunnerResult testResult) - { - result = testResult; - result.SetResultChangedCallback(ResultUpdated); - ResultUpdated(result); - } - - public string GetResultText() - { - if (result.resultStatus == TestRunnerResult.ResultStatus.NotRun) - { - return string.Empty; - } - var durationString = String.Format("{0:0.000}", result.duration); - var sb = new StringBuilder(string.Format("{0} ({1}s)", displayName.Trim(), durationString)); - if (!string.IsNullOrEmpty(result.description)) - { - sb.AppendFormat("\n{0}", result.description); - } - if (!string.IsNullOrEmpty(result.messages)) - { - sb.Append("\n---\n"); - sb.Append(result.messages.Trim()); - } - if (!string.IsNullOrEmpty(result.stacktrace)) - { - sb.Append("\n---\n"); - sb.Append(result.stacktrace.Trim()); - } - if (!string.IsNullOrEmpty(result.output)) - { - sb.Append("\n---\n"); - sb.Append(result.output.Trim()); - } - if (sb.Length > k_ResultTestMaxLength) - { - sb.Length = k_ResultTestMaxLength; - sb.AppendFormat("...\n\n---MESSAGE TRUNCATED AT {0} CHARACTERS---", k_ResultTestMaxLength); - } - return sb.ToString().Trim(); - } - - private void ResultUpdated(TestRunnerResult testResult) - { - switch (testResult.resultStatus) - { - case TestRunnerResult.ResultStatus.Passed: - icon = Icons.s_SuccessImg; - break; - case TestRunnerResult.ResultStatus.Failed: - icon = Icons.s_FailImg; - break; - case TestRunnerResult.ResultStatus.Inconclusive: - icon = Icons.s_InconclusiveImg; - break; - case TestRunnerResult.ResultStatus.Skipped: - icon = Icons.s_IgnoreImg; - break; - default: - if (testResult.ignoredOrSkipped) - { - icon = Icons.s_IgnoreImg; - } - else if (testResult.notRunnable) - { - icon = Icons.s_FailImg; - } - else - { - icon = Icons.s_UnknownImg; - } - break; - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestRunnerResult.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestRunnerResult.cs deleted file mode 100644 index ddda847..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestRunnerResult.cs +++ /dev/null @@ -1,148 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using UnityEditor.TestTools.TestRunner.Api; - -namespace UnityEditor.TestTools.TestRunner.GUI -{ - [Serializable] - internal class TestRunnerResult : UITestRunnerFilter.IClearableResult - { - public string id; - public string uniqueId; - public string name; - public string fullName; - public ResultStatus resultStatus = ResultStatus.NotRun; - public float duration; - public string messages; - public string output; - public string stacktrace; - public bool notRunnable; - public bool ignoredOrSkipped; - public string description; - public bool isSuite; - public List categories; - public string parentId; - public string parentUniqueId; - - //This field is suppose to mark results from before domain reload - //Such result is outdated because the code might haev changed - //This field will get reset every time a domain reload happens - [NonSerialized] - public bool notOutdated; - - protected Action m_OnResultUpdate; - - internal TestRunnerResult(ITestAdaptor test) - { - id = test.Id; - uniqueId = test.UniqueName; - - fullName = test.FullName; - name = test.Name; - description = test.Description; - isSuite = test.IsSuite; - - ignoredOrSkipped = test.RunState == RunState.Ignored || test.RunState == RunState.Skipped; - notRunnable = test.RunState == RunState.NotRunnable; - - if (ignoredOrSkipped) - { - messages = test.SkipReason; - } - if (notRunnable) - { - resultStatus = ResultStatus.Failed; - messages = test.SkipReason; - } - categories = test.Categories.ToList(); - parentId = test.ParentId; - parentUniqueId = test.ParentUniqueName; - } - - internal TestRunnerResult(ITestResultAdaptor testResult) : this(testResult.Test) - { - notOutdated = true; - - messages = testResult.Message; - output = testResult.Output; - stacktrace = testResult.StackTrace; - duration = (float)testResult.Duration; - if (testResult.Test.IsSuite && testResult.ResultState == "Ignored") - { - resultStatus = ResultStatus.Passed; - } - else - { - resultStatus = ParseNUnitResultStatus(testResult.TestStatus); - } - } - - public void Update(TestRunnerResult result) - { - if (ReferenceEquals(result, null)) - return; - resultStatus = result.resultStatus; - duration = result.duration; - messages = result.messages; - output = result.output; - stacktrace = result.stacktrace; - ignoredOrSkipped = result.ignoredOrSkipped; - notRunnable = result.notRunnable; - description = result.description; - notOutdated = result.notOutdated; - if (m_OnResultUpdate != null) - m_OnResultUpdate(this); - } - - public void SetResultChangedCallback(Action resultUpdated) - { - m_OnResultUpdate = resultUpdated; - } - - [Serializable] - internal enum ResultStatus - { - NotRun, - Passed, - Failed, - Inconclusive, - Skipped - } - - private static ResultStatus ParseNUnitResultStatus(TestStatus status) - { - switch (status) - { - case TestStatus.Passed: - return ResultStatus.Passed; - case TestStatus.Failed: - return ResultStatus.Failed; - case TestStatus.Inconclusive: - return ResultStatus.Inconclusive; - case TestStatus.Skipped: - return ResultStatus.Skipped; - default: - return ResultStatus.NotRun; - } - } - - public override string ToString() - { - return string.Format("{0} ({1})", name, fullName); - } - - public string Id { get { return uniqueId; } } - public string FullName { get { return fullName; } } - public string ParentId { get { return parentUniqueId; } } - public bool IsSuite { get { return isSuite; } } - public List Categories { get { return categories; } } - - public void Clear() - { - resultStatus = ResultStatus.NotRun; - if (m_OnResultUpdate != null) - m_OnResultUpdate(this); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestRunnerUIFilter.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestRunnerUIFilter.cs deleted file mode 100644 index 2c86604..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/TestRunnerUIFilter.cs +++ /dev/null @@ -1,177 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner.GUI -{ - [Serializable] - internal class TestRunnerUIFilter - { - private int m_PassedCount; - private int m_FailedCount; - private int m_NotRunCount; - private int m_InconclusiveCount; - private int m_SkippedCount; - - public int PassedCount { get { return m_PassedCount; } } - public int FailedCount { get { return m_FailedCount + m_InconclusiveCount; } } - public int NotRunCount { get { return m_NotRunCount + m_SkippedCount; } } - - [SerializeField] - public bool PassedHidden; - [SerializeField] - public bool FailedHidden; - [SerializeField] - public bool NotRunHidden; - - [SerializeField] - private string m_SearchString; - [SerializeField] - private int selectedCategoryMask; - - public string[] availableCategories = new string[0]; - - - private GUIContent m_SucceededBtn; - private GUIContent m_FailedBtn; - private GUIContent m_NotRunBtn; - - public Action RebuildTestList; - public Action SearchStringChanged; - public Action SearchStringCleared; - public bool IsFiltering - { - get - { - return !string.IsNullOrEmpty(m_SearchString) || PassedHidden || FailedHidden || NotRunHidden || - selectedCategoryMask != 0; - } - } - - public string[] CategoryFilter - { - get - { - var list = new List(); - for (int i = 0; i < availableCategories.Length; i++) - { - if ((selectedCategoryMask & (1 << i)) != 0) - { - list.Add(availableCategories[i]); - } - } - return list.ToArray(); - } - } - - public void UpdateCounters(List resultList) - { - m_PassedCount = m_FailedCount = m_NotRunCount = m_InconclusiveCount = m_SkippedCount = 0; - foreach (var result in resultList) - { - if (result.isSuite) - continue; - switch (result.resultStatus) - { - case TestRunnerResult.ResultStatus.Passed: - m_PassedCount++; - break; - case TestRunnerResult.ResultStatus.Failed: - m_FailedCount++; - break; - case TestRunnerResult.ResultStatus.Inconclusive: - m_InconclusiveCount++; - break; - case TestRunnerResult.ResultStatus.Skipped: - m_SkippedCount++; - break; - case TestRunnerResult.ResultStatus.NotRun: - default: - m_NotRunCount++; - break; - } - } - - var succeededTooltip = string.Format("Show tests that succeeded\n{0} succeeded", m_PassedCount); - m_SucceededBtn = new GUIContent(PassedCount.ToString(), Icons.s_SuccessImg, succeededTooltip); - var failedTooltip = string.Format("Show tests that failed\n{0} failed\n{1} inconclusive", m_FailedCount, m_InconclusiveCount); - m_FailedBtn = new GUIContent(FailedCount.ToString(), Icons.s_FailImg, failedTooltip); - var notRunTooltip = string.Format("Show tests that didn't run\n{0} didn't run\n{1} skipped or ignored", m_NotRunCount, m_SkippedCount); - m_NotRunBtn = new GUIContent(NotRunCount.ToString(), Icons.s_UnknownImg, notRunTooltip); - } - - public void Draw() - { - EditorGUI.BeginChangeCheck(); - if (m_SearchString == null) - { - m_SearchString = ""; - } - m_SearchString = EditorGUILayout.ToolbarSearchField(m_SearchString); - if (EditorGUI.EndChangeCheck() && SearchStringChanged != null) - { - SearchStringChanged(m_SearchString); - if (String.IsNullOrEmpty(m_SearchString)) - SearchStringCleared(); - } - - if (availableCategories != null && availableCategories.Any()) - { - EditorGUI.BeginChangeCheck(); - selectedCategoryMask = EditorGUILayout.MaskField(selectedCategoryMask, availableCategories, EditorStyles.toolbarDropDown, GUILayout.MaxWidth(150)); - if (EditorGUI.EndChangeCheck() && RebuildTestList != null) - { - RebuildTestList(); - } - } - else - { - EditorGUILayout.Popup(0, new[] { "" }, EditorStyles.toolbarDropDown, GUILayout.MaxWidth(150)); - } - - EditorGUI.BeginChangeCheck(); - if (m_SucceededBtn != null) - { - PassedHidden = !GUILayout.Toggle(!PassedHidden, m_SucceededBtn, EditorStyles.toolbarButton, GUILayout.MaxWidth(GetMaxWidth(PassedCount))); - } - if (m_FailedBtn != null) - { - FailedHidden = !GUILayout.Toggle(!FailedHidden, m_FailedBtn, EditorStyles.toolbarButton, GUILayout.MaxWidth(GetMaxWidth(FailedCount))); - } - if (m_NotRunBtn != null) - { - NotRunHidden = !GUILayout.Toggle(!NotRunHidden, m_NotRunBtn, EditorStyles.toolbarButton, GUILayout.MaxWidth(GetMaxWidth(NotRunCount))); - } - - if (EditorGUI.EndChangeCheck() && RebuildTestList != null) - { - RebuildTestList(); - } - } - - private static int GetMaxWidth(int count) - { - if (count < 10) - return 33; - return count < 100 ? 40 : 47; - } - - public void Clear() - { - PassedHidden = false; - FailedHidden = false; - NotRunHidden = false; - selectedCategoryMask = 0; - m_SearchString = ""; - if (SearchStringChanged != null) - { - SearchStringChanged(m_SearchString); - } - if (SearchStringCleared != null) - { - SearchStringCleared(); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/UITestRunnerFilter.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/UITestRunnerFilter.cs deleted file mode 100644 index 293e7c4..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/UITestRunnerFilter.cs +++ /dev/null @@ -1,164 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text.RegularExpressions; - -namespace UnityEditor.TestTools.TestRunner.GUI -{ - [Serializable] - internal class UITestRunnerFilter - { -#pragma warning disable 649 - public string[] assemblyNames; - public string[] groupNames; - public string[] categoryNames; - public string[] testNames; - public int testRepetitions = 1; - public bool synchronousOnly = false; - - public static string AssemblyNameFromPath(string path) - { - string output = Path.GetFileName(path); - if (output != null && output.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)) - return output.Substring(0, output.Length - 4); - return output; - } - - private bool CategoryMatches(IEnumerable categories) - { - if (categoryNames == null || categoryNames.Length == 0) - return true; - - foreach (string category in categories) - { - if (categoryNames.Contains(category)) - return true; - } - - return false; - } - - private bool IDMatchesAssembly(string id) - { - if (AreOptionalFiltersEmpty()) - return true; - - if (assemblyNames == null || assemblyNames.Length == 0) - return true; - - int openingBracket = id.IndexOf('['); - int closingBracket = id.IndexOf(']'); - if (openingBracket >= 0 && openingBracket < id.Length && closingBracket > openingBracket && - openingBracket < id.Length) - { - //Some assemblies are absolute and explicitly part of the test ID e.g. - //"[/path/to/assembly-name.dll][rest of ID ...]" - //While some are minimal assembly names e.g. - //"[assembly-name][rest of ID ...]" - //Strip them down to just the assembly name - string assemblyNameFromID = - AssemblyNameFromPath(id.Substring(openingBracket + 1, closingBracket - openingBracket - 1)); - foreach (string assemblyName in assemblyNames) - { - if (assemblyName.Equals(assemblyNameFromID, StringComparison.OrdinalIgnoreCase)) - return true; - } - } - - return false; - } - - private bool NameMatches(string name) - { - if (AreOptionalFiltersEmpty()) - return true; - - if (groupNames == null || groupNames.Length == 0) - return true; - - foreach (var nameFromFilter in groupNames) - { - //Strict regex match for test group name on its own - if (Regex.IsMatch(name, nameFromFilter)) - return true; - //Match test names that end with parametrized test values and full nunit generated test names that have . separators - var regex = nameFromFilter.TrimEnd('$') + @"[\.|\(.*\)]"; - if (Regex.IsMatch(name, regex)) - return true; - } - - return false; - } - - private bool AreOptionalFiltersEmpty() - { - if (assemblyNames != null && assemblyNames.Length != 0) - return false; - if (groupNames != null && groupNames.Length != 0) - return false; - if (testNames != null && testNames.Length != 0) - return false; - return true; - } - - private bool NameMatchesExactly(string name) - { - if (AreOptionalFiltersEmpty()) - return true; - - if (testNames == null || testNames.Length == 0) - return true; - - foreach (var exactName in testNames) - { - if (name == exactName) - return true; - } - - return false; - } - - private static void ClearAncestors(IEnumerable newResultList, string parentID) - { - if (string.IsNullOrEmpty(parentID)) - return; - foreach (var result in newResultList) - { - if (result.Id == parentID) - { - result.Clear(); - ClearAncestors(newResultList, result.ParentId); - break; - } - } - } - - public void ClearResults(List newResultList) - { - foreach (var result in newResultList) - { - if (!result.IsSuite && CategoryMatches(result.Categories)) - { - if (IDMatchesAssembly(result.Id) && NameMatches(result.FullName) && - NameMatchesExactly(result.FullName)) - { - result.Clear(); - ClearAncestors(newResultList, result.ParentId); - } - } - } - } - - internal interface IClearableResult - { - string Id { get; } - string FullName { get; } - string ParentId { get; } - bool IsSuite { get; } - List Categories { get; } - void Clear(); - } - - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/Views/EditModeTestListGUI.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/Views/EditModeTestListGUI.cs deleted file mode 100644 index 24651a2..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/Views/EditModeTestListGUI.cs +++ /dev/null @@ -1,92 +0,0 @@ -using System; -using System.Linq; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine; -using UnityEngine.TestTools; - -namespace UnityEditor.TestTools.TestRunner.GUI -{ - [Serializable] - internal class EditModeTestListGUI : TestListGUI - { - public override TestMode TestMode - { - get { return TestMode.EditMode; } - } - - public override void RenderNoTestsInfo() - { - if (!TestListGUIHelper.SelectedFolderContainsTestAssembly()) - { - var noTestText = "No tests to show"; - - if (!PlayerSettings.playModeTestRunnerEnabled) - { - const string testsArePulledFromCustomAssemblies = - "EditMode tests can be in Editor only Assemblies, either in the editor special folder or Editor only Assembly Definitions that references the \"nunit.framework.dll\" Assembly Reference or any of the Assembly Definition References \"UnityEngine.TestRunner\" or \"UnityEditor.TestRunner\".."; - noTestText += Environment.NewLine + testsArePulledFromCustomAssemblies; - } - - EditorGUILayout.HelpBox(noTestText, MessageType.Info); - if (GUILayout.Button("Create EditMode Test Assembly Folder")) - { - TestListGUIHelper.AddFolderAndAsmDefForTesting(isEditorOnly: true); - } - } - - if (!TestListGUIHelper.CanAddEditModeTestScriptAndItWillCompile()) - { - UnityEngine.GUI.enabled = false; - EditorGUILayout.HelpBox("EditMode test scripts can only be created in editor test assemblies.", MessageType.Warning); - } - if (GUILayout.Button("Create Test Script in current folder")) - { - TestListGUIHelper.AddTest(); - } - UnityEngine.GUI.enabled = true; - } - - public override void PrintHeadPanel() - { - base.PrintHeadPanel(); - DrawFilters(); - } - - protected override void RunTests(params UITestRunnerFilter[] filters) - { - if (EditorUtility.scriptCompilationFailed) - { - Debug.LogError("Fix compilation issues before running tests"); - return; - } - - foreach (var filter in filters) - { - filter.ClearResults(newResultList.OfType().ToList()); - } - - RerunCallbackData.instance.runFilters = filters; - RerunCallbackData.instance.testMode = TestMode.EditMode; - - var testRunnerApi = ScriptableObject.CreateInstance(); - testRunnerApi.Execute(new ExecutionSettings() - { - filters = filters.Select(filter => new Filter() - { - assemblyNames = filter.assemblyNames, - categoryNames = filter.categoryNames, - groupNames = filter.groupNames, - testMode = TestMode, - testNames = filter.testNames - }).ToArray() - }); - } - - public override TestPlatform TestPlatform { get { return TestPlatform.EditMode; } } - - protected override bool IsBusy() - { - return TestRunnerApi.IsRunActive() || EditorApplication.isCompiling || EditorApplication.isPlaying; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/Views/PlayModeTestListGUI.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/Views/PlayModeTestListGUI.cs deleted file mode 100644 index 44430b0..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/Views/PlayModeTestListGUI.cs +++ /dev/null @@ -1,241 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using UnityEditor.SceneManagement; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine; -using UnityEngine.TestTools; - -namespace UnityEditor.TestTools.TestRunner.GUI -{ - [Serializable] - internal class PlayModeTestListGUI : TestListGUI - { - private struct PlayerMenuItem - { - public GUIContent name; - public bool filterSelectedTestsOnly; - public bool buildOnly; - } - - [SerializeField] - private int m_SelectedOption; - - public override TestMode TestMode - { - get { return TestMode.PlayMode; } - } - - private string GetBuildText() - { - switch (EditorUserBuildSettings.activeBuildTarget) - { - case BuildTarget.Android: - if (EditorUserBuildSettings.exportAsGoogleAndroidProject) - return "Export"; - break; - case BuildTarget.iOS: - return "Export"; - } - return "Build"; - } - - private string PickBuildLocation() - { - var target = EditorUserBuildSettings.activeBuildTarget; - var targetGroup = BuildPipeline.GetBuildTargetGroup(target); - var lastLocation = EditorUserBuildSettings.GetBuildLocation(target); - var extension = PostprocessBuildPlayer.GetExtensionForBuildTarget(targetGroup, target, BuildOptions.None); - var defaultName = FileUtil.GetLastPathNameComponent(lastLocation); - lastLocation = string.IsNullOrEmpty(lastLocation) ? string.Empty : Path.GetDirectoryName(lastLocation); - bool updateExistingBuild; - var location = EditorUtility.SaveBuildPanel(target, $"{GetBuildText()} {target}", lastLocation, defaultName, extension, - out updateExistingBuild); - if (!string.IsNullOrEmpty(location)) - EditorUserBuildSettings.SetBuildLocation(target, location); - return location; - } - - private void ExecuteAction(PlayerMenuItem item) - { - var runSettings = new PlayerLauncherTestRunSettings(); - runSettings.buildOnly = item.buildOnly; - if (runSettings.buildOnly) - { - runSettings.buildOnlyLocationPath = PickBuildLocation(); - if (string.IsNullOrEmpty(runSettings.buildOnlyLocationPath)) - { - Debug.LogWarning("Aborting, build selection was canceled."); - return; - } - } - - if (item.filterSelectedTestsOnly) - RunTestsInPlayer(runSettings, SelectedTestsFilter); - else - { - var filter = new UITestRunnerFilter { categoryNames = m_TestRunnerUIFilter.CategoryFilter }; - RunTestsInPlayer(runSettings, filter); - } - } - - public override void PrintHeadPanel() - { - EditorGUILayout.BeginHorizontal(GUILayout.ExpandHeight(false)); - base.PrintHeadPanel(); - - PlayerMenuItem[] menuItems; - - if (EditorUserBuildSettings.installInBuildFolder) - { - menuItems = new [] - { - // Note: We select here buildOnly = false, so build location dialog won't show up - // The player won't actually be ran when using together with EditorUserBuildSettings.installInBuildFolder - new PlayerMenuItem() - { - name = new GUIContent("Install All Tests In Build Folder"), buildOnly = false, filterSelectedTestsOnly = false - }, - new PlayerMenuItem() - { - name = new GUIContent("Install Selected Tests In Build Folder"), buildOnly = false, filterSelectedTestsOnly = true - } - }; - } - else - { - menuItems = new [] - { - new PlayerMenuItem() - { - name = new GUIContent("Run All Tests"), buildOnly = false, filterSelectedTestsOnly = false - }, - new PlayerMenuItem() - { - name = new GUIContent("Run Selected Tests"), buildOnly = false, filterSelectedTestsOnly = true - }, - new PlayerMenuItem() - { - name = new GUIContent($"{GetBuildText()} All Tests"), buildOnly = true, filterSelectedTestsOnly = false - }, - new PlayerMenuItem() - { - name = new GUIContent($"{GetBuildText()} Selected Tests"), buildOnly = true, filterSelectedTestsOnly = true - }, - }; - } - - m_SelectedOption = Math.Min(m_SelectedOption, menuItems.Length - 1); - var selectedMenuItem = menuItems[m_SelectedOption]; - if (GUILayout.Button( - new GUIContent($"{selectedMenuItem.name.text} ({EditorUserBuildSettings.activeBuildTarget})"), - EditorStyles.toolbarButton)) - { - ExecuteAction(selectedMenuItem); - } - - if (GUILayout.Button(GUIContent.none, EditorStyles.toolbarDropDown)) - { - Vector2 mousePos = Event.current.mousePosition; - EditorUtility.DisplayCustomMenu(new Rect(mousePos.x, mousePos.y, 0, 0), - menuItems.Select(m => m.name).ToArray(), - -1, - (object userData, string[] options, int selected) => m_SelectedOption = selected, - menuItems); - } - - EditorGUILayout.EndHorizontal(); - DrawFilters(); - EditorGUILayout.BeginHorizontal(GUILayout.ExpandHeight(false)); - EditorGUILayout.EndHorizontal(); - } - - public override void RenderNoTestsInfo() - { - if (!TestListGUIHelper.SelectedFolderContainsTestAssembly()) - { - var noTestText = "No tests to show"; - if (!PlayerSettings.playModeTestRunnerEnabled) - { - const string testsArePulledFromCustomAssemblues = "Test Assemblies are defined by Assembly Definitions that references the \"nunit.framework.dll\" Assembly Reference or the Assembly Definition Reference \"UnityEngine.TestRunner\"."; - const string infoTextAboutTestsInAllAssemblies = - "To have tests in all assemblies enable it in the Test Runner window context menu"; - noTestText += Environment.NewLine + testsArePulledFromCustomAssemblues + Environment.NewLine + - infoTextAboutTestsInAllAssemblies; - } - - EditorGUILayout.HelpBox(noTestText, MessageType.Info); - if (GUILayout.Button("Create PlayMode Test Assembly Folder")) - { - TestListGUIHelper.AddFolderAndAsmDefForTesting(); - } - } - - if (!TestListGUIHelper.CanAddPlayModeTestScriptAndItWillCompile()) - { - UnityEngine.GUI.enabled = false; - EditorGUILayout.HelpBox("PlayMode test scripts can only be created in non editor test assemblies.", MessageType.Warning); - } - if (GUILayout.Button("Create Test Script in current folder")) - { - TestListGUIHelper.AddTest(); - } - UnityEngine.GUI.enabled = true; - } - - protected override void RunTests(UITestRunnerFilter[] filters) - { - foreach (var filter in filters) - { - filter.ClearResults(newResultList.OfType().ToList()); - } - - RerunCallbackData.instance.runFilters = filters; - RerunCallbackData.instance.testMode = TestMode.PlayMode; - - var testRunnerApi = ScriptableObject.CreateInstance(); - testRunnerApi.Execute(new ExecutionSettings() - { - filters = filters.Select(filter => new Filter() - { - assemblyNames = filter.assemblyNames, - categoryNames = filter.categoryNames, - groupNames = filter.groupNames, - testMode = TestMode, - testNames = filter.testNames - }).ToArray() - }); - } - - - protected void RunTestsInPlayer(PlayerLauncherTestRunSettings runSettings, params UITestRunnerFilter[] filters) - { - foreach (var filter in filters) - { - filter.ClearResults(newResultList.OfType().ToList()); - } - - var testRunnerApi = ScriptableObject.CreateInstance(); - testRunnerApi.Execute(new ExecutionSettings() - { - overloadTestRunSettings = runSettings, - filters = filters.Select(filter => new Filter() - { - assemblyNames = filter.assemblyNames, - categoryNames = filter.categoryNames, - groupNames = filter.groupNames, - testMode = TestMode, - testNames = filter.testNames - }).ToArray(), - targetPlatform = EditorUserBuildSettings.activeBuildTarget - }); - } - - public override TestPlatform TestPlatform { get { return TestPlatform.PlayMode; } } - - protected override bool IsBusy() - { - return TestRunnerApi.IsRunActive() || PlaymodeLauncher.IsRunning || EditorApplication.isCompiling || EditorApplication.isPlaying; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/Views/TestListGUIBase.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/Views/TestListGUIBase.cs deleted file mode 100644 index b9c4f67..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/GUI/Views/TestListGUIBase.cs +++ /dev/null @@ -1,540 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.RegularExpressions; -using UnityEditor.IMGUI.Controls; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine; -using UnityEngine.TestTools; - -namespace UnityEditor.TestTools.TestRunner.GUI -{ - internal abstract class TestListGUI - { - private static readonly GUIContent s_GUIRunSelectedTests = EditorGUIUtility.TrTextContent("Run Selected", "Run selected test(s)"); - private static readonly GUIContent s_GUIRunAllTests = EditorGUIUtility.TrTextContent("Run All", "Run all tests"); - private static readonly GUIContent s_GUIRerunFailedTests = EditorGUIUtility.TrTextContent("Rerun Failed", "Rerun all failed tests"); - private static readonly GUIContent s_GUIRun = EditorGUIUtility.TrTextContent("Run"); - private static readonly GUIContent s_GUIRunUntilFailed = EditorGUIUtility.TrTextContent("Run Until Failed"); - private static readonly GUIContent s_GUIRun100Times = EditorGUIUtility.TrTextContent("Run 100 times"); - private static readonly GUIContent s_GUIOpenTest = EditorGUIUtility.TrTextContent("Open source code"); - private static readonly GUIContent s_GUIOpenErrorLine = EditorGUIUtility.TrTextContent("Open error line"); - private static readonly GUIContent s_GUIClearResults = EditorGUIUtility.TrTextContent("Clear Results", "Clear all test results"); - - [SerializeField] - protected TestRunnerWindow m_Window; - [SerializeField] - public List newResultList = new List(); - [SerializeField] - private string m_ResultText; - [SerializeField] - private string m_ResultStacktrace; - - private TreeViewController m_TestListTree; - [SerializeField] - internal TreeViewState m_TestListState; - [SerializeField] - internal TestRunnerUIFilter m_TestRunnerUIFilter = new TestRunnerUIFilter(); - - private Vector2 m_TestInfoScroll, m_TestListScroll; - private string m_PreviousProjectPath; - private List m_QueuedResults = new List(); - - protected TestListGUI() - { - MonoCecilHelper = new MonoCecilHelper(); - AssetsDatabaseHelper = new AssetsDatabaseHelper(); - - GuiHelper = new GuiHelper(MonoCecilHelper, AssetsDatabaseHelper); - } - - protected IMonoCecilHelper MonoCecilHelper { get; private set; } - protected IAssetsDatabaseHelper AssetsDatabaseHelper { get; private set; } - protected IGuiHelper GuiHelper { get; private set; } - protected UITestRunnerFilter[] SelectedTestsFilter => GetSelectedTestsAsFilter(m_TestListTree.GetSelection()); - - public abstract TestMode TestMode { get; } - - public virtual void PrintHeadPanel() - { - EditorGUILayout.BeginHorizontal(EditorStyles.toolbar); - using (new EditorGUI.DisabledScope(IsBusy())) - { - if (GUILayout.Button(s_GUIRunAllTests, EditorStyles.toolbarButton)) - { - var filter = new UITestRunnerFilter {categoryNames = m_TestRunnerUIFilter.CategoryFilter}; - RunTests(filter); - GUIUtility.ExitGUI(); - } - } - using (new EditorGUI.DisabledScope(m_TestListTree == null || !m_TestListTree.HasSelection() || IsBusy())) - { - if (GUILayout.Button(s_GUIRunSelectedTests, EditorStyles.toolbarButton)) - { - RunTests(SelectedTestsFilter); - GUIUtility.ExitGUI(); - } - } - using (new EditorGUI.DisabledScope(m_TestRunnerUIFilter.FailedCount == 0 || IsBusy())) - { - if (GUILayout.Button(s_GUIRerunFailedTests, EditorStyles.toolbarButton)) - { - var failedTestnames = new List(); - foreach (var result in newResultList) - { - if (result.isSuite) - continue; - if (result.resultStatus == TestRunnerResult.ResultStatus.Failed || - result.resultStatus == TestRunnerResult.ResultStatus.Inconclusive) - failedTestnames.Add(result.fullName); - } - RunTests(new UITestRunnerFilter() {testNames = failedTestnames.ToArray(), categoryNames = m_TestRunnerUIFilter.CategoryFilter}); - GUIUtility.ExitGUI(); - } - } - using (new EditorGUI.DisabledScope(IsBusy())) - { - if (GUILayout.Button(s_GUIClearResults, EditorStyles.toolbarButton)) - { - foreach (var result in newResultList) - { - result.Clear(); - } - m_TestRunnerUIFilter.UpdateCounters(newResultList); - Reload(); - GUIUtility.ExitGUI(); - } - } - GUILayout.FlexibleSpace(); - EditorGUILayout.EndHorizontal(); - } - - protected void DrawFilters() - { - EditorGUILayout.BeginHorizontal(EditorStyles.toolbar); - m_TestRunnerUIFilter.Draw(); - EditorGUILayout.EndHorizontal(); - } - - public bool HasTreeData() - { - return m_TestListTree != null; - } - - public virtual void RenderTestList() - { - if (m_TestListTree == null) - { - GUILayout.Label("Loading..."); - return; - } - - m_TestListScroll = EditorGUILayout.BeginScrollView(m_TestListScroll, - GUILayout.ExpandWidth(true), - GUILayout.MaxWidth(2000)); - - if (m_TestListTree.data.root == null || m_TestListTree.data.rowCount == 0 || (!m_TestListTree.isSearching && !m_TestListTree.data.GetItem(0).hasChildren)) - { - if (m_TestRunnerUIFilter.IsFiltering) - { - if (GUILayout.Button("Clear filters")) - { - m_TestRunnerUIFilter.Clear(); - m_TestListTree.ReloadData(); - m_Window.Repaint(); - } - } - RenderNoTestsInfo(); - } - else - { - var treeRect = EditorGUILayout.GetControlRect(GUILayout.ExpandHeight(true), GUILayout.ExpandWidth(true)); - var treeViewKeyboardControlId = GUIUtility.GetControlID(FocusType.Keyboard); - - m_TestListTree.OnGUI(treeRect, treeViewKeyboardControlId); - } - - EditorGUILayout.EndScrollView(); - } - - public virtual void RenderNoTestsInfo() - { - EditorGUILayout.HelpBox("No tests to show", MessageType.Info); - } - - public void RenderDetails() - { - m_TestInfoScroll = EditorGUILayout.BeginScrollView(m_TestInfoScroll); - var resultTextSize = TestRunnerWindow.Styles.info.CalcSize(new GUIContent(m_ResultText)); - EditorGUILayout.SelectableLabel(m_ResultText, TestRunnerWindow.Styles.info, - GUILayout.ExpandHeight(true), - GUILayout.ExpandWidth(true), - GUILayout.MinWidth(resultTextSize.x), - GUILayout.MinHeight(resultTextSize.y)); - EditorGUILayout.EndScrollView(); - } - - public void Reload() - { - if (m_TestListTree != null) - { - m_TestListTree.ReloadData(); - UpdateQueuedResults(); - } - } - - public void Repaint() - { - if (m_TestListTree == null || m_TestListTree.data.root == null) - { - return; - } - - m_TestListTree.Repaint(); - if (m_TestListTree.data.rowCount == 0) - m_TestListTree.SetSelection(new int[0], false); - TestSelectionCallback(m_TestListState.selectedIDs.ToArray()); - } - - public void Init(TestRunnerWindow window, ITestAdaptor rootTest) - { - if (m_Window == null) - { - m_Window = window; - } - - if (m_TestListTree == null) - { - if (m_TestListState == null) - { - m_TestListState = new TreeViewState(); - } - if (m_TestListTree == null) - m_TestListTree = new TreeViewController(m_Window, m_TestListState); - - m_TestListTree.deselectOnUnhandledMouseDown = false; - - m_TestListTree.selectionChangedCallback += TestSelectionCallback; - m_TestListTree.itemDoubleClickedCallback += TestDoubleClickCallback; - m_TestListTree.contextClickItemCallback += TestContextClickCallback; - - var testListTreeViewDataSource = new TestListTreeViewDataSource(m_TestListTree, this, rootTest); - - if (!newResultList.Any()) - testListTreeViewDataSource.ExpandTreeOnCreation(); - - m_TestListTree.Init(new Rect(), - testListTreeViewDataSource, - new TestListTreeViewGUI(m_TestListTree), - null); - } - - EditorApplication.update += RepaintIfProjectPathChanged; - - m_TestRunnerUIFilter.UpdateCounters(newResultList); - m_TestRunnerUIFilter.RebuildTestList = () => m_TestListTree.ReloadData(); - m_TestRunnerUIFilter.SearchStringChanged = s => m_TestListTree.searchString = s; - m_TestRunnerUIFilter.SearchStringCleared = () => FrameSelection(); - } - - public void UpdateResult(TestRunnerResult result) - { - if (!HasTreeData()) - { - m_QueuedResults.Add(result); - return; - } - - if (newResultList.All(x => x.uniqueId != result.uniqueId)) - { - return; - } - - var testRunnerResult = newResultList.FirstOrDefault(x => x.uniqueId == result.uniqueId); - if (testRunnerResult != null) - { - testRunnerResult.Update(result); - } - - Repaint(); - m_Window.Repaint(); - } - - public void UpdateTestTree(ITestAdaptor test) - { - if (!HasTreeData()) - { - return; - } - - (m_TestListTree.data as TestListTreeViewDataSource).UpdateRootTest(test); - - m_TestListTree.ReloadData(); - Repaint(); - m_Window.Repaint(); - } - - private void UpdateQueuedResults() - { - foreach (var testRunnerResult in m_QueuedResults) - { - var existingResult = newResultList.FirstOrDefault(x => x.uniqueId == testRunnerResult.uniqueId); - if (existingResult != null) - { - existingResult.Update(testRunnerResult); - } - } - m_QueuedResults.Clear(); - TestSelectionCallback(m_TestListState.selectedIDs.ToArray()); - m_TestRunnerUIFilter.UpdateCounters(newResultList); - Repaint(); - m_Window.Repaint(); - } - - internal void TestSelectionCallback(int[] selected) - { - if (m_TestListTree != null && selected.Length == 1) - { - if (m_TestListTree != null) - { - var node = m_TestListTree.FindItem(selected[0]); - if (node is TestTreeViewItem) - { - var test = node as TestTreeViewItem; - m_ResultText = test.GetResultText(); - m_ResultStacktrace = test.result.stacktrace; - } - } - } - else if (selected.Length == 0) - { - m_ResultText = ""; - } - } - - protected virtual void TestDoubleClickCallback(int id) - { - if (IsBusy()) - return; - - RunTests(GetSelectedTestsAsFilter(new List { id })); - GUIUtility.ExitGUI(); - } - - protected virtual void RunTests(params UITestRunnerFilter[] filters) - { - throw new NotImplementedException(); - } - - protected virtual void TestContextClickCallback(int id) - { - if (id == 0) - return; - - var m = new GenericMenu(); - var testFilters = GetSelectedTestsAsFilter(m_TestListState.selectedIDs); - var multilineSelection = m_TestListState.selectedIDs.Count > 1; - - if (!multilineSelection) - { - var testNode = GetSelectedTest(); - var isNotSuite = !testNode.IsGroupNode; - if (isNotSuite) - { - if (!string.IsNullOrEmpty(m_ResultStacktrace)) - { - m.AddItem(s_GUIOpenErrorLine, - false, - data => - { - if (!GuiHelper.OpenScriptInExternalEditor(m_ResultStacktrace)) - { - GuiHelper.OpenScriptInExternalEditor(testNode.type, testNode.method); - } - }, - ""); - } - - m.AddItem(s_GUIOpenTest, - false, - data => GuiHelper.OpenScriptInExternalEditor(testNode.type, testNode.method), - ""); - m.AddSeparator(""); - } - } - - if (!IsBusy()) - { - m.AddItem(multilineSelection ? s_GUIRunSelectedTests : s_GUIRun, - false, - data => RunTests(testFilters), - ""); - - if (EditorPrefs.GetBool("DeveloperMode", false)) - { - m.AddItem(multilineSelection ? s_GUIRunSelectedTests : s_GUIRunUntilFailed, - false, - data => - { - foreach (var filter in testFilters) - { - filter.testRepetitions = int.MaxValue; - } - - RunTests(testFilters); - }, - ""); - - m.AddItem(multilineSelection ? s_GUIRunSelectedTests : s_GUIRun100Times, - false, - data => - { - foreach (var filter in testFilters) - { - filter.testRepetitions = 100; - } - - RunTests(testFilters); - }, - ""); - } - } - else - m.AddDisabledItem(multilineSelection ? s_GUIRunSelectedTests : s_GUIRun, false); - - m.ShowAsContext(); - } - - private UITestRunnerFilter[] GetSelectedTestsAsFilter(IEnumerable selectedIDs) - { - var namesToRun = new List(); - var assembliesForNamesToRun = new List(); - var exactNamesToRun = new List(); - var assembliesToRun = new List(); - foreach (var lineId in selectedIDs) - { - var line = m_TestListTree.FindItem(lineId); - if (line is TestTreeViewItem) - { - var testLine = line as TestTreeViewItem; - if (testLine.IsGroupNode && !testLine.FullName.Contains("+")) - { - if (testLine.parent != null && testLine.parent.displayName == "Invisible Root Item") - { - //Root node selected. Use an empty TestRunnerFilter to run every test - return new[] {new UITestRunnerFilter()}; - } - - if (testLine.FullName.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)) - { - assembliesToRun.Add(UITestRunnerFilter.AssemblyNameFromPath(testLine.FullName)); - } - else - { - namesToRun.Add($"^{Regex.Escape(testLine.FullName)}$"); - var assembly = UITestRunnerFilter.AssemblyNameFromPath(testLine.GetAssemblyName()); - if (!string.IsNullOrEmpty(assembly) && !assembliesForNamesToRun.Contains(assembly)) - { - assembliesForNamesToRun.Add(assembly); - } - } - } - else - { - exactNamesToRun.Add(testLine.FullName); - } - } - } - - var filters = new List(); - - if (assembliesToRun.Count > 0) - { - filters.Add(new UITestRunnerFilter() - { - assemblyNames = assembliesToRun.ToArray() - }); - } - - if (namesToRun.Count > 0) - { - filters.Add(new UITestRunnerFilter() - { - groupNames = namesToRun.ToArray(), - assemblyNames = assembliesForNamesToRun.ToArray() - }); - } - - if (exactNamesToRun.Count > 0) - { - filters.Add(new UITestRunnerFilter() - { - testNames = exactNamesToRun.ToArray() - }); - } - - if (filters.Count == 0) - { - filters.Add(new UITestRunnerFilter()); - } - - var categories = m_TestRunnerUIFilter.CategoryFilter.ToArray(); - if (categories.Length > 0) - { - foreach (var filter in filters) - { - filter.categoryNames = categories; - } - } - - return filters.ToArray(); - } - - private TestTreeViewItem GetSelectedTest() - { - foreach (var lineId in m_TestListState.selectedIDs) - { - var line = m_TestListTree.FindItem(lineId); - if (line is TestTreeViewItem) - { - return line as TestTreeViewItem; - } - } - return null; - } - - private void FrameSelection() - { - if (m_TestListTree.HasSelection()) - { - var firstClickedID = m_TestListState.selectedIDs.First() == m_TestListState.lastClickedID ? m_TestListState.selectedIDs.Last() : m_TestListState.selectedIDs.First(); - m_TestListTree.Frame(firstClickedID, true, false); - } - } - - public abstract TestPlatform TestPlatform { get; } - - public void RebuildUIFilter() - { - m_TestRunnerUIFilter.UpdateCounters(newResultList); - if (m_TestRunnerUIFilter.IsFiltering) - { - m_TestListTree.ReloadData(); - } - } - - public void RepaintIfProjectPathChanged() - { - var path = TestListGUIHelper.GetActiveFolderPath(); - if (path != m_PreviousProjectPath) - { - m_PreviousProjectPath = path; - TestRunnerWindow.s_Instance.Repaint(); - } - - EditorApplication.update -= RepaintIfProjectPathChanged; - } - - protected abstract bool IsBusy(); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/NUnitExtension/Attributes/AssetPipelineIgnore.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/NUnitExtension/Attributes/AssetPipelineIgnore.cs deleted file mode 100644 index d1d579f..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/NUnitExtension/Attributes/AssetPipelineIgnore.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System; -using NUnit.Framework; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; - -namespace UnityEditor.TestTools -{ - /// - /// Ignore attributes dedicated to Asset Import Pipeline backend version handling. - /// - internal static class AssetPipelineIgnore - { - internal enum AssetPipelineBackend - { - V1, - V2 - } - - /// - /// Ignore the test when running with the legacy Asset Import Pipeline V1 backend. - /// - internal class IgnoreInV1 : AssetPipelineIgnoreAttribute - { - public IgnoreInV1(string ignoreReason) : base(AssetPipelineBackend.V1, ignoreReason) {} - } - - /// - /// Ignore the test when running with the latest Asset Import Pipeline V2 backend. - /// - internal class IgnoreInV2 : AssetPipelineIgnoreAttribute - { - public IgnoreInV2(string ignoreReason) : base(AssetPipelineBackend.V2, ignoreReason) {} - } - - [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Method)] - internal class AssetPipelineIgnoreAttribute : NUnitAttribute, IApplyToTest - { - readonly string m_IgnoreReason; - readonly AssetPipelineBackend m_IgnoredBackend; - static readonly AssetPipelineBackend k_ActiveBackend = AssetDatabase.IsV2Enabled() - ? AssetPipelineBackend.V2 - : AssetPipelineBackend.V1; - - static string ActiveBackendName = Enum.GetName(typeof(AssetPipelineBackend), k_ActiveBackend); - - public AssetPipelineIgnoreAttribute(AssetPipelineBackend backend, string ignoreReason) - { - m_IgnoredBackend = backend; - m_IgnoreReason = ignoreReason; - } - - public void ApplyToTest(Test test) - { - if (k_ActiveBackend == m_IgnoredBackend) - { - test.RunState = RunState.Ignored; - var skipReason = string.Format("Not supported by asset pipeline {0} backend {1}", ActiveBackendName, m_IgnoreReason); - test.Properties.Add(PropertyNames.SkipReason, skipReason); - } - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/NUnitExtension/Attributes/ITestPlayerBuildModifier.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/NUnitExtension/Attributes/ITestPlayerBuildModifier.cs deleted file mode 100644 index 4137f4d..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/NUnitExtension/Attributes/ITestPlayerBuildModifier.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace UnityEditor.TestTools -{ - /// - /// An interface for a callback modifying the when building a player for running tests in the runtime. - /// - public interface ITestPlayerBuildModifier - { - /// - /// A callback to modify the when building a player for test run. Return the modified version of the provided build options. - /// - /// The unmodified BuildPlayerOptions. - /// The modified BuildPlayerOptions. - BuildPlayerOptions ModifyOptions(BuildPlayerOptions playerOptions); - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/NUnitExtension/Attributes/TestPlayerBuildModifierAttribute.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/NUnitExtension/Attributes/TestPlayerBuildModifierAttribute.cs deleted file mode 100644 index bcf7c24..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/NUnitExtension/Attributes/TestPlayerBuildModifierAttribute.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; - -namespace UnityEditor.TestTools -{ - [AttributeUsage(AttributeTargets.Assembly)] - public class TestPlayerBuildModifierAttribute : Attribute - { - private Type m_Type; - public TestPlayerBuildModifierAttribute(Type type) - { - var interfaceType = typeof(ITestPlayerBuildModifier); - if (!interfaceType.IsAssignableFrom(type)) - { - throw new ArgumentException(string.Format("Type provided to {0} does not implement {1}", this.GetType().Name, interfaceType.Name)); - } - m_Type = type; - } - - internal ITestPlayerBuildModifier ConstructModifier() - { - return Activator.CreateInstance(m_Type) as ITestPlayerBuildModifier; - } - } -} - diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/NUnitExtension/TestRunnerStateSerializer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/NUnitExtension/TestRunnerStateSerializer.cs deleted file mode 100644 index 351e622..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/NUnitExtension/TestRunnerStateSerializer.cs +++ /dev/null @@ -1,162 +0,0 @@ -using System; -using System.Reflection; -using System.Text; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.TestRunner.NUnitExtensions.Runner; -using UnityEngine.TestTools.NUnitExtensions; -using UnityEngine.TestTools.Logging; - -namespace UnityEditor.TestTools.TestRunner -{ - [Serializable] - internal class TestRunnerStateSerializer : IStateSerializer - { - private const BindingFlags Flags = BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.FlattenHierarchy; - - [SerializeField] - private HideFlags m_OriginalHideFlags; - - [SerializeField] - private bool m_ShouldRestore; - - [SerializeField] - private string m_TestObjectTypeName; - - [SerializeField] - private ScriptableObject m_TestObject; - - [SerializeField] - private string m_TestObjectTxt; - - [SerializeField] - private long StartTicks; - - [SerializeField] - private double StartTimeOA; - - [SerializeField] - private string output; - - [SerializeField] - private LogMatch[] m_ExpectedLogs; - - public bool ShouldRestore() - { - return m_ShouldRestore; - } - - public void SaveContext() - { - var currentContext = UnityTestExecutionContext.CurrentContext; - - if (currentContext.TestObject != null) - { - m_TestObjectTypeName = currentContext.TestObject.GetType().AssemblyQualifiedName; - m_TestObject = null; - m_TestObjectTxt = null; - if (currentContext.TestObject is ScriptableObject) - { - m_TestObject = currentContext.TestObject as ScriptableObject; - m_OriginalHideFlags = m_TestObject.hideFlags; - m_TestObject.hideFlags |= HideFlags.DontSave; - } - else - { - m_TestObjectTxt = JsonUtility.ToJson(currentContext.TestObject); - } - } - - output = currentContext.CurrentResult.Output; - StartTicks = currentContext.StartTicks; - StartTimeOA = currentContext.StartTime.ToOADate(); - if (LogScope.HasCurrentLogScope()) - { - m_ExpectedLogs = LogScope.Current.ExpectedLogs.ToArray(); - } - - m_ShouldRestore = true; - } - - public void RestoreContext() - { - var currentContext = UnityTestExecutionContext.CurrentContext; - - var outputProp = currentContext.CurrentResult.GetType().BaseType.GetField("_output", Flags); - (outputProp.GetValue(currentContext.CurrentResult) as StringBuilder).Append(output); - - currentContext.StartTicks = StartTicks; - currentContext.StartTime = DateTime.FromOADate(StartTimeOA); - if (LogScope.HasCurrentLogScope()) - { - LogScope.Current.ExpectedLogs = new Queue(m_ExpectedLogs); - } - - m_ShouldRestore = false; - } - - public bool CanRestoreFromScriptableObject(Type requestedType) - { - if (m_TestObject == null) - { - return false; - } - return m_TestObjectTypeName == requestedType.AssemblyQualifiedName; - } - - public ScriptableObject RestoreScriptableObjectInstance() - { - if (m_TestObject == null) - { - Debug.LogError("No object to restore"); - return null; - } - EditorApplication.playModeStateChanged += OnPlayModeStateChanged; - var temp = m_TestObject; - m_TestObject = null; - m_TestObjectTypeName = null; - return temp; - } - - public bool CanRestoreFromJson(Type requestedType) - { - if (string.IsNullOrEmpty(m_TestObjectTxt)) - { - return false; - } - return m_TestObjectTypeName == requestedType.AssemblyQualifiedName; - } - - public void RestoreClassFromJson(ref object instance) - { - if (string.IsNullOrEmpty(m_TestObjectTxt)) - { - Debug.LogWarning("No JSON representation to restore"); - return; - } - JsonUtility.FromJsonOverwrite(m_TestObjectTxt, instance); - m_TestObjectTxt = null; - m_TestObjectTypeName = null; - } - - private void OnPlayModeStateChanged(PlayModeStateChange state) - { - if (m_TestObject == null) - { - EditorApplication.playModeStateChanged -= OnPlayModeStateChanged; - return; - } - - //We set the DontSave flag here because the ScriptableObject would be nulled right before entering EditMode - if (state == PlayModeStateChange.ExitingPlayMode) - { - m_TestObject.hideFlags |= HideFlags.DontSave; - } - else if (state == PlayModeStateChange.EnteredEditMode) - { - m_TestObject.hideFlags = m_OriginalHideFlags; - EditorApplication.playModeStateChanged -= OnPlayModeStateChanged; - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/RequireApiProfileAttribute.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/RequireApiProfileAttribute.cs deleted file mode 100644 index 090f218..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/RequireApiProfileAttribute.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Linq; -using NUnit.Framework; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; - -namespace UnityEditor.TestTools -{ - [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Method)] - internal class RequireApiProfileAttribute : NUnitAttribute, IApplyToTest - { - public ApiCompatibilityLevel[] apiProfiles { get; private set; } - - public RequireApiProfileAttribute(params ApiCompatibilityLevel[] apiProfiles) - { - this.apiProfiles = apiProfiles; - } - - void IApplyToTest.ApplyToTest(Test test) - { - test.Properties.Add(PropertyNames.Category, string.Format("ApiProfile({0})", string.Join(", ", apiProfiles.Select(p => p.ToString()).OrderBy(p => p).ToArray()))); - ApiCompatibilityLevel testProfile = PlayerSettings.GetApiCompatibilityLevel(EditorUserBuildSettings.activeBuildTargetGroup); - - if (!apiProfiles.Contains(testProfile)) - { - string skipReason = "Skipping test as it requires a compatible api profile set: " + string.Join(", ", apiProfiles.Select(p => p.ToString()).ToArray()); - test.RunState = RunState.Skipped; - test.Properties.Add(PropertyNames.SkipReason, skipReason); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/RequirePlatformSupportAttribute.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/RequirePlatformSupportAttribute.cs deleted file mode 100644 index 972b19f..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/RequirePlatformSupportAttribute.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using System.Linq; -using NUnit.Framework; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; - -namespace UnityEditor.TestTools -{ - [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Method)] - public class RequirePlatformSupportAttribute : NUnitAttribute, IApplyToTest - { - public RequirePlatformSupportAttribute(params BuildTarget[] platforms) - { - this.platforms = platforms; - } - - public BuildTarget[] platforms { get; private set; } - - void IApplyToTest.ApplyToTest(Test test) - { - test.Properties.Add(PropertyNames.Category, string.Format("RequirePlatformSupport({0})", string.Join(", ", platforms.Select(p => p.ToString()).OrderBy(p => p).ToArray()))); - - if (!platforms.All(p => BuildPipeline.IsBuildTargetSupported(BuildTargetGroup.Unknown, p))) - { - var missingPlatforms = platforms.Where(p => !BuildPipeline.IsBuildTargetSupported(BuildTargetGroup.Unknown, p)).Select(p => p.ToString()).ToArray(); - string skipReason = "Test cannot be run as it requires support for the following platforms to be installed: " + string.Join(", ", missingPlatforms); - - test.RunState = RunState.Skipped; - test.Properties.Add(PropertyNames.SkipReason, skipReason); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestBuildAssemblyFilter.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestBuildAssemblyFilter.cs deleted file mode 100644 index a8dd54a..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestBuildAssemblyFilter.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System.Linq; -using UnityEditor.Build; - -namespace UnityEditor.TestRunner -{ - // This class is invoked from native, during build - internal class TestBuildAssemblyFilter : IFilterBuildAssemblies - { - private const string nunitAssemblyName = "nunit.framework"; - private const string unityTestRunnerAssemblyName = "UnityEngine.TestRunner"; - - public int callbackOrder { get; } - public string[] OnFilterAssemblies(BuildOptions buildOptions, string[] assemblies) - { - if ((buildOptions & BuildOptions.IncludeTestAssemblies) == BuildOptions.IncludeTestAssemblies || PlayerSettings.playModeTestRunnerEnabled) - { - return assemblies; - } - return assemblies.Where(x => !x.Contains(nunitAssemblyName) && !x.Contains(unityTestRunnerAssemblyName)).ToArray(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/AttributeFinderBase.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/AttributeFinderBase.cs deleted file mode 100644 index c1690a2..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/AttributeFinderBase.cs +++ /dev/null @@ -1,104 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using NUnit.Framework.Interfaces; -using UnityEngine; -using UnityEngine.TestTools; - -namespace UnityEditor.TestTools.TestRunner -{ - internal abstract class AttributeFinderBase : IAttributeFinder - { - public abstract IEnumerable Search(ITest tests, ITestFilter filter, RuntimePlatform testTargetPlatform); - } - - internal interface IAttributeFinder - { - IEnumerable Search(ITest tests, ITestFilter filter, RuntimePlatform testTargetPlatform); - } - - internal abstract class AttributeFinderBase : AttributeFinderBase where T2 : Attribute - { - private readonly Func m_TypeSelector; - protected AttributeFinderBase(Func typeSelector) - { - m_TypeSelector = typeSelector; - } - - public override IEnumerable Search(ITest tests, ITestFilter filter, RuntimePlatform testTargetPlatform) - { - var selectedTests = new List(); - GetMatchingTests(tests, filter, ref selectedTests, testTargetPlatform); - - var result = new List(); - result.AddRange(GetTypesFromPrebuildAttributes(selectedTests)); - result.AddRange(GetTypesFromInterface(selectedTests, testTargetPlatform)); - - return result.Distinct(); - } - - private static void GetMatchingTests(ITest tests, ITestFilter filter, ref List resultList, RuntimePlatform testTargetPlatform) - { - foreach (var test in tests.Tests) - { - if (IsTestEnabledOnPlatform(test, testTargetPlatform)) - { - if (test.IsSuite) - { - GetMatchingTests(test, filter, ref resultList, testTargetPlatform); - } - else - { - if (filter.Pass(test)) - resultList.Add(test); - } - } - } - } - - private static bool IsTestEnabledOnPlatform(ITest test, RuntimePlatform testTargetPlatform) - { - if (test.Method == null) - { - return true; - } - - var attributesFromMethods = test.Method.GetCustomAttributes(true).Select(attribute => attribute); - var attributesFromTypes = test.Method.TypeInfo.GetCustomAttributes(true).Select(attribute => attribute); - - if (!attributesFromMethods.All(a => a.IsPlatformSupported(testTargetPlatform))) - { - return false; - } - - if (!attributesFromTypes.All(a => a.IsPlatformSupported(testTargetPlatform))) - { - return false; - } - - return true; - } - - private IEnumerable GetTypesFromPrebuildAttributes(IEnumerable tests) - { - var allAssemblies = AppDomain.CurrentDomain.GetAssemblies(); - allAssemblies = allAssemblies.Where(x => x.GetReferencedAssemblies().Any(z => z.Name == "UnityEditor.TestRunner")).ToArray(); - var attributesFromAssemblies = allAssemblies.SelectMany(assembly => assembly.GetCustomAttributes(typeof(T2), true).OfType()); - var attributesFromMethods = tests.SelectMany(t => t.Method.GetCustomAttributes(true).Select(attribute => attribute)); - var attributesFromTypes = tests.SelectMany(t => t.Method.TypeInfo.GetCustomAttributes(true).Select(attribute => attribute)); - - var result = new List(); - result.AddRange(attributesFromAssemblies); - result.AddRange(attributesFromMethods); - result.AddRange(attributesFromTypes); - - return result.Select(m_TypeSelector).Where(type => type != null); - } - - private static IEnumerable GetTypesFromInterface(IEnumerable selectedTests, RuntimePlatform testTargetPlatform) - { - var typesWithInterfaces = selectedTests.Where(t => typeof(T1).IsAssignableFrom(t.Method.TypeInfo.Type) && IsTestEnabledOnPlatform(t, testTargetPlatform)); - return typesWithInterfaces.Select(t => t.Method.TypeInfo.Type); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/DelayedCallback.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/DelayedCallback.cs deleted file mode 100644 index b1944d4..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/DelayedCallback.cs +++ /dev/null @@ -1,44 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner -{ - internal class DelayedCallback - { - private System.Action m_Callback; - private double m_CallbackTime; - private double m_Delay; - - public DelayedCallback(System.Action function, double timeFromNow) - { - m_Callback = function; - m_CallbackTime = EditorApplication.timeSinceStartup + timeFromNow; - m_Delay = timeFromNow; - EditorApplication.update += Update; - } - - public void Clear() - { - EditorApplication.update -= Update; - m_CallbackTime = 0.0; - m_Callback = null; - } - - private void Update() - { - if (EditorApplication.timeSinceStartup > m_CallbackTime) - { - // Clear state before firing callback to ensure reset (callback could call ExitGUI) - var callback = m_Callback; - Clear(); - - callback?.Invoke(); - } - } - - public void Reset() - { - if (m_Callback != null) - { - m_CallbackTime = EditorApplication.timeSinceStartup + m_Delay; - } - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/EditModeLauncher.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/EditModeLauncher.cs deleted file mode 100644 index 06cf96a..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/EditModeLauncher.cs +++ /dev/null @@ -1,161 +0,0 @@ -using System; -using System.Collections.Generic; -using NUnit.Framework.Interfaces; -using UnityEditor.SceneManagement; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEditor.TestTools.TestRunner.GUI; -using UnityEngine; -using UnityEngine.SceneManagement; -using UnityEngine.TestRunner.Utils; -using UnityEngine.TestTools; -using UnityEngine.TestTools.TestRunner; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class EditModeLauncher : TestLauncherBase - { - public static bool IsRunning; - internal readonly EditModeRunner m_EditModeRunner; - public bool launchedOutsideApi; - - // provided for backward compatibility with Rider UnitTesting prior to Rider package v.1.1.1 - public EditModeLauncher(UITestRunnerFilter filter, TestPlatform platform) - { - launchedOutsideApi = true; - var apiFilter = new[] - { - new Filter() - { - testMode = TestMode.EditMode, - testNames = filter.testNames, - categoryNames = filter.categoryNames, - groupNames = filter.groupNames, - assemblyNames = filter.assemblyNames - } - }; - - ScriptableObject.CreateInstance().Execute(new ExecutionSettings(apiFilter)); - } - - public EditModeLauncher(Filter[] filters, TestPlatform platform, bool runSynchronously) - { - TestEnumerator.Reset(); - m_EditModeRunner = ScriptableObject.CreateInstance(); - m_EditModeRunner.UnityTestAssemblyRunnerFactory = new UnityTestAssemblyRunnerFactory(); - m_EditModeRunner.Init(filters, platform, runSynchronously); - } - - public override void Run() - { - if (launchedOutsideApi) - { - // Do not use the launcher, as it will be relaunched trough the api. See ctor. - return; - } - - IsRunning = true; - - SceneSetup[] previousSceneSetup; - if (!OpenNewScene(out previousSceneSetup)) - return; - - var callback = AddEventHandler(); - callback.previousSceneSetup = previousSceneSetup; - callback.runner = m_EditModeRunner; - AddEventHandler(); - - m_EditModeRunner.Run(); - AddEventHandler(); - AddEventHandler(); - - if (m_EditModeRunner.RunningSynchronously) - m_EditModeRunner.CompleteSynchronously(); - } - - private static bool OpenNewScene(out SceneSetup[] previousSceneSetup) - { - previousSceneSetup = null; - - var sceneCount = SceneManager.sceneCount; - - var scene = SceneManager.GetSceneAt(0); - var isSceneNotPersisted = string.IsNullOrEmpty(scene.path); - - if (sceneCount == 1 && isSceneNotPersisted) - { - EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single); - return true; - } - RemoveUntitledScenes(); - - // In case the user chose not to save the dirty scenes we reload them - ReloadUnsavedDirtyScene(); - - previousSceneSetup = EditorSceneManager.GetSceneManagerSetup(); - - scene = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Additive); - SceneManager.SetActiveScene(scene); - - return true; - } - - private static void ReloadUnsavedDirtyScene() - { - for (var i = 0; i < SceneManager.sceneCount; i++) - { - var scene = SceneManager.GetSceneAt(i); - var isSceneNotPersisted = string.IsNullOrEmpty(scene.path); - var isSceneDirty = scene.isDirty; - if (isSceneNotPersisted && isSceneDirty) - { - EditorSceneManager.ReloadScene(scene); - } - } - } - - private static void RemoveUntitledScenes() - { - int sceneCount = SceneManager.sceneCount; - - var scenesToClose = new List(); - for (var i = 0; i < sceneCount; i++) - { - var scene = SceneManager.GetSceneAt(i); - var isSceneNotPersisted = string.IsNullOrEmpty(scene.path); - if (isSceneNotPersisted) - { - scenesToClose.Add(scene); - } - } - foreach (Scene scene in scenesToClose) - { - EditorSceneManager.CloseScene(scene, true); - } - } - - public class BackgroundListener : ScriptableObject, ITestRunnerListener - { - public void RunStarted(ITest testsToRun) - { - } - - public void RunFinished(ITestResult testResults) - { - IsRunning = false; - } - - public void TestStarted(ITest test) - { - } - - public void TestFinished(ITestResult result) - { - } - } - - public T AddEventHandler() where T : ScriptableObject, ITestRunnerListener - { - return m_EditModeRunner.AddEventHandler(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/EditModeLauncherContextSettings.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/EditModeLauncherContextSettings.cs deleted file mode 100644 index fd94982..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/EditModeLauncherContextSettings.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class EditModeLauncherContextSettings : IDisposable - { - private bool m_RunInBackground; - - public EditModeLauncherContextSettings() - { - SetupProjectParameters(); - } - - public void Dispose() - { - CleanupProjectParameters(); - } - - private void SetupProjectParameters() - { - m_RunInBackground = Application.runInBackground; - Application.runInBackground = true; - } - - private void CleanupProjectParameters() - { - Application.runInBackground = m_RunInBackground; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/AndroidPlatformSetup.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/AndroidPlatformSetup.cs deleted file mode 100644 index 39fcc60..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/AndroidPlatformSetup.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; -using UnityEngine; -using System.Net; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class AndroidPlatformSetup : IPlatformSetup - { - private string m_oldApplicationIdentifier; - private string m_oldDeviceSocketAddress; - [SerializeField] - private bool m_Stripping; - - public void Setup() - { - m_oldApplicationIdentifier = PlayerSettings.GetApplicationIdentifier(BuildTargetGroup.Android); - PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.Android, "com.UnityTestRunner.UnityTestRunner"); - - m_oldDeviceSocketAddress = EditorUserBuildSettings.androidDeviceSocketAddress; - var androidDeviceConnection = Environment.GetEnvironmentVariable("ANDROID_DEVICE_CONNECTION"); - EditorUserBuildSettings.waitForPlayerConnection = true; - if (androidDeviceConnection != null) - { - EditorUserBuildSettings.androidDeviceSocketAddress = androidDeviceConnection; - } - m_Stripping = PlayerSettings.stripEngineCode; - PlayerSettings.stripEngineCode = false; - } - - public void PostBuildAction() - { - PlayerSettings.stripEngineCode = m_Stripping; - } - - public void PostSuccessfulBuildAction() - { - } - - public void PostSuccessfulLaunchAction() - { - var connectionResult = -1; - var maxTryCount = 10; - var tryCount = maxTryCount; - while (tryCount-- > 0 && connectionResult == -1) - { - connectionResult = EditorConnectionInternal.ConnectPlayerProxy(IPAddress.Loopback.ToString(), 34999); - if (EditorUtility.DisplayCancelableProgressBar("Editor Connection", "Connecting to the player", - 1 - ((float)tryCount / maxTryCount))) - { - EditorUtility.ClearProgressBar(); - throw new TestLaunchFailedException(); - } - } - EditorUtility.ClearProgressBar(); - if (connectionResult == -1) - throw new TestLaunchFailedException( - "Timed out trying to connect to the player. Player failed to launch or crashed soon after launching"); - } - - public void CleanUp() - { - EditorUserBuildSettings.androidDeviceSocketAddress = m_oldDeviceSocketAddress; - PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.Android, m_oldApplicationIdentifier); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/ApplePlatformSetup.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/ApplePlatformSetup.cs deleted file mode 100644 index 1d1b074..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/ApplePlatformSetup.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Diagnostics; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner -{ - [Serializable] - internal class ApplePlatformSetup : IPlatformSetup - { - [SerializeField] - private bool m_Stripping; - - public ApplePlatformSetup(BuildTarget buildTarget) - { - } - - public void Setup() - { - // Camera and fonts are stripped out and app crashes on iOS when test runner is trying to add a scene with... camera and text - m_Stripping = PlayerSettings.stripEngineCode; - PlayerSettings.stripEngineCode = false; - } - - public void PostBuildAction() - { - // Restoring player setting as early as possible - PlayerSettings.stripEngineCode = m_Stripping; - } - - public void PostSuccessfulBuildAction() - { - } - - public void PostSuccessfulLaunchAction() - { - } - - public void CleanUp() - { - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/IPlatformSetup.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/IPlatformSetup.cs deleted file mode 100644 index 59df2f2..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/IPlatformSetup.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner -{ - internal interface IPlatformSetup - { - void Setup(); - void PostBuildAction(); - void PostSuccessfulBuildAction(); - void PostSuccessfulLaunchAction(); - void CleanUp(); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/LuminPlatformSetup.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/LuminPlatformSetup.cs deleted file mode 100644 index cb965c8..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/LuminPlatformSetup.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System; -using System.Threading; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class LuminPlatformSetup : IPlatformSetup - { - private const string kDeviceAddress = "127.0.0.1"; - private const int kDevicePort = 55000; - - public void Setup() - { - } - - public void PostBuildAction() - { - } - - public void PostSuccessfulBuildAction() - { - } - - public void PostSuccessfulLaunchAction() - { - var connectionResult = -1; - var maxTryCount = 100; - var tryCount = maxTryCount; - while (tryCount-- > 0 && connectionResult == -1) - { - Thread.Sleep(1000); - connectionResult = EditorConnectionInternal.ConnectPlayerProxy(kDeviceAddress, kDevicePort); - if (EditorUtility.DisplayCancelableProgressBar("Editor Connection", "Connecting to the player", - 1 - ((float)tryCount / maxTryCount))) - { - EditorUtility.ClearProgressBar(); - throw new TestLaunchFailedException(); - } - } - EditorUtility.ClearProgressBar(); - if (connectionResult == -1) - throw new TestLaunchFailedException( - "Timed out trying to connect to the player. Player failed to launch or crashed soon after launching"); - } - - public void CleanUp() - { - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/PlatformSpecificSetup.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/PlatformSpecificSetup.cs deleted file mode 100644 index 12230a2..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/PlatformSpecificSetup.cs +++ /dev/null @@ -1,123 +0,0 @@ -using System; -using System.Collections.Generic; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner -{ - [Serializable] - internal class PlatformSpecificSetup - { - [SerializeField] - private ApplePlatformSetup m_AppleiOSPlatformSetup = new ApplePlatformSetup(BuildTarget.iOS); - [SerializeField] - private ApplePlatformSetup m_AppleTvOSPlatformSetup = new ApplePlatformSetup(BuildTarget.tvOS); - [SerializeField] - private XboxOnePlatformSetup m_XboxOnePlatformSetup = new XboxOnePlatformSetup(); - [SerializeField] - private AndroidPlatformSetup m_AndroidPlatformSetup = new AndroidPlatformSetup(); - [SerializeField] - private SwitchPlatformSetup m_SwitchPlatformSetup = new SwitchPlatformSetup(); -#if UNITY_2019_3_OR_NEWER - [SerializeField] - private StadiaPlatformSetup m_StadiaPlatformSetup = new StadiaPlatformSetup(); -#endif - [SerializeField] - private UwpPlatformSetup m_UwpPlatformSetup = new UwpPlatformSetup(); - - [SerializeField] - private LuminPlatformSetup m_LuminPlatformSetup = new LuminPlatformSetup(); - - - private IDictionary m_SetupTypes; - - [SerializeField] - private BuildTarget m_Target; - - public PlatformSpecificSetup() - { - } - - public PlatformSpecificSetup(BuildTarget target) - { - m_Target = target; - } - - public void Setup() - { - var dictionary = GetSetup(); - - if (!dictionary.ContainsKey(m_Target)) - { - return; - } - - dictionary[m_Target].Setup(); - } - - public void PostBuildAction() - { - var dictionary = GetSetup(); - - if (!dictionary.ContainsKey(m_Target)) - { - return; - } - - dictionary[m_Target].PostBuildAction(); - } - - public void PostSuccessfulBuildAction() - { - var dictionary = GetSetup(); - - if (!dictionary.ContainsKey(m_Target)) - { - return; - } - - dictionary[m_Target].PostSuccessfulBuildAction(); - } - - public void PostSuccessfulLaunchAction() - { - var dictionary = GetSetup(); - - if (!dictionary.ContainsKey(m_Target)) - { - return; - } - - dictionary[m_Target].PostSuccessfulLaunchAction(); - } - - public void CleanUp() - { - var dictionary = GetSetup(); - - if (!dictionary.ContainsKey(m_Target)) - { - return; - } - - dictionary[m_Target].CleanUp(); - } - - private IDictionary GetSetup() - { - m_SetupTypes = new Dictionary() - { - {BuildTarget.iOS, m_AppleiOSPlatformSetup}, - {BuildTarget.tvOS, m_AppleTvOSPlatformSetup}, - {BuildTarget.XboxOne, m_XboxOnePlatformSetup}, - {BuildTarget.Android, m_AndroidPlatformSetup}, - {BuildTarget.WSAPlayer, m_UwpPlatformSetup}, - {BuildTarget.Lumin, m_LuminPlatformSetup}, -#if UNITY_2019_3_OR_NEWER - {BuildTarget.Stadia, m_StadiaPlatformSetup}, -#endif - {BuildTarget.Switch, m_SwitchPlatformSetup} - }; - return m_SetupTypes; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/StadiaPlatformSetup.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/StadiaPlatformSetup.cs deleted file mode 100644 index c7c79a3..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/StadiaPlatformSetup.cs +++ /dev/null @@ -1,25 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner -{ - internal class StadiaPlatformSetup : IPlatformSetup - { - public void Setup() - { - } - - public void PostBuildAction() - { - } - - public void PostSuccessfulBuildAction() - { - } - - public void PostSuccessfulLaunchAction() - { - } - - public void CleanUp() - { - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/SwitchPlatformSetup.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/SwitchPlatformSetup.cs deleted file mode 100644 index e63c850..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/SwitchPlatformSetup.cs +++ /dev/null @@ -1,41 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner -{ - internal class SwitchPlatformSetup : IPlatformSetup - { - public void Setup() - { - EditorUserBuildSettings.switchCreateRomFile = true; - EditorUserBuildSettings.switchNVNGraphicsDebugger = false; -#if UNITY_2020_1_OR_NEWER - EditorUserBuildSettings.switchNVNDrawValidation_Heavy = true; // catches more graphics errors -#else - EditorUserBuildSettings.switchNVNDrawValidation = true; // catches more graphics errors -#endif - EditorUserBuildSettings.development = true; - EditorUserBuildSettings.switchRedirectWritesToHostMount = true; - - // We can use these when more debugging is required: - //EditorUserBuildSettings.switchNVNDrawValidation = false; // cannot be used with shader debug - //EditorUserBuildSettings.switchNVNGraphicsDebugger = true; - //EditorUserBuildSettings.switchNVNShaderDebugging = true; - //EditorUserBuildSettings.switchCreateSolutionFile = true; // for shorter iteration time - //EditorUserBuildSettings.allowDebugging = true; // managed debugger can be attached - } - - public void PostBuildAction() - { - } - - public void PostSuccessfulBuildAction() - { - } - - public void PostSuccessfulLaunchAction() - { - } - - public void CleanUp() - { - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/UwpPlatformSetup.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/UwpPlatformSetup.cs deleted file mode 100644 index 87ea5e0..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/UwpPlatformSetup.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class UwpPlatformSetup : IPlatformSetup - { - private const string k_SettingsBuildConfiguration = "BuildConfiguration"; - private bool m_InternetClientServer; - private bool m_PrivateNetworkClientServer; - - public void Setup() - { - m_InternetClientServer = PlayerSettings.WSA.GetCapability(PlayerSettings.WSACapability.InternetClientServer); - m_PrivateNetworkClientServer = PlayerSettings.WSA.GetCapability(PlayerSettings.WSACapability.PrivateNetworkClientServer); - PlayerSettings.WSA.SetCapability(PlayerSettings.WSACapability.InternetClientServer, true); - PlayerSettings.WSA.SetCapability(PlayerSettings.WSACapability.PrivateNetworkClientServer, true); - - // This setting is initialized only when Window Store App is selected from the Build Settings window, and - // is typically an empty strings when running tests via UTR on the command-line. - bool wsaSettingNotInitialized = string.IsNullOrEmpty(EditorUserBuildSettings.wsaArchitecture); - - // If WSA build settings aren't fully initialized or running from a build machine, specify a default build configuration. - // Otherwise we can use the existing configuration specified by the user in Build Settings. - if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("UNITY_THISISABUILDMACHINE")) || wsaSettingNotInitialized) - { - EditorUserBuildSettings.wsaSubtarget = WSASubtarget.PC; - EditorUserBuildSettings.wsaArchitecture = "x64"; - EditorUserBuildSettings.SetPlatformSettings(BuildPipeline.GetBuildTargetName(BuildTarget.WSAPlayer), k_SettingsBuildConfiguration, WSABuildType.Debug.ToString()); - EditorUserBuildSettings.wsaUWPBuildType = WSAUWPBuildType.ExecutableOnly; - PlayerSettings.SetIl2CppCompilerConfiguration(BuildTargetGroup.WSA, Il2CppCompilerConfiguration.Debug); - } - } - - public void PostBuildAction() - { - } - - public void PostSuccessfulBuildAction() - { - } - - public void PostSuccessfulLaunchAction() - { - } - - public void CleanUp() - { - PlayerSettings.WSA.SetCapability(PlayerSettings.WSACapability.InternetClientServer, m_InternetClientServer); - PlayerSettings.WSA.SetCapability(PlayerSettings.WSACapability.PrivateNetworkClientServer, m_PrivateNetworkClientServer); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/XboxOnePlatformSetup.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/XboxOnePlatformSetup.cs deleted file mode 100644 index 0eb1e19..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlatformSetup/XboxOnePlatformSetup.cs +++ /dev/null @@ -1,47 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner -{ - internal class XboxOnePlatformSetup : IPlatformSetup - { - private XboxOneDeployMethod oldXboxOneDeployMethod; - private XboxOneDeployDrive oldXboxOneDeployDrive; - private string oldXboxOneAdditionalDebugPorts; - - public void Setup() - { - oldXboxOneDeployMethod = EditorUserBuildSettings.xboxOneDeployMethod; - oldXboxOneDeployDrive = EditorUserBuildSettings.xboxOneDeployDrive; - oldXboxOneAdditionalDebugPorts = EditorUserBuildSettings.xboxOneAdditionalDebugPorts; - - EditorUserBuildSettings.xboxOneDeployMethod = XboxOneDeployMethod.Package; - EditorUserBuildSettings.xboxOneDeployDrive = XboxOneDeployDrive.Default; - - // This causes the XboxOne post processing systems to open this port in your package manifest. - // In addition it will open the ephemeral range for debug connections as well. - // Failure to do this will cause connection problems. - EditorUserBuildSettings.xboxOneAdditionalDebugPorts = "34999"; - } - - public void PostBuildAction() - { - } - - public void PostSuccessfulBuildAction() - { - } - - public void PostSuccessfulLaunchAction() - { - } - - public void CleanUp() - { - EditorUserBuildSettings.xboxOneDeployMethod = oldXboxOneDeployMethod; - EditorUserBuildSettings.xboxOneDeployDrive = oldXboxOneDeployDrive; - - // This causes the XboxOne post processing systems to open this port in your package manifest. - // In addition it will open the ephemeral range for debug connections as well. - // Failure to do this will cause connection problems. - EditorUserBuildSettings.xboxOneAdditionalDebugPorts = oldXboxOneAdditionalDebugPorts; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlayerLauncher.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlayerLauncher.cs deleted file mode 100644 index fce024e..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlayerLauncher.cs +++ /dev/null @@ -1,251 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading; -using NUnit.Framework.Internal.Filters; -using UnityEditor; -using UnityEditor.TestRunner.TestLaunchers; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine; -using UnityEngine.SceneManagement; -using UnityEngine.TestRunner.Utils; -using UnityEngine.TestTools.TestRunner; -using UnityEngine.TestTools.TestRunner.Callbacks; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class TestLaunchFailedException : Exception - { - public TestLaunchFailedException() {} - public TestLaunchFailedException(string message) : base(message) {} - } - - [Serializable] - internal class PlayerLauncher : RuntimeTestLauncherBase - { - private readonly PlaymodeTestsControllerSettings m_Settings; - private readonly BuildTarget m_TargetPlatform; - private ITestRunSettings m_OverloadTestRunSettings; - private string m_SceneName; - private int m_HeartbeatTimeout; - - public PlayerLauncher(PlaymodeTestsControllerSettings settings, BuildTarget? targetPlatform, ITestRunSettings overloadTestRunSettings, int heartbeatTimeout) - { - m_Settings = settings; - m_TargetPlatform = targetPlatform ?? EditorUserBuildSettings.activeBuildTarget; - m_OverloadTestRunSettings = overloadTestRunSettings; - m_HeartbeatTimeout = heartbeatTimeout; - } - - protected override RuntimePlatform? TestTargetPlatform - { - get { return BuildTargetConverter.TryConvertToRuntimePlatform(m_TargetPlatform); } - } - - public override void Run() - { - var editorConnectionTestCollector = RemoteTestRunController.instance; - editorConnectionTestCollector.hideFlags = HideFlags.HideAndDontSave; - editorConnectionTestCollector.Init(m_TargetPlatform, m_HeartbeatTimeout); - - var remotePlayerLogController = RemotePlayerLogController.instance; - remotePlayerLogController.hideFlags = HideFlags.HideAndDontSave; - - using (var settings = new PlayerLauncherContextSettings(m_OverloadTestRunSettings)) - { - m_SceneName = CreateSceneName(); - var scene = PrepareScene(m_SceneName); - string scenePath = scene.path; - - var filter = m_Settings.BuildNUnitFilter(); - var runner = LoadTests(filter); - var exceptionThrown = ExecutePreBuildSetupMethods(runner.LoadedTest, filter); - if (exceptionThrown) - { - ReopenOriginalScene(m_Settings.originalScene); - AssetDatabase.DeleteAsset(m_SceneName); - CallbacksDelegator.instance.RunFailed("Run Failed: One or more errors in a prebuild setup. See the editor log for details."); - return; - } - - var playerBuildOptions = GetBuildOptions(scenePath); - - var success = BuildAndRunPlayer(playerBuildOptions); - - editorConnectionTestCollector.PostBuildAction(); - ExecutePostBuildCleanupMethods(runner.LoadedTest, filter); - - ReopenOriginalScene(m_Settings.originalScene); - AssetDatabase.DeleteAsset(m_SceneName); - - if (!success) - { - editorConnectionTestCollector.CleanUp(); - ScriptableObject.DestroyImmediate(editorConnectionTestCollector); - Debug.LogError("Player build failed"); - throw new TestLaunchFailedException("Player build failed"); - } - - if ((playerBuildOptions.BuildPlayerOptions.options & BuildOptions.AutoRunPlayer) != 0) - { - editorConnectionTestCollector.PostSuccessfulBuildAction(); - editorConnectionTestCollector.PostSuccessfulLaunchAction(); - } - - var runSettings = m_OverloadTestRunSettings as PlayerLauncherTestRunSettings; - if (success && runSettings != null && runSettings.buildOnly) - { - EditorUtility.RevealInFinder(playerBuildOptions.BuildPlayerOptions.locationPathName); - } - } - } - - public Scene PrepareScene(string sceneName) - { - var scene = CreateBootstrapScene(sceneName, runner => - { - runner.AddEventHandlerMonoBehaviour(); - runner.settings = m_Settings; - var commandLineArgs = Environment.GetCommandLineArgs(); - if (!commandLineArgs.Contains("-doNotReportTestResultsBackToEditor")) - { - runner.AddEventHandlerMonoBehaviour(); - } - runner.AddEventHandlerMonoBehaviour(); - runner.AddEventHandlerScriptableObject(); - }); - return scene; - } - - private static bool BuildAndRunPlayer(PlayerLauncherBuildOptions buildOptions) - { - Debug.LogFormat(LogType.Log, LogOption.NoStacktrace, null, "Building player with following options:\n{0}", buildOptions); - - - // Android has to be in listen mode to establish player connection - if (buildOptions.BuildPlayerOptions.target == BuildTarget.Android) - { - buildOptions.BuildPlayerOptions.options &= ~BuildOptions.ConnectToHost; - } - - // For now, so does Lumin - if (buildOptions.BuildPlayerOptions.target == BuildTarget.Lumin) - { - buildOptions.BuildPlayerOptions.options &= ~BuildOptions.ConnectToHost; - } - - var result = BuildPipeline.BuildPlayer(buildOptions.BuildPlayerOptions); - if (result.summary.result != Build.Reporting.BuildResult.Succeeded) - Debug.LogError(result.SummarizeErrors()); - - return result.summary.result == Build.Reporting.BuildResult.Succeeded; - } - - internal PlayerLauncherBuildOptions GetBuildOptions(string scenePath) - { - var buildOnly = false; - var runSettings = m_OverloadTestRunSettings as PlayerLauncherTestRunSettings; - if (runSettings != null) - { - buildOnly = runSettings.buildOnly; - } - - var buildOptions = new BuildPlayerOptions(); - - var scenes = new List() { scenePath }; - scenes.AddRange(EditorBuildSettings.scenes.Select(x => x.path)); - buildOptions.scenes = scenes.ToArray(); - - buildOptions.options |= BuildOptions.Development | BuildOptions.ConnectToHost | BuildOptions.IncludeTestAssemblies | BuildOptions.StrictMode; - buildOptions.target = m_TargetPlatform; - - if (EditorUserBuildSettings.waitForPlayerConnection) - buildOptions.options |= BuildOptions.WaitForPlayerConnection; - - if (EditorUserBuildSettings.allowDebugging) - buildOptions.options |= BuildOptions.AllowDebugging; - - if (EditorUserBuildSettings.installInBuildFolder) - buildOptions.options |= BuildOptions.InstallInBuildFolder; - else if (!buildOnly) - buildOptions.options |= BuildOptions.AutoRunPlayer; - - var buildTargetGroup = EditorUserBuildSettings.activeBuildTargetGroup; - - //Check if Lz4 is supported for the current buildtargetgroup and enable it if need be - if (PostprocessBuildPlayer.SupportsLz4Compression(buildTargetGroup, m_TargetPlatform)) - { - if (EditorUserBuildSettings.GetCompressionType(buildTargetGroup) == Compression.Lz4) - buildOptions.options |= BuildOptions.CompressWithLz4; - else if (EditorUserBuildSettings.GetCompressionType(buildTargetGroup) == Compression.Lz4HC) - buildOptions.options |= BuildOptions.CompressWithLz4HC; - } - - string buildLocation; - if (buildOnly) - { - buildLocation = buildOptions.locationPathName = runSettings.buildOnlyLocationPath; - } - else - { - var reduceBuildLocationPathLength = false; - - //Some platforms hit MAX_PATH limits during the build process, in these cases minimize the path length - if ((m_TargetPlatform == BuildTarget.WSAPlayer) || (m_TargetPlatform == BuildTarget.XboxOne)) - { - reduceBuildLocationPathLength = true; - } - - var uniqueTempPathInProject = FileUtil.GetUniqueTempPathInProject(); - var playerDirectoryName = reduceBuildLocationPathLength ? "PwT" : "PlayerWithTests"; - - if (reduceBuildLocationPathLength) - { - uniqueTempPathInProject = Path.GetTempFileName(); - File.Delete(uniqueTempPathInProject); - Directory.CreateDirectory(uniqueTempPathInProject); - } - - var tempPath = Path.GetFullPath(uniqueTempPathInProject); - buildLocation = Path.Combine(tempPath, playerDirectoryName); - - // iOS builds create a folder with Xcode project instead of an executable, therefore no executable name is added - if (m_TargetPlatform == BuildTarget.iOS) - { - buildOptions.locationPathName = buildLocation; - } - else - { - string extensionForBuildTarget = - PostprocessBuildPlayer.GetExtensionForBuildTarget(buildTargetGroup, buildOptions.target, - buildOptions.options); - var playerExecutableName = "PlayerWithTests"; - playerExecutableName += string.Format(".{0}", extensionForBuildTarget); - buildOptions.locationPathName = Path.Combine(buildLocation, playerExecutableName); - } - } - - return new PlayerLauncherBuildOptions - { - BuildPlayerOptions = ModifyBuildOptions(buildOptions), - PlayerDirectory = buildLocation, - }; - } - - private BuildPlayerOptions ModifyBuildOptions(BuildPlayerOptions buildOptions) - { - var allAssemblies = AppDomain.CurrentDomain.GetAssemblies() - .Where(x => x.GetReferencedAssemblies().Any(z => z.Name == "UnityEditor.TestRunner")).ToArray(); - var attributes = allAssemblies.SelectMany(assembly => assembly.GetCustomAttributes(typeof(TestPlayerBuildModifierAttribute), true).OfType()).ToArray(); - var modifiers = attributes.Select(attribute => attribute.ConstructModifier()).ToArray(); - - foreach (var modifier in modifiers) - { - buildOptions = modifier.ModifyOptions(buildOptions); - } - - return buildOptions; - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlayerLauncherBuildOptions.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlayerLauncherBuildOptions.cs deleted file mode 100644 index 589796c..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlayerLauncherBuildOptions.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Text; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class PlayerLauncherBuildOptions - { - public BuildPlayerOptions BuildPlayerOptions; - public string PlayerDirectory; - - public override string ToString() - { - var str = new StringBuilder(); - str.AppendLine("locationPathName = " + BuildPlayerOptions.locationPathName); - str.AppendLine("target = " + BuildPlayerOptions.target); - str.AppendLine("scenes = " + string.Join(", ", BuildPlayerOptions.scenes)); - str.AppendLine("assetBundleManifestPath = " + BuildPlayerOptions.assetBundleManifestPath); - str.AppendLine("options.Development = " + ((BuildPlayerOptions.options & BuildOptions.Development) != 0)); - str.AppendLine("options.AutoRunPlayer = " + ((BuildPlayerOptions.options & BuildOptions.AutoRunPlayer) != 0)); - str.AppendLine("options.ForceEnableAssertions = " + ((BuildPlayerOptions.options & BuildOptions.ForceEnableAssertions) != 0)); - return str.ToString(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlayerLauncherContextSettings.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlayerLauncherContextSettings.cs deleted file mode 100644 index d0c504b..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlayerLauncherContextSettings.cs +++ /dev/null @@ -1,113 +0,0 @@ -using System; -using System.IO; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class PlayerLauncherContextSettings : IDisposable - { - private ITestRunSettings m_OverloadSettings; - - private EditorBuildSettingsScene[] m_EditorBuildSettings; -#pragma warning disable 618 - private ResolutionDialogSetting m_DisplayResolutionDialog; -#pragma warning restore 618 - private bool m_RunInBackground; - private FullScreenMode m_FullScreenMode; - private bool m_ResizableWindow; - private bool m_ShowUnitySplashScreen; - private string m_OldproductName; - private string m_OldAotOptions; -#pragma warning disable 618 - private Lightmapping.GIWorkflowMode m_OldLightmapping; -#pragma warning restore 618 - private bool m_explicitNullChecks; - - private bool m_Disposed; - - public PlayerLauncherContextSettings(ITestRunSettings overloadSettings) - { - m_OverloadSettings = overloadSettings; - SetupProjectParameters(); - - if (overloadSettings != null) - { - overloadSettings.Apply(); - } - } - - public void Dispose() - { - if (!m_Disposed) - { - CleanupProjectParameters(); - if (m_OverloadSettings != null) - { - m_OverloadSettings.Dispose(); - } - - m_Disposed = true; - } - } - - private void SetupProjectParameters() - { - EditorApplication.LockReloadAssemblies(); - - m_EditorBuildSettings = EditorBuildSettings.scenes; - -#pragma warning disable 618 - m_DisplayResolutionDialog = PlayerSettings.displayResolutionDialog; - PlayerSettings.displayResolutionDialog = ResolutionDialogSetting.Disabled; -#pragma warning restore 618 - - m_RunInBackground = PlayerSettings.runInBackground; - PlayerSettings.runInBackground = true; - - m_FullScreenMode = PlayerSettings.fullScreenMode; - PlayerSettings.fullScreenMode = FullScreenMode.Windowed; - - m_OldAotOptions = PlayerSettings.aotOptions; - PlayerSettings.aotOptions = "nimt-trampolines=1024"; - - m_ResizableWindow = PlayerSettings.resizableWindow; - PlayerSettings.resizableWindow = true; - - m_ShowUnitySplashScreen = PlayerSettings.SplashScreen.show; - PlayerSettings.SplashScreen.show = false; - - m_OldproductName = PlayerSettings.productName; - PlayerSettings.productName = string.Join("_", Application.productName.Split(Path.GetInvalidFileNameChars())); - -#pragma warning disable 618 - m_OldLightmapping = Lightmapping.giWorkflowMode; - Lightmapping.giWorkflowMode = Lightmapping.GIWorkflowMode.OnDemand; -#pragma warning restore 618 - - m_explicitNullChecks = EditorUserBuildSettings.explicitNullChecks; - EditorUserBuildSettings.explicitNullChecks = true; - } - - private void CleanupProjectParameters() - { - EditorBuildSettings.scenes = m_EditorBuildSettings; - - PlayerSettings.fullScreenMode = m_FullScreenMode; - PlayerSettings.runInBackground = m_RunInBackground; -#pragma warning disable 618 - PlayerSettings.displayResolutionDialog = m_DisplayResolutionDialog; -#pragma warning restore 618 - PlayerSettings.resizableWindow = m_ResizableWindow; - PlayerSettings.SplashScreen.show = m_ShowUnitySplashScreen; - PlayerSettings.productName = m_OldproductName; - PlayerSettings.aotOptions = m_OldAotOptions; -#pragma warning disable 618 - Lightmapping.giWorkflowMode = m_OldLightmapping; -#pragma warning restore 618 - EditorUserBuildSettings.explicitNullChecks = m_explicitNullChecks; - - EditorApplication.UnlockReloadAssemblies(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlayerLauncherTestRunSettings.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlayerLauncherTestRunSettings.cs deleted file mode 100644 index e4efdf6..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlayerLauncherTestRunSettings.cs +++ /dev/null @@ -1,19 +0,0 @@ -using UnityEditor.TestTools.TestRunner.Api; - -namespace UnityEditor.TestTools.TestRunner -{ - class PlayerLauncherTestRunSettings : ITestRunSettings - { - public bool buildOnly { set; get; } - - public string buildOnlyLocationPath { set; get; } - - public void Dispose() - { - } - - void ITestRunSettings.Apply() - { - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlaymodeLauncher.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlaymodeLauncher.cs deleted file mode 100644 index a5838d1..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PlaymodeLauncher.cs +++ /dev/null @@ -1,133 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal.Filters; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine; -using UnityEngine.SceneManagement; -using UnityEngine.TestRunner.Utils; -using UnityEngine.TestTools.TestRunner; -using UnityEngine.TestTools.TestRunner.Callbacks; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class PlaymodeLauncher : RuntimeTestLauncherBase - { - public static bool IsRunning; - private Scene m_Scene; - private bool m_IsTestSetupPerformed; - private readonly PlaymodeTestsControllerSettings m_Settings; - private ITestFilter testFilter; - - [SerializeField] - private List m_EventHandlers = new List(); - - public PlaymodeLauncher(PlaymodeTestsControllerSettings settings) - { - m_Settings = settings; - } - - public override void Run() - { - IsRunning = true; - ConsoleWindow.SetConsoleErrorPause(false); - Application.runInBackground = true; - - var sceneName = CreateSceneName(); - m_Scene = CreateBootstrapScene(sceneName, runner => - { - runner.AddEventHandlerMonoBehaviour(); - runner.AddEventHandlerScriptableObject(); - runner.AddEventHandlerScriptableObject(); - runner.AddEventHandlerScriptableObject(); - - foreach (var eventHandler in m_EventHandlers) - { - var obj = ScriptableObject.CreateInstance(eventHandler); - runner.AddEventHandlerScriptableObject(obj as ITestRunnerListener); - } - - runner.settings = m_Settings; - }); - - if (m_Settings.sceneBased) - { - var newListOfScenes = - new List {new EditorBuildSettingsScene(sceneName, true)}; - newListOfScenes.AddRange(EditorBuildSettings.scenes); - EditorBuildSettings.scenes = newListOfScenes.ToArray(); - } - - EditorApplication.update += UpdateCallback; - } - - public void UpdateCallback() - { - if (m_IsTestSetupPerformed) - { - if (m_Scene.IsValid()) - SceneManager.SetActiveScene(m_Scene); - EditorApplication.update -= UpdateCallback; - EditorApplication.isPlaying = true; - } - else - { - testFilter = m_Settings.BuildNUnitFilter(); - var runner = LoadTests(testFilter); - - var exceptionThrown = ExecutePreBuildSetupMethods(runner.LoadedTest, testFilter); - if (exceptionThrown) - { - EditorApplication.update -= UpdateCallback; - IsRunning = false; - var controller = PlaymodeTestsController.GetController(); - ReopenOriginalScene(controller); - AssetDatabase.DeleteAsset(controller.settings.bootstrapScene); - CallbacksDelegator.instance.RunFailed("Run Failed: One or more errors in a prebuild setup. See the editor log for details."); - return; - } - m_IsTestSetupPerformed = true; - } - } - - [InitializeOnLoad] - public class BackgroundWatcher - { - static BackgroundWatcher() - { - EditorApplication.playModeStateChanged += OnPlayModeStateChanged; - } - - private static void OnPlayModeStateChanged(PlayModeStateChange state) - { - if (!PlaymodeTestsController.IsControllerOnScene()) - return; - var runner = PlaymodeTestsController.GetController(); - if (runner == null) - return; - if (state == PlayModeStateChange.ExitingPlayMode) - { - AssetDatabase.DeleteAsset(runner.settings.bootstrapScene); - ExecutePostBuildCleanupMethods(runner.m_Runner.LoadedTest, runner.settings.BuildNUnitFilter(), Application.platform); - IsRunning = false; - } - else if (state == PlayModeStateChange.EnteredEditMode) - { - //reopen the original scene once we exit playmode - ReopenOriginalScene(runner); - } - } - } - - protected static void ReopenOriginalScene(PlaymodeTestsController runner) - { - ReopenOriginalScene(runner.settings.originalScene); - } - - public void AddEventHandler() where T : ScriptableObject, ITestRunnerListener - { - m_EventHandlers.Add(typeof(T)); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PostbuildCleanupAttributeFinder.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PostbuildCleanupAttributeFinder.cs deleted file mode 100644 index bad0e4a..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PostbuildCleanupAttributeFinder.cs +++ /dev/null @@ -1,9 +0,0 @@ -using UnityEngine.TestTools; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class PostbuildCleanupAttributeFinder : AttributeFinderBase - { - public PostbuildCleanupAttributeFinder() : base(attribute => attribute.TargetClass) {} - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PrebuildSetupAttributeFinder.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PrebuildSetupAttributeFinder.cs deleted file mode 100644 index cd4ada8..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/PrebuildSetupAttributeFinder.cs +++ /dev/null @@ -1,9 +0,0 @@ -using UnityEngine.TestTools; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class PrebuildSetupAttributeFinder : AttributeFinderBase - { - public PrebuildSetupAttributeFinder() : base((attribute) => attribute.TargetClass) {} - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/RemotePlayerLogController.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/RemotePlayerLogController.cs deleted file mode 100644 index 756d6d3..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/RemotePlayerLogController.cs +++ /dev/null @@ -1,89 +0,0 @@ -using System; -using System.Collections.Generic; -using UnityEditor.DeploymentTargets; -using UnityEditor.TestTools.TestRunner.CommandLineTest; -using UnityEngine; - -namespace UnityEditor.TestRunner.TestLaunchers -{ - [Serializable] - internal class RemotePlayerLogController : ScriptableSingleton - { - private List m_LogWriters; - - private Dictionary m_Loggers; - - private string m_DeviceLogsDirectory; - - public void SetBuildTarget(BuildTarget buildTarget) - { - m_Loggers = GetDeploymentTargetLoggers(buildTarget); - - if (m_Loggers == null) - Debug.Log("Deployment target logger could not be created"); - } - - public void SetLogsDirectory(string dir) - { - m_DeviceLogsDirectory = dir; - } - - public void StartLogWriters() - { - if (m_DeviceLogsDirectory == null || m_Loggers == null) - return; - - m_LogWriters = new List(); - - foreach (var logger in m_Loggers) - { - m_LogWriters.Add(new LogWriter(m_DeviceLogsDirectory, logger.Key, logger.Value)); - logger.Value.Start(); - } - } - - public void StopLogWriters() - { - if (m_LogWriters == null) - return; - - foreach (var logWriter in m_LogWriters) - { - logWriter.Stop(); - } - } - - private Dictionary GetDeploymentTargetLoggers(BuildTarget buildTarget) - { - DeploymentTargetManager deploymentTargetManager; - - try - { - deploymentTargetManager = DeploymentTargetManager.CreateInstance(EditorUserBuildSettings.activeBuildTargetGroup, buildTarget); - - if (deploymentTargetManager == null) - return null; - } - catch (NotSupportedException ex) - { - Debug.Log(ex.Message); - Debug.Log("Deployment target logger not initialised"); - return null; - } - - var targets = deploymentTargetManager.GetKnownTargets(); - var loggers = new Dictionary(); - - foreach (var target in targets) - { - if (target.status != DeploymentTargetStatus.Ready) continue; - - var logger = deploymentTargetManager.GetTargetLogger(target.id); - logger.Clear(); - loggers.Add(target.id, logger); - } - - return loggers; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/RemotePlayerTestController.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/RemotePlayerTestController.cs deleted file mode 100644 index 2ed3055..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/RemotePlayerTestController.cs +++ /dev/null @@ -1,115 +0,0 @@ -using System; -using UnityEditor.Networking.PlayerConnection; -using UnityEditor.TestTools.TestRunner; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEditor.TestTools.TestRunner.UnityTestProtocol; -using UnityEngine; -using UnityEngine.Networking.PlayerConnection; -using UnityEngine.TestRunner.TestLaunchers; - -namespace UnityEditor.TestRunner.TestLaunchers -{ - [Serializable] - internal class RemoteTestRunController : ScriptableSingleton - { - internal const int k_HeartbeatTimeout = 60 * 10; - - [SerializeField] - private RemoteTestResultReciever m_RemoteTestResultReciever; - - [SerializeField] - private PlatformSpecificSetup m_PlatformSpecificSetup; - - [SerializeField] - private bool m_RegisteredConnectionCallbacks; - - [SerializeField] - private int m_HearbeatTimeOut; - - private UnityEditor.TestTools.TestRunner.DelayedCallback m_TimeoutCallback; - - public void Init(BuildTarget buildTarget, int heartbeatTimeout) - { - m_HearbeatTimeOut = heartbeatTimeout; - m_PlatformSpecificSetup = new PlatformSpecificSetup(buildTarget); - m_PlatformSpecificSetup.Setup(); - m_RemoteTestResultReciever = new RemoteTestResultReciever(); - EditorConnection.instance.Initialize(); - if (!m_RegisteredConnectionCallbacks) - { - EditorConnection.instance.Initialize(); - DelegateEditorConnectionEvents(); - } - } - - private void DelegateEditorConnectionEvents() - { - m_RegisteredConnectionCallbacks = true; - //This is needed because RemoteTestResultReceiver is not a ScriptableObject - EditorConnection.instance.Register(PlayerConnectionMessageIds.runStartedMessageId, RunStarted); - EditorConnection.instance.Register(PlayerConnectionMessageIds.runFinishedMessageId, RunFinished); - EditorConnection.instance.Register(PlayerConnectionMessageIds.testStartedMessageId, TestStarted); - EditorConnection.instance.Register(PlayerConnectionMessageIds.testFinishedMessageId, TestFinished); - EditorConnection.instance.Register(PlayerConnectionMessageIds.playerAliveHeartbeat, PlayerAliveHeartbeat); - } - - private void RunStarted(MessageEventArgs messageEventArgs) - { - m_TimeoutCallback?.Reset(); - m_RemoteTestResultReciever.RunStarted(messageEventArgs); - CallbacksDelegator.instance.RunStartedRemotely(messageEventArgs.data); - } - - private void RunFinished(MessageEventArgs messageEventArgs) - { - m_TimeoutCallback?.Clear(); - m_RemoteTestResultReciever.RunFinished(messageEventArgs); - m_PlatformSpecificSetup.CleanUp(); - - CallbacksDelegator.instance.RunFinishedRemotely(messageEventArgs.data); - } - - private void TestStarted(MessageEventArgs messageEventArgs) - { - m_TimeoutCallback?.Reset(); - CallbacksDelegator.instance.TestStartedRemotely(messageEventArgs.data); - } - - private void TestFinished(MessageEventArgs messageEventArgs) - { - m_TimeoutCallback?.Reset(); - CallbacksDelegator.instance.TestFinishedRemotely(messageEventArgs.data); - } - - private void PlayerAliveHeartbeat(MessageEventArgs messageEventArgs) - { - m_TimeoutCallback?.Reset(); - } - - private void TimeoutCallback() - { - CallbacksDelegator.instance.RunFailed($"Test execution timed out. No activity received from the player in {m_HearbeatTimeOut} seconds."); - } - - public void PostBuildAction() - { - m_PlatformSpecificSetup.PostBuildAction(); - } - - public void PostSuccessfulBuildAction() - { - m_PlatformSpecificSetup.PostSuccessfulBuildAction(); - m_TimeoutCallback = new UnityEditor.TestTools.TestRunner.DelayedCallback(TimeoutCallback, m_HearbeatTimeOut); - } - - public void PostSuccessfulLaunchAction() - { - m_PlatformSpecificSetup.PostSuccessfulLaunchAction(); - } - - public void CleanUp() - { - m_PlatformSpecificSetup.CleanUp(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/RemoteTestResultReciever.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/RemoteTestResultReciever.cs deleted file mode 100644 index fe0a624..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/RemoteTestResultReciever.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using UnityEditor.Networking.PlayerConnection; -using UnityEngine; -using UnityEngine.Networking.PlayerConnection; -using UnityEngine.TestRunner.TestLaunchers; - -namespace UnityEditor.TestTools.TestRunner -{ - [Serializable] - internal class RemoteTestResultReciever - { - public void RunStarted(MessageEventArgs messageEventArgs) - { - } - - public void RunFinished(MessageEventArgs messageEventArgs) - { - EditorConnection.instance.Send(PlayerConnectionMessageIds.quitPlayerMessageId, null, messageEventArgs.playerId); - EditorConnection.instance.DisconnectAll(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/RuntimeTestLauncherBase.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/RuntimeTestLauncherBase.cs deleted file mode 100644 index 9c104db..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/RuntimeTestLauncherBase.cs +++ /dev/null @@ -1,92 +0,0 @@ -using System; -using System.Linq; -using NUnit.Framework.Interfaces; -using UnityEditor.Events; -using UnityEditor.SceneManagement; -using UnityEngine; -using UnityEngine.SceneManagement; -using UnityEngine.TestRunner.NUnitExtensions.Runner; -using UnityEngine.TestTools; -using UnityEngine.TestTools.NUnitExtensions; -using UnityEngine.TestTools.TestRunner; -using UnityEngine.TestTools.Utils; - -namespace UnityEditor.TestTools.TestRunner -{ - internal abstract class RuntimeTestLauncherBase : TestLauncherBase - { - protected Scene CreateBootstrapScene(string sceneName, Action runnerSetup) - { - var scene = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Single); - var go = new GameObject(PlaymodeTestsController.kPlaymodeTestControllerName); - - var editorLoadedTestAssemblyProvider = new EditorLoadedTestAssemblyProvider(new EditorCompilationInterfaceProxy(), new EditorAssembliesProxy()); - - var runner = go.AddComponent(); - runnerSetup(runner); - runner.settings.bootstrapScene = sceneName; - runner.AssembliesWithTests = editorLoadedTestAssemblyProvider.GetAssembliesGroupedByType(TestPlatform.PlayMode).Select(x => x.Assembly.GetName().Name).ToList(); - - EditorSceneManager.MarkSceneDirty(scene); - AssetDatabase.SaveAssets(); - EditorSceneManager.SaveScene(scene, sceneName, false); - - return scene; - } - - public string CreateSceneName() - { - return "Assets/InitTestScene" + DateTime.Now.Ticks + ".unity"; - } - - protected UnityTestAssemblyRunner LoadTests(ITestFilter filter) - { - var editorLoadedTestAssemblyProvider = new EditorLoadedTestAssemblyProvider(new EditorCompilationInterfaceProxy(), new EditorAssembliesProxy()); - var assembliesWithTests = editorLoadedTestAssemblyProvider.GetAssembliesGroupedByType(TestPlatform.PlayMode).Select(x => x.Assembly.GetName().Name).ToList(); - - var nUnitTestAssemblyRunner = new UnityTestAssemblyRunner(new UnityTestAssemblyBuilder(), null); - var assemblyProvider = new PlayerTestAssemblyProvider(new AssemblyLoadProxy(), assembliesWithTests); - nUnitTestAssemblyRunner.Load(assemblyProvider.GetUserAssemblies().Select(a => a.Assembly).ToArray(), TestPlatform.PlayMode, UnityTestAssemblyBuilder.GetNUnitTestBuilderSettings(TestPlatform.PlayMode)); - return nUnitTestAssemblyRunner; - } - - protected static void ReopenOriginalScene(string originalSceneName) - { - EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects); - if (!string.IsNullOrEmpty(originalSceneName)) - { - EditorSceneManager.OpenScene(originalSceneName); - } - } - } - - internal static class PlaymodeTestsControllerExtensions - { - internal static T AddEventHandlerMonoBehaviour(this PlaymodeTestsController controller) where T : MonoBehaviour, ITestRunnerListener - { - var eventHandler = controller.gameObject.AddComponent(); - SetListeners(controller, eventHandler); - return eventHandler; - } - - internal static T AddEventHandlerScriptableObject(this PlaymodeTestsController controller) where T : ScriptableObject, ITestRunnerListener - { - var eventListener = ScriptableObject.CreateInstance(); - AddEventHandlerScriptableObject(controller, eventListener); - return eventListener; - } - - internal static void AddEventHandlerScriptableObject(this PlaymodeTestsController controller, ITestRunnerListener obj) - { - SetListeners(controller, obj); - } - - private static void SetListeners(PlaymodeTestsController controller, ITestRunnerListener eventHandler) - { - UnityEventTools.AddPersistentListener(controller.testStartedEvent, eventHandler.TestStarted); - UnityEventTools.AddPersistentListener(controller.testFinishedEvent, eventHandler.TestFinished); - UnityEventTools.AddPersistentListener(controller.runStartedEvent, eventHandler.RunStarted); - UnityEventTools.AddPersistentListener(controller.runFinishedEvent, eventHandler.RunFinished); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/TestLauncherBase.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/TestLauncherBase.cs deleted file mode 100644 index beeba27..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestLaunchers/TestLauncherBase.cs +++ /dev/null @@ -1,85 +0,0 @@ -using System; -using System.Linq; -using NUnit.Framework.Interfaces; -using UnityEngine; -using UnityEngine.TestTools; -using UnityEngine.TestTools.Logging; -using UnityEngine.TestTools.TestRunner; - -namespace UnityEditor.TestTools.TestRunner -{ - internal abstract class TestLauncherBase - { - public abstract void Run(); - - protected virtual RuntimePlatform? TestTargetPlatform - { - get { return Application.platform; } - } - - protected bool ExecutePreBuildSetupMethods(ITest tests, ITestFilter testRunnerFilter) - { - var attributeFinder = new PrebuildSetupAttributeFinder(); - var logString = "Executing setup for: {0}"; - return ExecuteMethods(tests, testRunnerFilter, attributeFinder, logString, targetClass => targetClass.Setup(), TestTargetPlatform); - } - - public void ExecutePostBuildCleanupMethods(ITest tests, ITestFilter testRunnerFilter) - { - ExecutePostBuildCleanupMethods(tests, testRunnerFilter, TestTargetPlatform); - } - - public static void ExecutePostBuildCleanupMethods(ITest tests, ITestFilter testRunnerFilter, RuntimePlatform? testTargetPlatform) - { - var attributeFinder = new PostbuildCleanupAttributeFinder(); - var logString = "Executing cleanup for: {0}"; - ExecuteMethods(tests, testRunnerFilter, attributeFinder, logString, targetClass => targetClass.Cleanup(), testTargetPlatform); - } - - private static bool ExecuteMethods(ITest tests, ITestFilter testRunnerFilter, AttributeFinderBase attributeFinder, string logString, Action action, RuntimePlatform? testTargetPlatform) - { - var exceptionsThrown = false; - - if (testTargetPlatform == null) - { - Debug.LogError("Could not determine test target platform from build target " + EditorUserBuildSettings.activeBuildTarget); - return true; - } - - foreach (var targetClassType in attributeFinder.Search(tests, testRunnerFilter, testTargetPlatform.Value)) - { - try - { - var targetClass = (T)Activator.CreateInstance(targetClassType); - - Debug.LogFormat(logString, targetClassType.FullName); - - using (var logScope = new LogScope()) - { - action(targetClass); - - if (logScope.AnyFailingLogs()) - { - var failingLog = logScope.FailingLogs.First(); - throw new UnhandledLogMessageException(failingLog); - } - - if (logScope.ExpectedLogs.Any()) - { - var expectedLogs = logScope.ExpectedLogs.First(); - throw new UnexpectedLogMessageException(expectedLogs); - } - } - } - catch (InvalidCastException) {} - catch (Exception e) - { - Debug.LogException(e); - exceptionsThrown = true; - } - } - - return exceptionsThrown; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestResultSerializer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestResultSerializer.cs deleted file mode 100644 index b78893d..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestResultSerializer.cs +++ /dev/null @@ -1,80 +0,0 @@ -using System; -using System.Reflection; -using System.Text; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using UnityEngine; -using UnityEngine.TestRunner.NUnitExtensions; - -namespace UnityEditor.TestTools.TestRunner -{ - [Serializable] - internal class TestResultSerializer - { - private static readonly BindingFlags flags = BindingFlags.NonPublic | BindingFlags.Public | - BindingFlags.Instance | BindingFlags.FlattenHierarchy; - - [SerializeField] public string id; - - [SerializeField] public string fullName; - - [SerializeField] private double duration; - - [SerializeField] private string label; - - [SerializeField] private string message; - - [SerializeField] private string output; - - [SerializeField] private string site; - - [SerializeField] private string stacktrace; - - [SerializeField] private double startTimeAO; - - [SerializeField] private double endTimeAO; - - [SerializeField] private string status; - - [SerializeField] public string uniqueName; - - public static TestResultSerializer MakeFromTestResult(ITestResult result) - { - var wrapper = new TestResultSerializer(); - wrapper.id = result.Test.Id; - wrapper.fullName = result.FullName; - wrapper.status = result.ResultState.Status.ToString(); - wrapper.label = result.ResultState.Label; - wrapper.site = result.ResultState.Site.ToString(); - wrapper.output = result.Output; - wrapper.duration = result.Duration; - wrapper.stacktrace = result.StackTrace; - wrapper.message = result.Message; - wrapper.startTimeAO = result.StartTime.ToOADate(); - wrapper.endTimeAO = result.EndTime.ToOADate(); - wrapper.uniqueName = result.Test.GetUniqueName(); - return wrapper; - } - - public void RestoreTestResult(TestResult result) - { - var resultState = new ResultState((TestStatus)Enum.Parse(typeof(TestStatus), status), label, - (FailureSite)Enum.Parse(typeof(FailureSite), site)); - var baseType = result.GetType().BaseType; - baseType.GetField("_resultState", flags).SetValue(result, resultState); - baseType.GetField("_output", flags).SetValue(result, new StringBuilder(output)); - baseType.GetField("_duration", flags).SetValue(result, duration); - baseType.GetField("_message", flags).SetValue(result, message); - baseType.GetField("_stackTrace", flags).SetValue(result, stacktrace); - baseType.GetProperty("StartTime", flags) - .SetValue(result, DateTime.FromOADate(startTimeAO), null); - baseType.GetProperty("EndTime", flags) - .SetValue(result, DateTime.FromOADate(endTimeAO), null); - } - - public bool IsPassed() - { - return status == TestStatus.Passed.ToString(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/BuildActionTaskBase.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/BuildActionTaskBase.cs deleted file mode 100644 index 016ea54..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/BuildActionTaskBase.cs +++ /dev/null @@ -1,86 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using NUnit.Framework.Interfaces; -using UnityEngine; -using UnityEngine.TestTools.Logging; -using UnityEngine.TestTools.TestRunner; - -namespace UnityEditor.TestTools.TestRunner.TestRun.Tasks -{ - internal abstract class BuildActionTaskBase : TestTaskBase - { - private string typeName; - internal IAttributeFinder attributeFinder; - internal RuntimePlatform targetPlatform = Application.platform; - internal Action logAction = Debug.Log; - internal Func logScopeProvider = () => new LogScope(); - internal Func createInstance = Activator.CreateInstance; - - protected BuildActionTaskBase(IAttributeFinder attributeFinder) - { - this.attributeFinder = attributeFinder; - typeName = typeof(T).Name; - } - - protected abstract void Action(T target); - - public override IEnumerator Execute(TestJobData testJobData) - { - if (testJobData.testTree == null) - { - throw new Exception($"Test tree is not available for {GetType().Name}."); - } - - var enumerator = ExecuteMethods(testJobData.testTree, testJobData.executionSettings.BuildNUnitFilter()); - while (enumerator.MoveNext()) - { - yield return null; - } - } - - protected IEnumerator ExecuteMethods(ITest testTree, ITestFilter testRunnerFilter) - { - var exceptions = new List(); - - foreach (var targetClassType in attributeFinder.Search(testTree, testRunnerFilter, targetPlatform)) - { - try - { - var targetClass = (T) createInstance(targetClassType); - - logAction($"Executing {typeName} for: {targetClassType.FullName}."); - - using (var logScope = logScopeProvider()) - { - Action(targetClass); - - if (logScope.AnyFailingLogs()) - { - var failingLog = logScope.FailingLogs.First(); - throw new UnhandledLogMessageException(failingLog); - } - - if (logScope.ExpectedLogs.Any()) - { - var expectedLogs = logScope.ExpectedLogs.First(); - throw new UnexpectedLogMessageException(expectedLogs); - } - } - } - catch (Exception ex) - { - exceptions.Add(ex); - } - - yield return null; - } - - if (exceptions.Count > 0) - { - throw new AggregateException($"One or more exceptions when executing {typeName}.", exceptions); - } - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/BuildTestTreeTask.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/BuildTestTreeTask.cs deleted file mode 100644 index fa45752..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/BuildTestTreeTask.cs +++ /dev/null @@ -1,61 +0,0 @@ -using System; -using System.Collections; -using System.Linq; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine.TestRunner.NUnitExtensions; -using UnityEngine.TestTools; -using UnityEngine.TestTools.NUnitExtensions; - -namespace UnityEditor.TestTools.TestRunner.TestRun.Tasks -{ - internal class BuildTestTreeTask : TestTaskBase - { - private TestPlatform m_TestPlatform; - - public BuildTestTreeTask(TestPlatform testPlatform) - { - m_TestPlatform = testPlatform; - } - - internal IEditorLoadedTestAssemblyProvider m_testAssemblyProvider = new EditorLoadedTestAssemblyProvider(new EditorCompilationInterfaceProxy(), new EditorAssembliesProxy()); - internal IAsyncTestAssemblyBuilder m_testAssemblyBuilder = new UnityTestAssemblyBuilder(); - internal ICallbacksDelegator m_CallbacksDelegator = CallbacksDelegator.instance; - - public override IEnumerator Execute(TestJobData testJobData) - { - if (testJobData.testTree != null) - { - yield break; - } - - var assembliesEnumerator = m_testAssemblyProvider.GetAssembliesGroupedByTypeAsync(m_TestPlatform); - while (assembliesEnumerator.MoveNext()) - { - yield return null; - } - - if (assembliesEnumerator.Current == null) - { - throw new Exception("Assemblies not retrieved."); - } - - var assemblies = assembliesEnumerator.Current.Where(pair => m_TestPlatform.IsFlagIncluded(pair.Key)).SelectMany(pair => pair.Value).Select(x => x.Assembly).ToArray(); - var buildSettings = UnityTestAssemblyBuilder.GetNUnitTestBuilderSettings(m_TestPlatform); - var enumerator = m_testAssemblyBuilder.BuildAsync(assemblies, Enumerable.Repeat(m_TestPlatform, assemblies.Length).ToArray(), buildSettings); - while (enumerator.MoveNext()) - { - yield return null; - } - - var testList = enumerator.Current; - if (testList== null) - { - throw new Exception("Test list not retrieved."); - } - - testList.ParseForNameDuplicates(); - testJobData.testTree = testList; - m_CallbacksDelegator.TestTreeRebuild(testList); - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/CleanupVerificationTask.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/CleanupVerificationTask.cs deleted file mode 100644 index 3da9a30..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/CleanupVerificationTask.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System; -using System.Collections; -using System.IO; -using System.Linq; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner.TestRun.Tasks -{ - internal class CleanupVerificationTask : FileCleanupVerifierTaskBase - { - private const string k_Indent = " "; - - internal Action logAction = Debug.LogWarning; - - public override IEnumerator Execute(TestJobData testJobData) - { - var currentFiles = GetAllFilesInAssetsDirectory(); - var existingFiles = testJobData.existingFiles; - - if (currentFiles.Length != existingFiles.Length) - { - LogWarningForFilesIfAny(currentFiles.Where(file => !testJobData.existingFiles.Contains(file)).ToArray()); - } - - yield return null; - } - - private void LogWarningForFilesIfAny(string[] filePaths) - { - if (!filePaths.Any()) - { - return; - } - - var stringWriter = new StringWriter(); - stringWriter.WriteLine("Files generated by test without cleanup."); - stringWriter.WriteLine(k_Indent + "Found {0} new files.", filePaths.Length); - - foreach (var filePath in filePaths) - { - stringWriter.WriteLine(k_Indent + filePath); - } - - logAction(stringWriter.ToString()); - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/FileCleanupVerifierTaskBase.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/FileCleanupVerifierTaskBase.cs deleted file mode 100644 index 18dc47b..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/FileCleanupVerifierTaskBase.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; - -namespace UnityEditor.TestTools.TestRunner.TestRun.Tasks -{ - internal abstract class FileCleanupVerifierTaskBase : TestTaskBase - { - internal Func GetAllAssetPathsAction = AssetDatabase.GetAllAssetPaths; - - protected string[] GetAllFilesInAssetsDirectory() - { - return GetAllAssetPathsAction(); - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/LegacyEditModeRunTask.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/LegacyEditModeRunTask.cs deleted file mode 100644 index 2186048..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/LegacyEditModeRunTask.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Collections; -using UnityEngine; -using UnityEngine.TestTools; - -namespace UnityEditor.TestTools.TestRunner.TestRun.Tasks -{ - internal class LegacyEditModeRunTask : TestTaskBase - { - public LegacyEditModeRunTask() : base(true) - { - - } - - public override IEnumerator Execute(TestJobData testJobData) - { - var testLauncher = new EditModeLauncher(testJobData.executionSettings.filters, TestPlatform.EditMode, testJobData.executionSettings.runSynchronously); - testJobData.editModeRunner = testLauncher.m_EditModeRunner; - testLauncher.Run(); - - while (testJobData.editModeRunner != null && !testJobData.editModeRunner.RunFinished) - { - yield return null; - } - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/LegacyPlayModeRunTask.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/LegacyPlayModeRunTask.cs deleted file mode 100644 index 6169e4c..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/LegacyPlayModeRunTask.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Collections; -using System.Linq; -using UnityEngine.TestTools.TestRunner; - -namespace UnityEditor.TestTools.TestRunner.TestRun.Tasks -{ - internal class LegacyPlayModeRunTask : TestTaskBase - { - public LegacyPlayModeRunTask() : base(true) - { - - } - public override IEnumerator Execute(TestJobData testJobData) - { - var settings = PlaymodeTestsControllerSettings.CreateRunnerSettings(testJobData.executionSettings.filters.Select(filter => filter.ToRuntimeTestRunnerFilter(testJobData.executionSettings.runSynchronously)).ToArray()); - var launcher = new PlaymodeLauncher(settings); - - launcher.Run(); - - while (PlaymodeLauncher.IsRunning) - { - yield return null; - } - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/LegacyPlayerRunTask.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/LegacyPlayerRunTask.cs deleted file mode 100644 index 119d9ad..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/LegacyPlayerRunTask.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System.Collections; -using System.Linq; -using UnityEngine.TestTools.TestRunner; - -namespace UnityEditor.TestTools.TestRunner.TestRun.Tasks -{ - internal class LegacyPlayerRunTask : TestTaskBase - { - public override IEnumerator Execute(TestJobData testJobData) - { - var executionSettings = testJobData.executionSettings; - var settings = PlaymodeTestsControllerSettings.CreateRunnerSettings(executionSettings.filters.Select(filter => filter.ToRuntimeTestRunnerFilter(executionSettings.runSynchronously)).ToArray()); - var launcher = new PlayerLauncher(settings, executionSettings.targetPlatform, executionSettings.overloadTestRunSettings, executionSettings.playerHeartbeatTimeout); - launcher.Run(); - yield return null; - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/PerformUndoTask.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/PerformUndoTask.cs deleted file mode 100644 index df64442..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/PerformUndoTask.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using System.Collections; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner.TestRun.Tasks -{ - internal class PerformUndoTask : TestTaskBase - { - private const double warningThreshold = 1000; - - internal Action RevertAllDownToGroup = Undo.RevertAllDownToGroup; - internal Action LogWarning = Debug.LogWarning; - internal Action DisplayProgressBar = EditorUtility.DisplayProgressBar; - internal Action ClearProgressBar = EditorUtility.ClearProgressBar; - internal Func TimeNow = () => DateTime.Now; - - public override IEnumerator Execute(TestJobData testJobData) - { - if (testJobData.undoGroup < 0) - { - yield break; - } - - DisplayProgressBar("Undo", "Reverting changes to the scene", 0); - - var undoStartTime = TimeNow(); - - RevertAllDownToGroup(testJobData.undoGroup); - - var timeDelta = TimeNow() - undoStartTime; - if (timeDelta.TotalMilliseconds >= warningThreshold) - { - LogWarning($"Undo after editor test run took {timeDelta.Seconds} second{(timeDelta.Seconds == 1 ? "" : "s")}."); - } - - ClearProgressBar(); - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/PrebuildSetupTask.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/PrebuildSetupTask.cs deleted file mode 100644 index 34e03e3..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/PrebuildSetupTask.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections; -using NUnit.Framework.Interfaces; -using UnityEngine; -using UnityEngine.TestTools; - -namespace UnityEditor.TestTools.TestRunner.TestRun.Tasks -{ - internal class PrebuildSetupTask : BuildActionTaskBase - { - public PrebuildSetupTask() : base(new PrebuildSetupAttributeFinder()) - { - } - - protected override void Action(IPrebuildSetup target) - { - target.Setup(); - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/RegisterFilesForCleanupVerificationTask.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/RegisterFilesForCleanupVerificationTask.cs deleted file mode 100644 index 7a4cf64..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/RegisterFilesForCleanupVerificationTask.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.Collections; - -namespace UnityEditor.TestTools.TestRunner.TestRun.Tasks -{ - internal class RegisterFilesForCleanupVerificationTask : FileCleanupVerifierTaskBase - { - public override IEnumerator Execute(TestJobData testJobData) - { - testJobData.existingFiles = GetAllFilesInAssetsDirectory(); - yield return null; - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/SaveModiedSceneTask.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/SaveModiedSceneTask.cs deleted file mode 100644 index a2ec975..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/SaveModiedSceneTask.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections; -using UnityEditor.SceneManagement; - -namespace UnityEditor.TestTools.TestRunner.TestRun.Tasks -{ - internal class SaveModiedSceneTask : TestTaskBase - { - internal Func SaveCurrentModifiedScenesIfUserWantsTo = - EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo; - public override IEnumerator Execute(TestJobData testJobData) - { - var cancelled = !SaveCurrentModifiedScenesIfUserWantsTo(); - if (cancelled) - { - throw new TestRunCanceledException(); - } - - yield break; - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/SaveUndoIndexTask.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/SaveUndoIndexTask.cs deleted file mode 100644 index 45b1227..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/SaveUndoIndexTask.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections; - -namespace UnityEditor.TestTools.TestRunner.TestRun.Tasks -{ - internal class SaveUndoIndexTask : TestTaskBase - { - internal Func GetUndoGroup = Undo.GetCurrentGroup; - public override IEnumerator Execute(TestJobData testJobData) - { - testJobData.undoGroup = GetUndoGroup(); - yield break; - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/TestTaskBase.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/TestTaskBase.cs deleted file mode 100644 index d83490b..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/Tasks/TestTaskBase.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.Collections; - -namespace UnityEditor.TestTools.TestRunner.TestRun.Tasks -{ - internal abstract class TestTaskBase - { - public bool SupportsResumingEnumerator; - - protected TestTaskBase(bool supportsResumingEnumerator = false) - { - SupportsResumingEnumerator = supportsResumingEnumerator; - } - - public abstract IEnumerator Execute(TestJobData testJobData); - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/TestJobData.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/TestJobData.cs deleted file mode 100644 index 06358df..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/TestJobData.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System; -using NUnit.Framework.Interfaces; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner.TestRun -{ - [Serializable] - internal class TestJobData - { - [SerializeField] - public string guid; - - [SerializeField] - public int taskIndex; - - [SerializeField] - public int taskPC; - - [SerializeField] - public bool isRunning; - - [SerializeField] - public ExecutionSettings executionSettings; - - [SerializeField] - public string[] existingFiles; - - [SerializeField] - public int undoGroup = -1; - - [SerializeField] - public EditModeRunner editModeRunner; - - [NonSerialized] - public bool isHandledByRunner; - - public ITest testTree; - - public TestJobData(ExecutionSettings settings) - { - guid = Guid.NewGuid().ToString(); - executionSettings = settings; - isRunning = false; - taskIndex = 0; - taskPC = 0; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/TestJobDataHolder.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/TestJobDataHolder.cs deleted file mode 100644 index 8f1309e..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/TestJobDataHolder.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner.TestRun -{ - internal class TestJobDataHolder : ScriptableSingleton - { - [SerializeField] - public List TestRuns = new List(); - - [InitializeOnLoadMethod] - private static void ResumeRunningJobs() - { - foreach (var testRun in instance.TestRuns.ToArray()) - { - if (testRun.isRunning) - { - var runner = new TestJobRunner(); - runner.RunJob(testRun); - } - else - { - instance.TestRuns.Remove(testRun); - } - } - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/TestJobRunner.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/TestJobRunner.cs deleted file mode 100644 index 5485688..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/TestJobRunner.cs +++ /dev/null @@ -1,166 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEditor.TestTools.TestRunner.TestRun.Tasks; -using UnityEngine; -using UnityEngine.TestTools; - -namespace UnityEditor.TestTools.TestRunner.TestRun -{ - internal class TestJobRunner - { - private static IEnumerable GetTaskList(ExecutionSettings settings) - { - if (settings == null) - { - yield break; - } - - if (settings.EditModeIncluded() || (PlayerSettings.runPlayModeTestAsEditModeTest && settings.PlayModeInEditorIncluded())) - { - yield return new SaveModiedSceneTask(); - yield return new RegisterFilesForCleanupVerificationTask(); - yield return new SaveUndoIndexTask(); - yield return new BuildTestTreeTask(TestPlatform.EditMode); - yield return new PrebuildSetupTask(); - yield return new LegacyEditModeRunTask(); - yield return new PerformUndoTask(); - yield return new CleanupVerificationTask(); - yield break; - } - - if (settings.PlayModeInEditorIncluded() && !PlayerSettings.runPlayModeTestAsEditModeTest) - { - yield return new SaveModiedSceneTask(); - yield return new LegacyPlayModeRunTask(); - yield break; - } - - if (settings.PlayerIncluded()) - { - yield return new LegacyPlayerRunTask(); - yield break; - } - } - - internal List SavedTestJobData = TestJobDataHolder.instance.TestRuns; - internal Action SubscribeCallback = (callback) => EditorApplication.update += callback; - // ReSharper disable once DelegateSubtraction - internal Action UnsubscribeCallback = (callback) => EditorApplication.update -= callback; - internal TestCommandPcHelper PcHelper = new EditModePcHelper(); - internal Func> GetTasks = GetTaskList; - internal Action LogException = Debug.LogException; - internal Action LogError = Debug.LogError; - internal Action ReportRunFailed = CallbacksDelegator.instance.RunFailed; - - private TestJobData m_JobData; - private TestTaskBase[] Tasks; - private IEnumerator m_Enumerator = null; - - public string RunJob(TestJobData data) - { - if (data == null) - { - throw new ArgumentException(null, nameof(data)); - } - - if (m_JobData != null && m_JobData.isRunning) - { - throw new Exception("TestJobRunner is already running a job."); - } - - if (data.isHandledByRunner) - { - throw new Exception("Test job is already being handled."); - } - - m_JobData = data; - m_JobData.isHandledByRunner = true; - - if (!m_JobData.isRunning) - { - m_JobData.isRunning = true; - SavedTestJobData.Add(m_JobData); - } - - Tasks = GetTasks(data.executionSettings).ToArray(); - if (!data.executionSettings.runSynchronously) - { - SubscribeCallback(ExecuteStep); - } - else - { - while (data.isRunning) - { - ExecuteStep(); - } - } - - return data.guid; - } - - private void ExecuteStep() - { - try - { - if (m_JobData.taskIndex >= Tasks.Length) - { - StopRun(); - return; - } - - if (m_Enumerator == null) - { - var task = Tasks[m_JobData.taskIndex]; - m_Enumerator = task.Execute(m_JobData); - if (task.SupportsResumingEnumerator) - { - PcHelper.SetEnumeratorPC(m_Enumerator, m_JobData.taskPC); - } - } - - if (!m_Enumerator.MoveNext()) - { - m_JobData.taskIndex++; - m_JobData.taskPC = 0; - m_Enumerator = null; - return; - } - - if (Tasks[m_JobData.taskIndex].SupportsResumingEnumerator) - { - m_JobData.taskPC = PcHelper.GetEnumeratorPC(m_Enumerator); - } - } - catch (TestRunCanceledException) - { - StopRun(); - } - catch (AggregateException ex) - { - StopRun(); - LogError(ex.Message); - foreach (var innerException in ex.InnerExceptions) - { - LogException(innerException); - } - ReportRunFailed("Multiple unexpected errors happened while running tests."); - } - catch (Exception ex) - { - StopRun(); - LogException(ex); - ReportRunFailed("An unexpected error happened while running tests."); - } - } - - private void StopRun() - { - m_JobData.isRunning = false; - UnsubscribeCallback(ExecuteStep); - SavedTestJobData.Remove(m_JobData); - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/TestRunCanceledException.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/TestRunCanceledException.cs deleted file mode 100644 index faf67f6..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRun/TestRunCanceledException.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System; - -namespace UnityEditor.TestTools.TestRunner.TestRun -{ - internal class TestRunCanceledException : Exception - { - - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/EditModeRunnerCallback.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/EditModeRunnerCallback.cs deleted file mode 100644 index 79e588a..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/EditModeRunnerCallback.cs +++ /dev/null @@ -1,186 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using NUnit.Framework; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using UnityEditor.SceneManagement; -using UnityEngine; -using UnityEngine.TestTools.TestRunner; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class EditModeRunnerCallback : ScriptableObject, ITestRunnerListener - { - private EditModeLauncherContextSettings m_Settings; - public SceneSetup[] previousSceneSetup; - public EditModeRunner runner; - - private bool m_Canceled; - private ITest m_CurrentTest; - private int m_TotalTests; - - [SerializeField] - private List m_PendingTests; - [SerializeField] - private string m_LastCountedTestName; - [SerializeField] - private bool m_RunRestarted; - - public void OnDestroy() - { - CleanUp(); - } - - public void RunStarted(ITest testsToRun) - { - Setup(); - if (m_PendingTests == null) - { - m_PendingTests = GetTestsExpectedToRun(testsToRun, runner.GetFilter()); - m_TotalTests = m_PendingTests.Count; - } - } - - public void OnEnable() - { - if (m_RunRestarted) - { - Setup(); - } - } - - private void Setup() - { - m_Settings = new EditModeLauncherContextSettings(); - Application.logMessageReceivedThreaded += LogReceived; - EditorApplication.playModeStateChanged += WaitForExitPlaymode; - EditorApplication.update += DisplayProgressBar; - AssemblyReloadEvents.beforeAssemblyReload += BeforeAssemblyReload; - } - - private void BeforeAssemblyReload() - { - if (m_CurrentTest != null) - { - m_LastCountedTestName = m_CurrentTest.FullName; - m_RunRestarted = true; - } - } - - private void DisplayProgressBar() - { - if (m_CurrentTest == null) - return; - if (!m_Canceled && EditorUtility.DisplayCancelableProgressBar("Test Runner", "Running test " + m_CurrentTest.Name, Math.Min(1.0f, (float)(m_TotalTests - m_PendingTests.Count) / m_TotalTests))) - { - EditorApplication.update -= DisplayProgressBar; - m_Canceled = true; - EditorUtility.ClearProgressBar(); - runner.OnRunCancel(); - } - } - - private static void LogReceived(string message, string stacktrace, LogType type) - { - if (TestContext.Out != null) - TestContext.Out.WriteLine(message); - } - - private static void WaitForExitPlaymode(PlayModeStateChange state) - { - if (state == PlayModeStateChange.EnteredEditMode) - { - EditorApplication.playModeStateChanged -= WaitForExitPlaymode; - //because logMessage is reset on Enter EditMode - //we remove and add the callback - //because Unity - Application.logMessageReceivedThreaded -= LogReceived; - Application.logMessageReceivedThreaded += LogReceived; - } - } - - public void RunFinished(ITestResult result) - { - if (previousSceneSetup != null && previousSceneSetup.Length > 0) - { - try - { - EditorSceneManager.RestoreSceneManagerSetup(previousSceneSetup); - } - catch (ArgumentException e) - { - Debug.LogWarning(e.Message); - } - } - else - { - foreach (var obj in FindObjectsOfType()) - { - if (obj != null && obj.transform.parent != null && (obj.transform.parent.hideFlags & HideFlags.DontSaveInEditor) == HideFlags.DontSaveInEditor && obj.transform.parent.gameObject != null) - { - DestroyImmediate(obj.transform.parent.gameObject); - } - } - - EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single); - } - CleanUp(); - } - - private void CleanUp() - { - m_CurrentTest = null; - EditorUtility.ClearProgressBar(); - if (m_Settings != null) - { - m_Settings.Dispose(); - } - Application.logMessageReceivedThreaded -= LogReceived; - EditorApplication.update -= DisplayProgressBar; - } - - public void TestStarted(ITest test) - { - if (test.IsSuite || !(test is TestMethod)) - { - return; - } - - m_CurrentTest = test; - - if (m_RunRestarted) - { - if (test.FullName == m_LastCountedTestName) - m_RunRestarted = false; - } - } - - public void TestFinished(ITestResult result) - { - if (result.Test is TestMethod) - { - m_PendingTests.Remove(result.Test.FullName); - } - } - - private static List GetTestsExpectedToRun(ITest test, ITestFilter filter) - { - var expectedTests = new List(); - - if (filter.Pass(test)) - { - if (test.IsSuite) - { - expectedTests.AddRange(test.Tests.SelectMany(subTest => GetTestsExpectedToRun(subTest, filter))); - } - else - { - expectedTests.Add(test.FullName); - } - } - - return expectedTests; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/RerunCallback.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/RerunCallback.cs deleted file mode 100644 index 9106ff8..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/RerunCallback.cs +++ /dev/null @@ -1,86 +0,0 @@ -using UnityEditor.TestTools.TestRunner.Api; -using UnityEditor.TestTools.TestRunner.CommandLineTest; -using UnityEditor.TestTools.TestRunner.GUI; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class RerunCallback : ScriptableObject, ICallbacks - { - public static bool useMockRunFilter = false; - public static UITestRunnerFilter mockRunFilter = null; - - public void RunFinished(ITestResultAdaptor result) - { - if (RerunCallbackData.instance.runFilters == null || RerunCallbackData.instance.runFilters.Length == 0) - RerunCallbackData.instance.runFilters = new[] {new UITestRunnerFilter()}; - - var runFilter = RerunCallbackData.instance.runFilters[0]; - - if (useMockRunFilter) - { - runFilter = mockRunFilter; - } - - runFilter.testRepetitions--; - if (runFilter.testRepetitions <= 0 || result.TestStatus != TestStatus.Passed) - { - ExitCallbacks.preventExit = false; - return; - } - - ExitCallbacks.preventExit = true; - if (EditorApplication.isPlaying) - { - EditorApplication.playModeStateChanged += WaitForExitPlaymode; - return; - } - - if (!useMockRunFilter) - { - ExecuteTestRunnerAPI(); - } - } - - private static void WaitForExitPlaymode(PlayModeStateChange state) - { - if (state == PlayModeStateChange.EnteredEditMode) - { - ExecuteTestRunnerAPI(); - } - } - - private static void ExecuteTestRunnerAPI() - { - var runFilter = RerunCallbackData.instance.runFilters[0]; - var testMode = RerunCallbackData.instance.testMode; - - var testRunnerApi = ScriptableObject.CreateInstance(); - testRunnerApi.Execute(new Api.ExecutionSettings() - { - filters = new[] - { - new Filter() - { - categoryNames = runFilter.categoryNames, - groupNames = runFilter.groupNames, - testMode = testMode, - testNames = runFilter.testNames - } - } - }); - } - - public void TestStarted(ITestAdaptor test) - { - } - - public void TestFinished(ITestResultAdaptor result) - { - } - - public void RunStarted(ITestAdaptor testsToRun) - { - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/RerunCallbackData.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/RerunCallbackData.cs deleted file mode 100644 index 150b518..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/RerunCallbackData.cs +++ /dev/null @@ -1,15 +0,0 @@ -using UnityEditor.TestTools.TestRunner.Api; -using UnityEditor.TestTools.TestRunner.GUI; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class RerunCallbackData : ScriptableSingleton - { - [SerializeField] - internal UITestRunnerFilter[] runFilters; - - [SerializeField] - internal TestMode testMode; - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/RerunCallbackInitializer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/RerunCallbackInitializer.cs deleted file mode 100644 index 86be497..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/RerunCallbackInitializer.cs +++ /dev/null @@ -1,17 +0,0 @@ -using UnityEngine; -using UnityEditor.TestTools.TestRunner.Api; - -namespace UnityEditor.TestTools.TestRunner -{ - [InitializeOnLoad] - static class RerunCallbackInitializer - { - static RerunCallbackInitializer() - { - var testRunnerApi = ScriptableObject.CreateInstance(); - - var rerunCallback = ScriptableObject.CreateInstance(); - testRunnerApi.RegisterCallbacks(rerunCallback); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/TestRunnerCallback.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/TestRunnerCallback.cs deleted file mode 100644 index 6e89c21..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/TestRunnerCallback.cs +++ /dev/null @@ -1,37 +0,0 @@ -using NUnit.Framework.Interfaces; -using UnityEngine; -using UnityEngine.TestTools.TestRunner; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class TestRunnerCallback : ScriptableObject, ITestRunnerListener - { - public void RunStarted(ITest testsToRun) - { - EditorApplication.playModeStateChanged += OnPlayModeStateChanged; - } - - private void OnPlayModeStateChanged(PlayModeStateChange state) - { - if (state == PlayModeStateChange.ExitingPlayMode) - { - EditorApplication.playModeStateChanged -= OnPlayModeStateChanged; - //We need to make sure we don't block NUnit thread in case we exit PlayMode earlier - PlaymodeTestsController.TryCleanup(); - } - } - - public void RunFinished(ITestResult testResults) - { - EditorApplication.isPlaying = false; - } - - public void TestStarted(ITest testName) - { - } - - public void TestFinished(ITestResult test) - { - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/WindowResultUpdater.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/WindowResultUpdater.cs deleted file mode 100644 index b708d4a..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/WindowResultUpdater.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System.Linq; -using TestRunner.Callbacks; -using UnityEditor.TestTools.TestRunner.Api; - -namespace UnityEditor.TestTools.TestRunner.GUI -{ - internal class WindowResultUpdater : ICallbacks, ITestTreeRebuildCallbacks - { - public WindowResultUpdater() - { - var cachedResults = WindowResultUpdaterDataHolder.instance.CachedResults; - var testList = TestRunnerWindow.s_Instance.m_SelectedTestTypes; - foreach (var result in cachedResults) - { - testList.UpdateResult(result); - } - - cachedResults.Clear(); - - } - public void RunStarted(ITestAdaptor testsToRun) - { - } - - public void RunFinished(ITestResultAdaptor testResults) - { - if (TestRunnerWindow.s_Instance != null) - { - TestRunnerWindow.s_Instance.RebuildUIFilter(); - } - } - - public void TestStarted(ITestAdaptor testName) - { - } - - public void TestFinished(ITestResultAdaptor test) - { - var result = new TestRunnerResult(test); - if (TestRunnerWindow.s_Instance == null) - { - WindowResultUpdaterDataHolder.instance.CachedResults.Add(result); - return; - } - - TestRunnerWindow.s_Instance.m_SelectedTestTypes.UpdateResult(result); - } - - public void TestTreeRebuild(ITestAdaptor test) - { - if (TestRunnerWindow.s_Instance == null) - { - return; - } - - TestRunnerWindow.s_Instance.m_SelectedTestTypes.UpdateTestTree(test); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/WindowResultUpdaterDataHolder.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/WindowResultUpdaterDataHolder.cs deleted file mode 100644 index bed602a..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Callbacks/WindowResultUpdaterDataHolder.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System.Collections.Generic; -using UnityEditor; -using UnityEditor.TestTools.TestRunner.GUI; - -namespace TestRunner.Callbacks -{ - internal class WindowResultUpdaterDataHolder : ScriptableSingleton - { - public List CachedResults = new List(); - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/EditModePCHelper.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/EditModePCHelper.cs deleted file mode 100644 index 7968041..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/EditModePCHelper.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System.Collections; -using System.Reflection; -using UnityEngine.TestTools; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class EditModePcHelper : TestCommandPcHelper - { - public override void SetEnumeratorPC(IEnumerator enumerator, int pc) - { - GetPCFieldInfo(enumerator).SetValue(enumerator, pc); - } - - public override int GetEnumeratorPC(IEnumerator enumerator) - { - if (enumerator == null) - { - return 0; - } - return (int)GetPCFieldInfo(enumerator).GetValue(enumerator); - } - - private FieldInfo GetPCFieldInfo(IEnumerator enumerator) - { - var field = enumerator.GetType().GetField("$PC", BindingFlags.NonPublic | BindingFlags.Instance); - if (field == null) // Roslyn - field = enumerator.GetType().GetField("<>1__state", BindingFlags.NonPublic | BindingFlags.Instance); - - return field; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/EditModeRunner.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/EditModeRunner.cs deleted file mode 100644 index 78cdc3a..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/EditModeRunner.cs +++ /dev/null @@ -1,447 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Filters; -using UnityEngine; -using UnityEngine.TestTools.NUnitExtensions; -using UnityEngine.TestTools.TestRunner; -using UnityEngine.TestTools; -using UnityEngine.TestTools.TestRunner.GUI; -using UnityEditor.Callbacks; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine.TestRunner.NUnitExtensions; -using UnityEngine.TestRunner.NUnitExtensions.Runner; - -namespace UnityEditor.TestTools.TestRunner -{ - internal interface IUnityTestAssemblyRunnerFactory - { - IUnityTestAssemblyRunner Create(TestPlatform testPlatform, WorkItemFactory factory); - } - - internal class UnityTestAssemblyRunnerFactory : IUnityTestAssemblyRunnerFactory - { - public IUnityTestAssemblyRunner Create(TestPlatform testPlatform, WorkItemFactory factory) - { - return new UnityTestAssemblyRunner(new UnityTestAssemblyBuilder(), factory); - } - } - - [Serializable] - internal class EditModeRunner : ScriptableObject, IDisposable - { - [SerializeField] - private Filter[] m_Filters; - - //The counter from the IEnumerator object - [SerializeField] - private int m_CurrentPC; - - [SerializeField] - private bool m_ExecuteOnEnable; - - [SerializeField] - private List m_AlreadyStartedTests; - - [SerializeField] - private List m_ExecutedTests; - - [SerializeField] - private List m_CallbackObjects = new List(); - - [SerializeField] - private TestStartedEvent m_TestStartedEvent = new TestStartedEvent(); - - [SerializeField] - private TestFinishedEvent m_TestFinishedEvent = new TestFinishedEvent(); - - [SerializeField] - private RunStartedEvent m_RunStartedEvent = new RunStartedEvent(); - - [SerializeField] - private RunFinishedEvent m_RunFinishedEvent = new RunFinishedEvent(); - - [SerializeField] - private TestRunnerStateSerializer m_TestRunnerStateSerializer = new TestRunnerStateSerializer(); - - [SerializeField] - private bool m_RunningTests; - - [SerializeField] - private TestPlatform m_TestPlatform; - - [SerializeField] - private object m_CurrentYieldObject; - - [SerializeField] - private BeforeAfterTestCommandState m_SetUpTearDownState; - [SerializeField] - private BeforeAfterTestCommandState m_OuterUnityTestActionState; - - [SerializeField] - private EnumerableTestState m_EnumerableTestState; - - [SerializeField] - public bool RunFinished = false; - - public bool RunningSynchronously { get; private set; } - - internal IUnityTestAssemblyRunner m_Runner; - - private ConstructDelegator m_ConstructDelegator; - - private IEnumerator m_RunStep; - - public IUnityTestAssemblyRunnerFactory UnityTestAssemblyRunnerFactory { get; set; } - - public void Init(Filter[] filters, TestPlatform platform, bool runningSynchronously) - { - m_Filters = filters; - m_TestPlatform = platform; - m_AlreadyStartedTests = new List(); - m_ExecutedTests = new List(); - RunningSynchronously = runningSynchronously; - InitRunner(); - } - - private void InitRunner() - { - //We give the EditMode platform here so we dont suddenly create Playmode work items in the test Runner. - m_Runner = (UnityTestAssemblyRunnerFactory ?? new UnityTestAssemblyRunnerFactory()).Create(TestPlatform.EditMode, new EditmodeWorkItemFactory()); - var testAssemblyProvider = new EditorLoadedTestAssemblyProvider(new EditorCompilationInterfaceProxy(), new EditorAssembliesProxy()); - var assemblies = testAssemblyProvider.GetAssembliesGroupedByType(m_TestPlatform).Select(x => x.Assembly).ToArray(); - var loadedTests = m_Runner.Load(assemblies, TestPlatform.EditMode, - UnityTestAssemblyBuilder.GetNUnitTestBuilderSettings(m_TestPlatform)); - loadedTests.ParseForNameDuplicates(); - CallbacksDelegator.instance.TestTreeRebuild(loadedTests); - hideFlags |= HideFlags.DontSave; - EnumerableSetUpTearDownCommand.ActivePcHelper = new EditModePcHelper(); - OuterUnityTestActionCommand.ActivePcHelper = new EditModePcHelper(); - } - - public void OnEnable() - { - if (m_ExecuteOnEnable) - { - InitRunner(); - m_ExecuteOnEnable = false; - foreach (var callback in m_CallbackObjects) - { - AddListeners(callback as ITestRunnerListener); - } - m_ConstructDelegator = new ConstructDelegator(m_TestRunnerStateSerializer); - - EnumeratorStepHelper.SetEnumeratorPC(m_CurrentPC); - - UnityWorkItemDataHolder.alreadyExecutedTests = m_ExecutedTests.Select(x => x.uniqueName).ToList(); - UnityWorkItemDataHolder.alreadyStartedTests = m_AlreadyStartedTests; - Run(); - } - } - - public void TestStartedEvent(ITest test) - { - m_AlreadyStartedTests.Add(test.GetUniqueName()); - } - - public void TestFinishedEvent(ITestResult testResult) - { - m_AlreadyStartedTests.Remove(testResult.Test.GetUniqueName()); - m_ExecutedTests.Add(TestResultSerializer.MakeFromTestResult(testResult)); - } - - public void Run() - { - EditModeTestCallbacks.RestoringTestContext += OnRestoringTest; - var context = m_Runner.GetCurrentContext(); - if (m_SetUpTearDownState == null) - { - m_SetUpTearDownState = CreateInstance(); - } - context.SetUpTearDownState = m_SetUpTearDownState; - - if (m_OuterUnityTestActionState == null) - { - m_OuterUnityTestActionState = CreateInstance(); - } - context.OuterUnityTestActionState = m_OuterUnityTestActionState; - - if (m_EnumerableTestState == null) - { - m_EnumerableTestState = CreateInstance(); - } - context.EnumerableTestState = m_EnumerableTestState; - - if (!m_RunningTests) - { - m_RunStartedEvent.Invoke(m_Runner.LoadedTest); - } - - if (m_ConstructDelegator == null) - m_ConstructDelegator = new ConstructDelegator(m_TestRunnerStateSerializer); - - Reflect.ConstructorCallWrapper = m_ConstructDelegator.Delegate; - m_TestStartedEvent.AddListener(TestStartedEvent); - m_TestFinishedEvent.AddListener(TestFinishedEvent); - - AssemblyReloadEvents.beforeAssemblyReload += OnBeforeAssemblyReload; - - RunningTests = true; - - EditorApplication.LockReloadAssemblies(); - - var testListenerWrapper = new TestListenerWrapper(m_TestStartedEvent, m_TestFinishedEvent); - m_RunStep = m_Runner.Run(testListenerWrapper, GetFilter()).GetEnumerator(); - m_RunningTests = true; - - if (!RunningSynchronously) - EditorApplication.update += TestConsumer; - } - - public void CompleteSynchronously() - { - while (!m_Runner.IsTestComplete) - TestConsumer(); - } - - private void OnBeforeAssemblyReload() - { - EditorApplication.update -= TestConsumer; - - if (m_ExecuteOnEnable) - { - AssemblyReloadEvents.beforeAssemblyReload -= OnBeforeAssemblyReload; - return; - } - - if (m_Runner != null && m_Runner.TopLevelWorkItem != null) - m_Runner.TopLevelWorkItem.ResultedInDomainReload = true; - - if (RunningTests) - { - Debug.LogError("TestRunner: Unexpected assembly reload happened while running tests"); - - EditorUtility.ClearProgressBar(); - - if (m_Runner.GetCurrentContext() != null && m_Runner.GetCurrentContext().CurrentResult != null) - { - m_Runner.GetCurrentContext().CurrentResult.SetResult(ResultState.Cancelled, "Unexpected assembly reload happened"); - } - OnRunCancel(); - } - } - - private bool RunningTests; - - private Stack StepStack = new Stack(); - - private bool MoveNextAndUpdateYieldObject() - { - var result = m_RunStep.MoveNext(); - - if (result) - { - m_CurrentYieldObject = m_RunStep.Current; - while (m_CurrentYieldObject is IEnumerator) // going deeper - { - var currentEnumerator = (IEnumerator)m_CurrentYieldObject; - - // go deeper and add parent to stack - StepStack.Push(m_RunStep); - - m_RunStep = currentEnumerator; - m_CurrentYieldObject = m_RunStep.Current; - } - - if (StepStack.Count > 0 && m_CurrentYieldObject != null) // not null and not IEnumerator, nested - { - Debug.LogError("EditMode test can only yield null, but not <" + m_CurrentYieldObject.GetType().Name + ">"); - } - - return true; - } - - if (StepStack.Count == 0) // done - return false; - - m_RunStep = StepStack.Pop(); // going up - return MoveNextAndUpdateYieldObject(); - } - - private void TestConsumer() - { - var moveNext = MoveNextAndUpdateYieldObject(); - - if (m_CurrentYieldObject != null) - { - InvokeDelegator(); - } - - if (!moveNext && !m_Runner.IsTestComplete) - { - CompleteTestRun(); - throw new IndexOutOfRangeException("There are no more elements to process and IsTestComplete is false"); - } - - if (m_Runner.IsTestComplete) - { - CompleteTestRun(); - } - } - - private void CompleteTestRun() - { - if (!RunningSynchronously) - EditorApplication.update -= TestConsumer; - - TestLauncherBase.ExecutePostBuildCleanupMethods(this.GetLoadedTests(), this.GetFilter(), Application.platform); - - m_RunFinishedEvent.Invoke(m_Runner.Result); - RunFinished = true; - - if (m_ConstructDelegator != null) - m_ConstructDelegator.DestroyCurrentTestObjectIfExists(); - Dispose(); - UnityWorkItemDataHolder.alreadyExecutedTests = null; - } - - private void OnRestoringTest() - { - var item = m_ExecutedTests.Find(t => t.fullName == UnityTestExecutionContext.CurrentContext.CurrentTest.FullName); - if (item != null) - { - item.RestoreTestResult(UnityTestExecutionContext.CurrentContext.CurrentResult); - } - } - - private static bool IsCancelled() - { - return UnityTestExecutionContext.CurrentContext.ExecutionStatus == TestExecutionStatus.AbortRequested || UnityTestExecutionContext.CurrentContext.ExecutionStatus == TestExecutionStatus.StopRequested; - } - - private void InvokeDelegator() - { - if (m_CurrentYieldObject == null) - { - return; - } - - if (IsCancelled()) - { - return; - } - - if (m_CurrentYieldObject is RestoreTestContextAfterDomainReload) - { - if (m_TestRunnerStateSerializer.ShouldRestore()) - { - m_TestRunnerStateSerializer.RestoreContext(); - } - - return; - } - - try - { - if (m_CurrentYieldObject is IEditModeTestYieldInstruction) - { - var editModeTestYieldInstruction = (IEditModeTestYieldInstruction)m_CurrentYieldObject; - if (editModeTestYieldInstruction.ExpectDomainReload) - { - PrepareForDomainReload(); - } - return; - } - } - catch (Exception e) - { - UnityTestExecutionContext.CurrentContext.CurrentResult.RecordException(e); - return; - } - - Debug.LogError("EditMode test can only yield null"); - } - - private void CompilationFailureWatch() - { - if (EditorApplication.isCompiling) - return; - - EditorApplication.update -= CompilationFailureWatch; - - if (EditorUtility.scriptCompilationFailed) - { - EditorUtility.ClearProgressBar(); - OnRunCancel(); - } - } - - private void PrepareForDomainReload() - { - m_TestRunnerStateSerializer.SaveContext(); - m_CurrentPC = EnumeratorStepHelper.GetEnumeratorPC(TestEnumerator.Enumerator); - m_ExecuteOnEnable = true; - - RunningTests = false; - } - - public T AddEventHandler() where T : ScriptableObject, ITestRunnerListener - { - var eventHandler = CreateInstance(); - eventHandler.hideFlags |= HideFlags.DontSave; - m_CallbackObjects.Add(eventHandler); - - AddListeners(eventHandler); - - return eventHandler; - } - - private void AddListeners(ITestRunnerListener eventHandler) - { - m_TestStartedEvent.AddListener(eventHandler.TestStarted); - m_TestFinishedEvent.AddListener(eventHandler.TestFinished); - m_RunStartedEvent.AddListener(eventHandler.RunStarted); - m_RunFinishedEvent.AddListener(eventHandler.RunFinished); - } - - public void Dispose() - { - Reflect.MethodCallWrapper = null; - EditorApplication.update -= TestConsumer; - - DestroyImmediate(this); - - if (m_CallbackObjects != null) - { - foreach (var obj in m_CallbackObjects) - { - DestroyImmediate(obj); - } - m_CallbackObjects.Clear(); - } - RunningTests = false; - EditorApplication.UnlockReloadAssemblies(); - } - - public void OnRunCancel() - { - UnityWorkItemDataHolder.alreadyExecutedTests = null; - m_ExecuteOnEnable = false; - m_Runner.StopRun(); - RunFinished = true; - } - - public ITest GetLoadedTests() - { - return m_Runner.LoadedTest; - } - - public ITestFilter GetFilter() - { - return new OrFilter(m_Filters.Select(filter => filter.ToRuntimeTestRunnerFilter(RunningSynchronously).BuildNUnitFilter()).ToArray()); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/EditmodeWorkItemFactory.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/EditmodeWorkItemFactory.cs deleted file mode 100644 index a81fcdc..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/EditmodeWorkItemFactory.cs +++ /dev/null @@ -1,14 +0,0 @@ -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using UnityEngine.TestRunner.NUnitExtensions.Runner; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class EditmodeWorkItemFactory : WorkItemFactory - { - protected override UnityWorkItem Create(TestMethod method, ITestFilter filter, ITest loadedTest) - { - return new EditorEnumeratorTestWorkItem(method, filter); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/EditorEnumeratorTestWorkItem.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/EditorEnumeratorTestWorkItem.cs deleted file mode 100644 index c44475f..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/EditorEnumeratorTestWorkItem.cs +++ /dev/null @@ -1,181 +0,0 @@ -using System; -using System.Collections; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Commands; -using NUnit.Framework.Internal.Execution; -using UnityEngine; -using UnityEngine.TestRunner.NUnitExtensions.Runner; -using UnityEngine.TestTools; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class EditorEnumeratorTestWorkItem : UnityWorkItem - { - private TestCommand m_Command; - public EditorEnumeratorTestWorkItem(TestMethod test, ITestFilter filter) - : base(test, null) - { - m_Command = TestCommandBuilder.BuildTestCommand(test, filter); - } - - private static IEnumerableTestMethodCommand FindFirstIEnumerableTestMethodCommand(TestCommand command) - { - if (command == null) - { - return null; - } - - if (command is IEnumerableTestMethodCommand) - { - return (IEnumerableTestMethodCommand)command; - } - - if (command is DelegatingTestCommand) - { - var delegatingTestCommand = (DelegatingTestCommand)command; - return FindFirstIEnumerableTestMethodCommand(delegatingTestCommand.GetInnerCommand()); - } - return null; - } - - protected override IEnumerable PerformWork() - { - if (IsCancelledRun()) - { - yield break; - } - - if (m_DontRunRestoringResult) - { - if (EditModeTestCallbacks.RestoringTestContext == null) - { - throw new NullReferenceException("RestoringTestContext is not set"); - } - EditModeTestCallbacks.RestoringTestContext(); - Result = Context.CurrentResult; - yield break; - } - - try - { - if (IsCancelledRun()) - { - yield break; - } - - if (m_Command is SkipCommand) - { - m_Command.Execute(Context); - Result = Context.CurrentResult; - yield break; - } - - //Check if we can execute this test - var firstEnumerableCommand = FindFirstIEnumerableTestMethodCommand(m_Command); - if (firstEnumerableCommand == null) - { - Context.CurrentResult.SetResult(ResultState.Error, "Returning IEnumerator but not using test attribute supporting this"); - yield break; - } - if (Context.TestCaseTimeout == 0) - { - Context.TestCaseTimeout = k_DefaultTimeout; - } - if (m_Command.Test.Method.ReturnType.IsType(typeof(IEnumerator))) - { - if (m_Command is ApplyChangesToContextCommand) - { - var applyChangesToContextCommand = ((ApplyChangesToContextCommand)m_Command); - applyChangesToContextCommand.ApplyChanges(Context); - m_Command = applyChangesToContextCommand.GetInnerCommand(); - } - - var innerCommand = m_Command as IEnumerableTestMethodCommand; - if (innerCommand == null) - { - Debug.Log("failed getting innerCommand"); - throw new Exception("Tests returning IEnumerator can only use test attributes handling those"); - } - - foreach (var workItemStep in innerCommand.ExecuteEnumerable(Context)) - { - if (IsCancelledRun()) - { - yield break; - } - - if (workItemStep is TestEnumerator) - { - if (EnumeratorStepHelper.UpdateEnumeratorPcIfNeeded(TestEnumerator.Enumerator)) - { - yield return new RestoreTestContextAfterDomainReload(); - } - continue; - } - - if (workItemStep is AsyncOperation) - { - var asyncOperation = (AsyncOperation)workItemStep; - while (!asyncOperation.isDone) - { - if (IsCancelledRun()) - { - yield break; - } - - yield return null; - } - continue; - } - - ResultedInDomainReload = false; - - if (workItemStep is IEditModeTestYieldInstruction) - { - var editModeTestYieldInstruction = (IEditModeTestYieldInstruction)workItemStep; - yield return editModeTestYieldInstruction; - var enumerator = editModeTestYieldInstruction.Perform(); - while (true) - { - bool moveNext; - try - { - moveNext = enumerator.MoveNext(); - } - catch (Exception e) - { - Context.CurrentResult.RecordException(e); - break; - } - - if (!moveNext) - { - break; - } - yield return null; - } - } - else - { - yield return workItemStep; - } - } - - Result = Context.CurrentResult; - EditorApplication.isPlaying = false; - yield return null; - } - } - finally - { - WorkItemComplete(); - } - } - - private bool IsCancelledRun() - { - return Context.ExecutionStatus == TestExecutionStatus.AbortRequested || Context.ExecutionStatus == TestExecutionStatus.StopRequested; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/EnumeratorStepHelper.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/EnumeratorStepHelper.cs deleted file mode 100644 index 0a78ba6..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/EnumeratorStepHelper.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System.Collections; -using System.Reflection; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class EnumeratorStepHelper - { - private static int m_PC; - - public static void SetEnumeratorPC(int pc) - { - m_PC = pc; - } - - /// - /// Gets the current enumerator PC - /// - /// - /// The PC - /// 0 if no current Enumeration - /// - public static int GetEnumeratorPC(IEnumerator enumerator) - { - if (enumerator == null) - { - return 0; - } - return (int)GetPCFieldInfo(enumerator).GetValue(enumerator); - } - - public static bool UpdateEnumeratorPcIfNeeded(IEnumerator enumerator) - { - if (m_PC != 0) - { - GetPCFieldInfo(enumerator).SetValue(enumerator, m_PC); - m_PC = 0; - return true; - } - return false; - } - - private static FieldInfo GetPCFieldInfo(IEnumerator enumerator) - { - var field = enumerator.GetType().GetField("$PC", BindingFlags.NonPublic | BindingFlags.Instance); - if (field == null) // Roslyn - field = enumerator.GetType().GetField("<>1__state", BindingFlags.NonPublic | BindingFlags.Instance); - - return field; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Messages/EnterPlayMode.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Messages/EnterPlayMode.cs deleted file mode 100644 index 31a49e1..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Messages/EnterPlayMode.cs +++ /dev/null @@ -1,57 +0,0 @@ -using System; -using System.Collections; -using UnityEditor; - -namespace UnityEngine.TestTools -{ - /// - /// Implements . Creates a yield instruction to enter Play Mode. - /// - public class EnterPlayMode : IEditModeTestYieldInstruction - { - /// - /// Returns true if the instruction expects a domain reload to occur. - /// - public bool ExpectDomainReload { get; } - /// - /// Returns true if the instruction expects the Unity Editor to be in **Play Mode**. - /// - public bool ExpectedPlaymodeState { get; private set; } - /// - /// When creating an Editor test that uses the UnityTest attribute, use this to trigger the Editor to enter Play Mode. - /// Throws an exception if the Editor is already in Play Mode or if there is a script compilation error. - /// - /// A flag indication whether to expect a domain reload. - public EnterPlayMode(bool expectDomainReload = true) - { - ExpectDomainReload = expectDomainReload; - } - - /// - /// Performs the multi-step instructions of entering PlayMode. - /// - /// An IEnumerator with the async steps. - /// An exception is thrown if the editor is already in PlayMode or if script compilation failed. - public IEnumerator Perform() - { - if (EditorApplication.isPlaying) - { - throw new Exception("Editor is already in PlayMode"); - } - if (EditorUtility.scriptCompilationFailed) - { - throw new Exception("Script compilation failed"); - } - yield return null; - ExpectedPlaymodeState = true; - - EditorApplication.UnlockReloadAssemblies(); - EditorApplication.isPlaying = true; - - while (!EditorApplication.isPlaying) - { - yield return null; - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Messages/ExitPlayMode.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Messages/ExitPlayMode.cs deleted file mode 100644 index 5394d6e..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Messages/ExitPlayMode.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using System.Collections; -using UnityEditor; - -namespace UnityEngine.TestTools -{ - /// - /// Implements . A new instance of the class is a yield instruction to exit Play Mode. - /// - public class ExitPlayMode : IEditModeTestYieldInstruction - { - /// - /// Gets the value of ExpectDomainReload - /// - public bool ExpectDomainReload { get; } - /// - /// Gets the value of ExpectedPlaymodeState - /// - public bool ExpectedPlaymodeState { get; private set; } - /// - /// Sets ExpectDomainReload and ExpectedPlaymodeState to false. - /// - public ExitPlayMode() - { - ExpectDomainReload = false; - ExpectedPlaymodeState = false; - } - - /// - /// Performs the multi-step instruction of exiting PlayMode. - /// - /// An IEnumerator with the async steps. - /// An exception is thrown if the editor is not in PlayMode. - public IEnumerator Perform() - { - if (!EditorApplication.isPlayingOrWillChangePlaymode) - { - throw new Exception("Editor is already in EditMode"); - } - - EditorApplication.isPlaying = false; - while (EditorApplication.isPlaying) - { - yield return null; - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Messages/RecompileScripts.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Messages/RecompileScripts.cs deleted file mode 100644 index 0206ef5..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Messages/RecompileScripts.cs +++ /dev/null @@ -1,111 +0,0 @@ -using System; -using System.Collections; -using UnityEditor; - -namespace UnityEngine.TestTools -{ - /// - /// `RecompileScripts` is an that you can yield in Edit Mode tests. It lets you trigger a recompilation of scripts in the Unity Editor. - /// - public class RecompileScripts : IEditModeTestYieldInstruction - { - /// - /// Creates a new instance of the `RecompileScripts` yield instruction. - /// - /// - /// [UnitySetUp] - /// public IEnumerator SetUp() - /// { - /// using (var file = File.CreateText("Assets/temp/myScript.cs")) - /// { - /// file.Write("public class ATempClass { }"); - /// } - /// AssetDatabase.Refresh(); - /// yield return new RecompileScripts(); - /// } - /// - /// - /// - public RecompileScripts() : this(true) - { - } - /// - /// Creates a new instance of the `RecompileScripts` yield instruction. - /// - /// This parameter indicates if you expect a script compilation to start (defaults to true). If a script compilation does not start and `expectScriptCompilation` is true, then it throws an exception. - public RecompileScripts(bool expectScriptCompilation) : this(expectScriptCompilation, true) - { - } - /// - /// Creates a new instance of the `RecompileScripts` yield instruction. - /// - /// This parameter indicates if you expect a script compilation to start (defaults to true). If a script compilation does not start and `expectScriptCompilation` is `true`, then it throws an exception. - /// This parameter indicates if you expect a script compilation to succeed. If not succeeded then an exception will be thrown. - public RecompileScripts(bool expectScriptCompilation, bool expectScriptCompilationSuccess) - { - ExpectScriptCompilation = expectScriptCompilation; - ExpectScriptCompilationSuccess = expectScriptCompilationSuccess; - ExpectDomainReload = true; - } - - /// - /// Returns true if the instruction expects a domain reload to occur. - /// - public bool ExpectDomainReload { get; private set; } - /// - /// Returns true if the instruction expects the Unity Editor to be in **Play Mode**. - /// - public bool ExpectedPlaymodeState { get; } - /// - /// Indicates whether a script compilation is expected. - /// - public bool ExpectScriptCompilation { get; private set; } - /// - /// Indicates whether the expected script compilation is expected to succeed. - /// - public bool ExpectScriptCompilationSuccess { get; private set; } - - /// - /// The current active instance of the RecompileScripts yield instruction. - /// - public static RecompileScripts Current { get; private set; } - - /// - /// Perform the multi step instruction of triggering a recompilation of scripts and waiting for its completion. - /// - /// An IEnumerator with the async steps. - /// Throws an exception if the editor does not need to recompile scripts or if the script compilation failed when expected to succeed. - public IEnumerator Perform() - { - Current = this; - - // We need to yield, to give the test runner a chance to prepare for the domain reload - // If the script compilation happens very fast, then EditModeRunner.MoveNextAndUpdateYieldObject will not have a chance to set m_CurrentYieldObject - // This really should be fixed in EditModeRunner.MoveNextAndUpdateYieldObject - yield return null; - - AssetDatabase.Refresh(); - - if (ExpectScriptCompilation && !EditorApplication.isCompiling) - { - Current = null; - throw new Exception("Editor does not need to recompile scripts"); - } - - EditorApplication.UnlockReloadAssemblies(); - - while (EditorApplication.isCompiling) - { - yield return null; - } - - Current = null; - - if (ExpectScriptCompilationSuccess && EditorUtility.scriptCompilationFailed) - { - EditorApplication.LockReloadAssemblies(); - throw new Exception("Script compilation failed"); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Messages/WaitForDomainReload.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Messages/WaitForDomainReload.cs deleted file mode 100644 index 40f16bf..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Messages/WaitForDomainReload.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System; -using System.Collections; -using UnityEditor; -using UnityEditorInternal; - -namespace UnityEngine.TestTools -{ - /// - /// WaitForDomainReload is an that you can yield in Edit Mode tests. It delays the execution of scripts until after an incoming domain reload. If the domain reload results in a script compilation failure, then it throws an exception. - /// - public class WaitForDomainReload : IEditModeTestYieldInstruction - { - /// - /// Create a new instance of the `WaitForDomainReload` yield instruction. - /// - /// - /// [UnitySetUp] - /// public IEnumerator SetUp() - /// { - /// File.Copy("Resources/MyDll.dll", @"Assets/MyDll.dll", true); // Trigger a domain reload. - /// AssetDatabase.Refresh(); - /// yield return new WaitForDomainReload(); - /// } - /// - /// - /// - public WaitForDomainReload() - { - ExpectDomainReload = true; - } - - /// - /// Returns true if the instruction expects a domain reload to occur. - /// - public bool ExpectDomainReload { get;  } - /// - /// Returns true if the instruction expects the Unity Editor to be in **Play Mode**. - /// - public bool ExpectedPlaymodeState { get; } - - /// - /// Perform the multi step action of waiting for a domain reload. - /// - /// An IEnumerator with steps. - /// Throws an exception if script compilation failed or if the expected domain reload did not occur. - public IEnumerator Perform() - { - EditorApplication.UnlockReloadAssemblies(); - - while (InternalEditorUtility.IsScriptReloadRequested() || EditorApplication.isCompiling) - { - yield return null; - } - - // Add this point the domain reload should have occured and stopped any further progress on the instruction. - EditorApplication.LockReloadAssemblies(); - throw new Exception( - EditorUtility.scriptCompilationFailed ? - "Script compilation failed" : - "Expected domain reload, but it did not occur"); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/CachingTestListProvider.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/CachingTestListProvider.cs deleted file mode 100644 index 9ec2333..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/CachingTestListProvider.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using System.Collections.Generic; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine.TestRunner.NUnitExtensions; -using UnityEngine.TestTools; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class CachingTestListProvider - { - private readonly ITestListProvider m_InnerTestListProvider; - private readonly ITestListCache m_TestListCache; - private readonly ITestAdaptorFactory m_TestAdaptorFactory; - public CachingTestListProvider(ITestListProvider innerTestListProvider, ITestListCache testListCache, ITestAdaptorFactory testAdaptorFactory) - { - m_InnerTestListProvider = innerTestListProvider; - m_TestListCache = testListCache; - m_TestAdaptorFactory = testAdaptorFactory; - } - - public IEnumerator GetTestListAsync(TestPlatform platform) - { - var testFromCache = m_TestListCache.GetTestFromCacheAsync(platform); - while (testFromCache.MoveNext()) - { - yield return null; - } - - - if (testFromCache.Current != null) - { - yield return testFromCache.Current; - } - else - { - var test = m_InnerTestListProvider.GetTestListAsync(platform); - while (test.MoveNext()) - { - yield return null; - } - - test.Current.ParseForNameDuplicates(); - m_TestListCache.CacheTest(platform, test.Current); - yield return m_TestAdaptorFactory.Create(test.Current); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/EditorAssembliesProxy.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/EditorAssembliesProxy.cs deleted file mode 100644 index ee0e5dc..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/EditorAssembliesProxy.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.Linq; -using UnityEngine.TestTools.Utils; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class EditorAssembliesProxy : IEditorAssembliesProxy - { - public IAssemblyWrapper[] loadedAssemblies - { - get { return EditorAssemblies.loadedAssemblies.OrderBy(a => a.FullName).Select(x => new EditorAssemblyWrapper(x)).ToArray(); } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/EditorAssemblyWrapper.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/EditorAssemblyWrapper.cs deleted file mode 100644 index 8a18b12..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/EditorAssemblyWrapper.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System.Reflection; -using UnityEngine.TestTools.Utils; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class EditorAssemblyWrapper : AssemblyWrapper - { - public EditorAssemblyWrapper(Assembly assembly) - : base(assembly) {} - - public override AssemblyName[] GetReferencedAssemblies() - { - return Assembly.GetReferencedAssemblies(); - } - - public override string Location { get { return Assembly.Location; } } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/EditorCompilationInterfaceProxy.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/EditorCompilationInterfaceProxy.cs deleted file mode 100644 index 5420719..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/EditorCompilationInterfaceProxy.cs +++ /dev/null @@ -1,17 +0,0 @@ -using UnityEditor.Scripting.ScriptCompilation; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class EditorCompilationInterfaceProxy : IEditorCompilationInterfaceProxy - { - public ScriptAssembly[] GetAllEditorScriptAssemblies() - { - return EditorCompilationInterface.Instance.GetAllEditorScriptAssemblies(EditorCompilationInterface.GetAdditionalEditorScriptCompilationOptions()); - } - - public PrecompiledAssembly[] GetAllPrecompiledAssemblies() - { - return EditorCompilationInterface.Instance.GetAllPrecompiledAssemblies(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/EditorLoadedTestAssemblyProvider.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/EditorLoadedTestAssemblyProvider.cs deleted file mode 100644 index cffe42d..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/EditorLoadedTestAssemblyProvider.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System.Collections.Generic; -using System.IO; -using System.Linq; -using UnityEditor.Scripting.ScriptCompilation; -using UnityEngine.TestTools; -using UnityEngine.TestTools.Utils; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class EditorLoadedTestAssemblyProvider : IEditorLoadedTestAssemblyProvider - { - private const string k_NunitAssemblyName = "nunit.framework"; - private const string k_TestRunnerAssemblyName = "UnityEngine.TestRunner"; - internal const string k_PerformanceTestingAssemblyName = "Unity.PerformanceTesting"; - - private readonly IEditorAssembliesProxy m_EditorAssembliesProxy; - private readonly ScriptAssembly[] m_AllEditorScriptAssemblies; - private readonly PrecompiledAssembly[] m_AllPrecompiledAssemblies; - - public EditorLoadedTestAssemblyProvider(IEditorCompilationInterfaceProxy compilationInterfaceProxy, IEditorAssembliesProxy editorAssembliesProxy) - { - m_EditorAssembliesProxy = editorAssembliesProxy; - m_AllEditorScriptAssemblies = compilationInterfaceProxy.GetAllEditorScriptAssemblies(); - m_AllPrecompiledAssemblies = compilationInterfaceProxy.GetAllPrecompiledAssemblies(); - } - - public List GetAssembliesGroupedByType(TestPlatform mode) - { - var assemblies = GetAssembliesGroupedByTypeAsync(mode); - while (assemblies.MoveNext()) - { - } - - return assemblies.Current.Where(pair => mode.IsFlagIncluded(pair.Key)).SelectMany(pair => pair.Value).ToList(); - } - - public IEnumerator>> GetAssembliesGroupedByTypeAsync(TestPlatform mode) - { - IAssemblyWrapper[] loadedAssemblies = m_EditorAssembliesProxy.loadedAssemblies; - - IDictionary> result = new Dictionary>() - { - {TestPlatform.EditMode, new List() }, - {TestPlatform.PlayMode, new List() } - }; - - foreach (var loadedAssembly in loadedAssemblies) - { - if (loadedAssembly.GetReferencedAssemblies().Any(x => x.Name == k_NunitAssemblyName || x.Name == k_TestRunnerAssemblyName || x.Name == k_PerformanceTestingAssemblyName)) - { - var assemblyName = new FileInfo(loadedAssembly.Location).Name; - var scriptAssemblies = m_AllEditorScriptAssemblies.Where(x => x.Filename == assemblyName).ToList(); - var precompiledAssemblies = m_AllPrecompiledAssemblies.Where(x => new FileInfo(x.Path).Name == assemblyName).ToList(); - if (scriptAssemblies.Count < 1 && precompiledAssemblies.Count < 1) - { - continue; - } - - var assemblyFlags = scriptAssemblies.Any() ? scriptAssemblies.Single().Flags : precompiledAssemblies.Single().Flags; - var assemblyType = (assemblyFlags & AssemblyFlags.EditorOnly) == AssemblyFlags.EditorOnly ? TestPlatform.EditMode : TestPlatform.PlayMode; - result[assemblyType].Add(loadedAssembly); - yield return null; - } - } - - yield return result; - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/IEditorAssembliesProxy.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/IEditorAssembliesProxy.cs deleted file mode 100644 index 30dc758..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/IEditorAssembliesProxy.cs +++ /dev/null @@ -1,9 +0,0 @@ -using UnityEngine.TestTools.Utils; - -namespace UnityEditor.TestTools.TestRunner -{ - internal interface IEditorAssembliesProxy - { - IAssemblyWrapper[] loadedAssemblies { get; } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/IEditorCompilationInterfaceProxy.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/IEditorCompilationInterfaceProxy.cs deleted file mode 100644 index 330e83b..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/IEditorCompilationInterfaceProxy.cs +++ /dev/null @@ -1,10 +0,0 @@ -using UnityEditor.Scripting.ScriptCompilation; - -namespace UnityEditor.TestTools.TestRunner -{ - internal interface IEditorCompilationInterfaceProxy - { - ScriptAssembly[] GetAllEditorScriptAssemblies(); - PrecompiledAssembly[] GetAllPrecompiledAssemblies(); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/IEditorLoadedTestAssemblyProvider.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/IEditorLoadedTestAssemblyProvider.cs deleted file mode 100644 index 1e06494..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/IEditorLoadedTestAssemblyProvider.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Collections.Generic; -using UnityEngine.TestTools; -using UnityEngine.TestTools.Utils; - -namespace UnityEditor.TestTools.TestRunner -{ - internal interface IEditorLoadedTestAssemblyProvider - { - List GetAssembliesGroupedByType(TestPlatform mode); - IEnumerator>> GetAssembliesGroupedByTypeAsync(TestPlatform mode); - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/ITestListCache.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/ITestListCache.cs deleted file mode 100644 index 9d61724..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/ITestListCache.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.Collections.Generic; -using NUnit.Framework.Interfaces; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine.TestTools; - -namespace UnityEditor.TestTools.TestRunner -{ - interface ITestListCache - { - void CacheTest(TestPlatform platform, ITest test); - IEnumerator GetTestFromCacheAsync(TestPlatform platform); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/ITestListCacheData.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/ITestListCacheData.cs deleted file mode 100644 index 3aa14e6..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/ITestListCacheData.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.Collections.Generic; -using NUnit.Framework.Interfaces; -using UnityEngine.TestRunner.TestLaunchers; -using UnityEngine.TestTools; - -namespace UnityEditor.TestTools.TestRunner -{ - interface ITestListCacheData - { - List platforms { get; } - List cachedData { get; } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/ITestListProvider.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/ITestListProvider.cs deleted file mode 100644 index 5657aca..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/ITestListProvider.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System.Collections.Generic; -using NUnit.Framework.Interfaces; -using UnityEngine.TestTools; - -namespace UnityEditor.TestTools.TestRunner -{ - interface ITestListProvider - { - IEnumerator GetTestListAsync(TestPlatform platform); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/TestListCache.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/TestListCache.cs deleted file mode 100644 index 897b6b3..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/TestListCache.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System.Collections.Generic; -using NUnit.Framework.Interfaces; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine.TestRunner.TestLaunchers; -using UnityEngine.TestTools; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class TestListCache : ITestListCache - { - private readonly ITestAdaptorFactory m_TestAdaptorFactory; - private readonly IRemoteTestResultDataFactory m_TestResultDataFactory; - private readonly ITestListCacheData m_TestListCacheData; - - public TestListCache(ITestAdaptorFactory testAdaptorFactory, IRemoteTestResultDataFactory testResultDataFactory, ITestListCacheData testListCacheData) - { - m_TestAdaptorFactory = testAdaptorFactory; - m_TestResultDataFactory = testResultDataFactory; - m_TestListCacheData = testListCacheData; - } - - public void CacheTest(TestPlatform platform, ITest test) - { - var index = m_TestListCacheData.platforms.IndexOf(platform); - if (index < 0) - { - m_TestListCacheData.cachedData.Add(test); - m_TestListCacheData.platforms.Add(platform); - } - else - { - m_TestListCacheData.cachedData[index] = test; - } - } - - public IEnumerator GetTestFromCacheAsync(TestPlatform platform) - { - var index = m_TestListCacheData.platforms.IndexOf(platform); - if (index < 0) - { - yield return null; - yield break; - } - - var testData = m_TestListCacheData.cachedData[index]; - yield return m_TestAdaptorFactory.Create(testData); - } - - [Callbacks.DidReloadScripts] - private static void ScriptReloaded() - { - TestListCacheData.instance.cachedData.Clear(); - TestListCacheData.instance.platforms.Clear(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/TestListCacheData.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/TestListCacheData.cs deleted file mode 100644 index 8081b57..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/TestListCacheData.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.Collections.Generic; -using NUnit.Framework.Interfaces; -using UnityEngine; -using UnityEngine.TestRunner.TestLaunchers; -using UnityEngine.TestTools; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class TestListCacheData : ScriptableSingleton, ITestListCacheData - { - [SerializeField] - private List m_Platforms = new List(); - - [SerializeField] - private List m_CachedData = new List(); - - public List platforms - { - get { return m_Platforms; } - } - - public List cachedData - { - get { return m_CachedData; } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/TestListJob.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/TestListJob.cs deleted file mode 100644 index 1864c78..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/TestListJob.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.Collections.Generic; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine.TestTools; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class TestListJob - { - private CachingTestListProvider m_TestListProvider; - private TestPlatform m_Platform; - private Action m_Callback; - private IEnumerator m_ResultEnumerator; - public TestListJob(CachingTestListProvider testListProvider, TestPlatform platform, Action callback) - { - m_TestListProvider = testListProvider; - m_Platform = platform; - m_Callback = callback; - } - - public void Start() - { - m_ResultEnumerator = m_TestListProvider.GetTestListAsync(m_Platform); - EditorApplication.update += EditorUpdate; - } - - private void EditorUpdate() - { - if (!m_ResultEnumerator.MoveNext()) - { - m_Callback(m_ResultEnumerator.Current); - EditorApplication.update -= EditorUpdate; - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/TestListProvider.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/TestListProvider.cs deleted file mode 100644 index e1402a6..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunner/Utils/TestListProvider.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using NUnit.Framework.Interfaces; -using UnityEngine.TestTools; -using UnityEngine.TestTools.NUnitExtensions; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class TestListProvider : ITestListProvider - { - private readonly EditorLoadedTestAssemblyProvider m_AssemblyProvider; - private readonly UnityTestAssemblyBuilder m_AssemblyBuilder; - - public TestListProvider(EditorLoadedTestAssemblyProvider assemblyProvider, UnityTestAssemblyBuilder assemblyBuilder) - { - m_AssemblyProvider = assemblyProvider; - m_AssemblyBuilder = assemblyBuilder; - } - - public IEnumerator GetTestListAsync(TestPlatform platform) - { - var assembliesTask = m_AssemblyProvider.GetAssembliesGroupedByTypeAsync(platform); - while (assembliesTask.MoveNext()) - { - yield return null; - } - - var assemblies = assembliesTask.Current.Where(pair => platform.IsFlagIncluded(pair.Key)) - .SelectMany(pair => pair.Value.Select(assemblyInfo => Tuple.Create(assemblyInfo.Assembly, pair.Key))).ToArray(); - - var settings = UnityTestAssemblyBuilder.GetNUnitTestBuilderSettings(platform); - var test = m_AssemblyBuilder.BuildAsync(assemblies.Select(a => a.Item1).ToArray(), assemblies.Select(a => a.Item2).ToArray(), settings); - while (test.MoveNext()) - { - yield return null; - } - - yield return test.Current; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunnerWindow.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunnerWindow.cs deleted file mode 100644 index 34b1857..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunnerWindow.cs +++ /dev/null @@ -1,275 +0,0 @@ -using System; -using UnityEditor.Callbacks; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEditor.TestTools.TestRunner.GUI; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner -{ - /// - /// The TestRunnerWindow class is repsonsible for drawing the Test Runner window. - /// - [Serializable] - public class TestRunnerWindow : EditorWindow, IHasCustomMenu - { - internal static class Styles - { - public static GUIStyle info; - public static GUIStyle testList; - - static Styles() - { - info = new GUIStyle(EditorStyles.wordWrappedLabel); - info.wordWrap = false; - info.stretchHeight = true; - info.margin.right = 15; - - testList = new GUIStyle("CN Box"); - testList.margin.top = 0; - testList.padding.left = 3; - } - } - - private readonly GUIContent m_GUIHorizontalSplit = EditorGUIUtility.TrTextContent("Horizontal layout"); - private readonly GUIContent m_GUIVerticalSplit = EditorGUIUtility.TrTextContent("Vertical layout"); - private readonly GUIContent m_GUIEnableaPlaymodeTestsRunner = EditorGUIUtility.TrTextContent("Enable playmode tests for all assemblies"); - private readonly GUIContent m_GUIDisablePlaymodeTestsRunner = EditorGUIUtility.TrTextContent("Disable playmode tests for all assemblies"); - private readonly GUIContent m_GUIRunPlayModeTestAsEditModeTests = EditorGUIUtility.TrTextContent("Run playmode tests as editmode tests"); - - internal static TestRunnerWindow s_Instance; - private bool m_IsBuilding; - [NonSerialized] - private bool m_Enabled; - internal TestFilterSettings filterSettings; - - [SerializeField] - private SplitterState m_Spl = new SplitterState(new float[] { 75, 25 }, new[] { 32, 32 }, null); - - private TestRunnerWindowSettings m_Settings; - - private enum TestRunnerMenuLabels - { - PlayMode = 0, - EditMode = 1 - } - [SerializeField] - private int m_TestTypeToolbarIndex = (int)TestRunnerMenuLabels.EditMode; - [SerializeField] - private PlayModeTestListGUI m_PlayModeTestListGUI; - [SerializeField] - private EditModeTestListGUI m_EditModeTestListGUI; - - internal TestListGUI m_SelectedTestTypes; - - private ITestRunnerApi m_testRunnerApi; - - private WindowResultUpdater m_WindowResultUpdater; - - /// - /// Launches the Test Runner window. - /// - [MenuItem("Window/General/Test Runner", false, 201, false)] - public static void ShowWindow() - { - s_Instance = GetWindow("Test Runner"); - s_Instance.Show(); - } - - internal static void ShowPlaymodeTestsRunnerWindowCodeBased() - { - ShowWindow(); - } - - static TestRunnerWindow() - { - InitBackgroundRunners(); - } - - private static void InitBackgroundRunners() - { - EditorApplication.playModeStateChanged -= OnPlayModeStateChanged; - EditorApplication.playModeStateChanged += OnPlayModeStateChanged; - } - - [DidReloadScripts] - private static void CompilationCallback() - { - UpdateWindow(); - } - - private static void OnPlayModeStateChanged(PlayModeStateChange state) - { - if (s_Instance && state == PlayModeStateChange.EnteredEditMode && s_Instance.m_SelectedTestTypes.HasTreeData()) - { - //repaint message details after exit playmode - s_Instance.m_SelectedTestTypes.TestSelectionCallback(s_Instance.m_SelectedTestTypes.m_TestListState.selectedIDs.ToArray()); - s_Instance.Repaint(); - } - } - - internal void OnDestroy() - { - EditorApplication.playModeStateChanged -= OnPlayModeStateChanged; - } - - private void OnEnable() - { - s_Instance = this; - SelectTestListGUI(m_TestTypeToolbarIndex); - - m_testRunnerApi = ScriptableObject.CreateInstance(); - m_WindowResultUpdater = new WindowResultUpdater(); - m_testRunnerApi.RegisterCallbacks(m_WindowResultUpdater); - } - - private void Enable() - { - m_Settings = new TestRunnerWindowSettings("UnityEditor.PlaymodeTestsRunnerWindow"); - filterSettings = new TestFilterSettings("UnityTest.IntegrationTestsRunnerWindow"); - - if (m_SelectedTestTypes == null) - { - SelectTestListGUI(m_TestTypeToolbarIndex); - } - - StartRetrieveTestList(); - m_SelectedTestTypes.Reload(); - m_Enabled = true; - } - - private void SelectTestListGUI(int testTypeToolbarIndex) - { - if (testTypeToolbarIndex == (int)TestRunnerMenuLabels.PlayMode) - { - if (m_PlayModeTestListGUI == null) - { - m_PlayModeTestListGUI = new PlayModeTestListGUI(); - } - m_SelectedTestTypes = m_PlayModeTestListGUI; - } - else if (testTypeToolbarIndex == (int)TestRunnerMenuLabels.EditMode) - { - if (m_EditModeTestListGUI == null) - { - m_EditModeTestListGUI = new EditModeTestListGUI(); - } - m_SelectedTestTypes = m_EditModeTestListGUI; - } - } - - private void StartRetrieveTestList() - { - if (!m_SelectedTestTypes.HasTreeData()) - { - var listToInit = m_SelectedTestTypes; - m_testRunnerApi.RetrieveTestList(m_SelectedTestTypes.TestMode, (rootTest) => - { - listToInit.Init(this, rootTest); - listToInit.Reload(); - }); - } - } - - internal void OnGUI() - { - if (!m_Enabled) - { - Enable(); - } - - if (BuildPipeline.isBuildingPlayer) - { - m_IsBuilding = true; - } - else if (m_IsBuilding) - { - m_IsBuilding = false; - Repaint(); - } - - EditorGUILayout.BeginHorizontal(); - GUILayout.FlexibleSpace(); - var selectedIndex = m_TestTypeToolbarIndex; - m_TestTypeToolbarIndex = GUILayout.Toolbar(m_TestTypeToolbarIndex, Enum.GetNames(typeof(TestRunnerMenuLabels)), "LargeButton", UnityEngine.GUI.ToolbarButtonSize.FitToContents); - GUILayout.FlexibleSpace(); - EditorGUILayout.EndHorizontal(); - - if (selectedIndex != m_TestTypeToolbarIndex) - { - SelectTestListGUI(m_TestTypeToolbarIndex); - StartRetrieveTestList(); - } - - EditorGUILayout.BeginVertical(); - using (new EditorGUI.DisabledScope(EditorApplication.isPlayingOrWillChangePlaymode)) - { - m_SelectedTestTypes.PrintHeadPanel(); - } - EditorGUILayout.EndVertical(); - - if (m_Settings.verticalSplit) - SplitterGUILayout.BeginVerticalSplit(m_Spl); - else - SplitterGUILayout.BeginHorizontalSplit(m_Spl); - - EditorGUILayout.BeginVertical(); - EditorGUILayout.BeginVertical(Styles.testList); - m_SelectedTestTypes.RenderTestList(); - EditorGUILayout.EndVertical(); - EditorGUILayout.EndVertical(); - - m_SelectedTestTypes.RenderDetails(); - - if (m_Settings.verticalSplit) - SplitterGUILayout.EndVerticalSplit(); - else - SplitterGUILayout.EndHorizontalSplit(); - } - - /// - /// Adds additional menu items to the Test Runner window. - /// - /// The - public void AddItemsToMenu(GenericMenu menu) - { - menu.AddItem(m_GUIVerticalSplit, m_Settings.verticalSplit, m_Settings.ToggleVerticalSplit); - menu.AddItem(m_GUIHorizontalSplit, !m_Settings.verticalSplit, m_Settings.ToggleVerticalSplit); - - menu.AddSeparator(null); - - var playModeTestRunnerEnabled = PlayerSettings.playModeTestRunnerEnabled; - var currentActive = playModeTestRunnerEnabled ? m_GUIDisablePlaymodeTestsRunner : m_GUIEnableaPlaymodeTestsRunner; - - if (EditorPrefs.GetBool("InternalMode", false)) - { - menu.AddItem(m_GUIRunPlayModeTestAsEditModeTests, PlayerSettings.runPlayModeTestAsEditModeTest, () => - { - PlayerSettings.runPlayModeTestAsEditModeTest = !PlayerSettings.runPlayModeTestAsEditModeTest; - }); - } - - menu.AddItem(currentActive, false, () => - { - PlayerSettings.playModeTestRunnerEnabled = !playModeTestRunnerEnabled; - EditorUtility.DisplayDialog(currentActive.text, "You need to restart the editor now", "Ok"); - }); - } - - internal void RebuildUIFilter() - { - if (m_SelectedTestTypes != null && m_SelectedTestTypes.HasTreeData()) - { - m_SelectedTestTypes.RebuildUIFilter(); - } - } - - internal static void UpdateWindow() - { - if (s_Instance != null && s_Instance.m_SelectedTestTypes != null) - { - s_Instance.m_SelectedTestTypes.Repaint(); - s_Instance.Repaint(); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunnerWindowSettings.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunnerWindowSettings.cs deleted file mode 100644 index 2a52354..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestRunnerWindowSettings.cs +++ /dev/null @@ -1,26 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner -{ - internal class TestRunnerWindowSettings - { - public bool verticalSplit; - - private readonly string m_PrefsKey; - - public TestRunnerWindowSettings(string prefsKey) - { - m_PrefsKey = prefsKey; - verticalSplit = EditorPrefs.GetBool(m_PrefsKey + ".verticalSplit", true); - } - - public void ToggleVerticalSplit() - { - verticalSplit = !verticalSplit; - Save(); - } - - private void Save() - { - EditorPrefs.SetBool(m_PrefsKey + ".verticalSplit", verticalSplit); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestSettings/ITestSettings.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestSettings/ITestSettings.cs deleted file mode 100644 index f5b97a4..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestSettings/ITestSettings.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; - -namespace UnityEditor.TestTools.TestRunner -{ - internal interface ITestSettings : IDisposable - { - ScriptingImplementation? scriptingBackend { get; set; } - - string Architecture { get; set; } - - ApiCompatibilityLevel? apiProfile { get; set; } - - bool? appleEnableAutomaticSigning { get; set; } - string appleDeveloperTeamID { get; set; } - ProvisioningProfileType? iOSManualProvisioningProfileType { get; set; } - string iOSManualProvisioningProfileID { get; set; } - ProvisioningProfileType? tvOSManualProvisioningProfileType { get; set; } - string tvOSManualProvisioningProfileID { get; set; } - - void SetupProjectParameters(); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestSettings/ITestSettingsDeserializer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestSettings/ITestSettingsDeserializer.cs deleted file mode 100644 index ac3845e..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestSettings/ITestSettingsDeserializer.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner -{ - interface ITestSettingsDeserializer - { - ITestSettings GetSettingsFromJsonFile(string jsonFilePath); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestSettings/TestSettings.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestSettings/TestSettings.cs deleted file mode 100644 index 6964d22..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestSettings/TestSettings.cs +++ /dev/null @@ -1,160 +0,0 @@ -using System; - -namespace UnityEditor.TestTools.TestRunner -{ - internal class TestSettings : ITestSettings - { - private readonly TestSetting[] m_Settings = - { - new TestSetting( - settings => settings.scriptingBackend, - () => PlayerSettings.GetScriptingBackend(EditorUserBuildSettings.activeBuildTargetGroup), - implementation => PlayerSettings.SetScriptingBackend(EditorUserBuildSettings.activeBuildTargetGroup, implementation.Value)), - new TestSetting( - settings => settings.Architecture, - () => EditorUserBuildSettings.activeBuildTarget == BuildTarget.Android ? PlayerSettings.Android.targetArchitectures.ToString() : null, - architecture => - { - if (EditorUserBuildSettings.activeBuildTarget == BuildTarget.Android) - { - if (!string.IsNullOrEmpty(architecture)) - { - var targetArchitectures = (AndroidArchitecture)Enum.Parse(typeof(AndroidArchitecture), architecture, true); - PlayerSettings.Android.targetArchitectures = targetArchitectures; - } - } - }), - new TestSetting( - settings => settings.apiProfile, - () => PlayerSettings.GetApiCompatibilityLevel(EditorUserBuildSettings.activeBuildTargetGroup), - implementation => - { - if (Enum.IsDefined(typeof(ApiCompatibilityLevel), implementation.Value)) - { - PlayerSettings.SetApiCompatibilityLevel(EditorUserBuildSettings.activeBuildTargetGroup, - implementation.Value); - } - }), - new TestSetting( - settings => settings.appleEnableAutomaticSigning, - () => PlayerSettings.iOS.appleEnableAutomaticSigning, - enableAutomaticSigning => - { - if (enableAutomaticSigning != null) - PlayerSettings.iOS.appleEnableAutomaticSigning = enableAutomaticSigning.Value; - }), - new TestSetting( - settings => settings.appleDeveloperTeamID, - () => PlayerSettings.iOS.appleDeveloperTeamID, - developerTeam => - { - if (developerTeam != null) - PlayerSettings.iOS.appleDeveloperTeamID = developerTeam; - }), - new TestSetting( - settings => settings.iOSManualProvisioningProfileType, - () => PlayerSettings.iOS.iOSManualProvisioningProfileType, - profileType => - { - if (profileType != null) - PlayerSettings.iOS.iOSManualProvisioningProfileType = profileType.Value; - }), - new TestSetting( - settings => settings.iOSManualProvisioningProfileID, - () => PlayerSettings.iOS.iOSManualProvisioningProfileID, - provisioningUUID => - { - if (provisioningUUID != null) - PlayerSettings.iOS.iOSManualProvisioningProfileID = provisioningUUID; - }), - new TestSetting( - settings => settings.tvOSManualProvisioningProfileType, - () => PlayerSettings.iOS.tvOSManualProvisioningProfileType, - profileType => - { - if (profileType != null) - PlayerSettings.iOS.tvOSManualProvisioningProfileType = profileType.Value; - }), - new TestSetting( - settings => settings.tvOSManualProvisioningProfileID, - () => PlayerSettings.iOS.tvOSManualProvisioningProfileID, - provisioningUUID => - { - if (provisioningUUID != null) - PlayerSettings.iOS.tvOSManualProvisioningProfileID = provisioningUUID; - }), - }; - - private bool m_Disposed; - - public ScriptingImplementation? scriptingBackend { get; set; } - - public string Architecture { get; set; } - - public ApiCompatibilityLevel? apiProfile { get; set; } - - public bool? appleEnableAutomaticSigning { get; set; } - public string appleDeveloperTeamID { get; set; } - public ProvisioningProfileType? iOSManualProvisioningProfileType { get; set; } - public string iOSManualProvisioningProfileID { get; set; } - public ProvisioningProfileType? tvOSManualProvisioningProfileType { get; set; } - public string tvOSManualProvisioningProfileID { get; set; } - - public void Dispose() - { - if (!m_Disposed) - { - foreach (var testSetting in m_Settings) - { - testSetting.Cleanup(); - } - - m_Disposed = true; - } - } - - public void SetupProjectParameters() - { - foreach (var testSetting in m_Settings) - { - testSetting.Setup(this); - } - } - - private abstract class TestSetting - { - public abstract void Setup(TestSettings settings); - public abstract void Cleanup(); - } - - private class TestSetting : TestSetting - { - private T m_ValueBeforeSetup; - private Func m_GetFromSettings; - private Func m_GetCurrentValue; - private Action m_SetValue; - - public TestSetting(Func getFromSettings, Func getCurrentValue, Action setValue) - { - m_GetFromSettings = getFromSettings; - m_GetCurrentValue = getCurrentValue; - m_SetValue = setValue; - } - - public override void Setup(TestSettings settings) - { - m_ValueBeforeSetup = m_GetCurrentValue(); - var newValue = m_GetFromSettings(settings); - if (newValue != null) - { - m_SetValue(newValue); - } - } - - public override void Cleanup() - { - m_SetValue(m_ValueBeforeSetup); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestSettings/TestSettingsDeserializer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestSettings/TestSettingsDeserializer.cs deleted file mode 100644 index c59ec57..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/TestSettings/TestSettingsDeserializer.cs +++ /dev/null @@ -1,130 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner -{ - /// - /// Handles deserialization of TestSettings from a provided json file path. - /// - internal class TestSettingsDeserializer : ITestSettingsDeserializer - { - private static readonly SettingsMap[] s_SettingsMapping = - { - new SettingsMap("scriptingBackend", (settings, value) => settings.scriptingBackend = value), - new SettingsMap("architecture", (settings, value) => settings.Architecture = value), - new SettingsMap("apiProfile", (settings, value) => settings.apiProfile = value), - new SettingsMap("appleEnableAutomaticSigning", (settings, value) => settings.appleEnableAutomaticSigning = value), - new SettingsMap("appleDeveloperTeamID", (settings, value) => settings.appleDeveloperTeamID = value), - new SettingsMap("iOSManualProvisioningProfileType", (settings, value) => settings.iOSManualProvisioningProfileType = value), - new SettingsMap("iOSManualProvisioningProfileID", (settings, value) => settings.iOSManualProvisioningProfileID = value), - new SettingsMap("tvOSManualProvisioningProfileType", (settings, value) => settings.tvOSManualProvisioningProfileType = value), - new SettingsMap("tvOSManualProvisioningProfileID", (settings, value) => settings.tvOSManualProvisioningProfileID = value), - }; - - private readonly Func m_TestSettingsFactory; - public TestSettingsDeserializer(Func testSettingsFactory) - { - m_TestSettingsFactory = testSettingsFactory; - } - - public ITestSettings GetSettingsFromJsonFile(string jsonFilePath) - { - var text = File.ReadAllText(jsonFilePath); - var settingsDictionary = Json.Deserialize(text) as Dictionary; - - var testSettings = m_TestSettingsFactory(); - if (settingsDictionary == null) - { - return testSettings; - } - - foreach (var settingsMap in s_SettingsMapping) - { - if (!settingsDictionary.ContainsKey(settingsMap.Key)) - { - continue; - } - - if (settingsMap.Type.IsEnum) - { - SetEnumValue(settingsMap.Key, settingsDictionary[settingsMap.Key], settingsMap.Type, value => settingsMap.ApplyToSettings(testSettings, value)); - } - else - { - SetValue(settingsMap.Key, settingsDictionary[settingsMap.Key], settingsMap.Type, value => settingsMap.ApplyToSettings(testSettings, value)); - } - } - - return testSettings; - } - - private abstract class SettingsMap - { - public string Key { get; } - public Type Type { get; } - protected SettingsMap(string key, Type type) - { - Key = key; - Type = type; - } - - public abstract void ApplyToSettings(ITestSettings settings, object value); - } - - private class SettingsMap : SettingsMap - { - private Action m_Setter; - public SettingsMap(string key, Action setter) : base(key, typeof(T)) - { - m_Setter = setter; - } - - public override void ApplyToSettings(ITestSettings settings, object value) - { - m_Setter(settings, (T)value); - } - } - - private static void SetEnumValue(string key, object value, Type type, Action setter) - { - object enumValue; - if (TryGetEnum(value as string, type, out enumValue)) - { - setter(enumValue); - return; - } - - var acceptedValues = string.Join(", ", Enum.GetValues(type).OfType().Select(val => val.ToString()).ToArray()); - - Debug.LogFormat("Could not convert '{0}' argument '{1}' to a valid {2}. Accepted values: {3}.", key, value, type.Name, acceptedValues); - } - - private static bool TryGetEnum(string value, Type type, out object enumValue) - { - try - { - enumValue = Enum.Parse(type, value, true); - return true; - } - catch (Exception) - { - enumValue = null; - return false; - } - } - - private static void SetValue(string key, object value, Type type, Action setter) - { - if (type.IsInstanceOfType(value)) - { - setter(value); - return; - } - - Debug.LogFormat("Could not convert '{0}' argument '{1}' to a valid {2}.", key, value, type.Name); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityEditor.TestRunner.asmdef b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityEditor.TestRunner.asmdef deleted file mode 100644 index f28e7e1..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityEditor.TestRunner.asmdef +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "UnityEditor.TestRunner", - "references": [ - "UnityEngine.TestRunner" - ], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": true, - "precompiledReferences": [ - "nunit.framework.dll", - "Mono.Cecil.dll", - "Mono.Cecil.Pdb.dll", - "Mono.Cecil.Mdb.dll", - "Mono.Cecil.Rocks.dll" - ], - "autoReferenced": false, - "defineConstraints": [] -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/AssemblyCompilationErrorsMessage.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/AssemblyCompilationErrorsMessage.cs deleted file mode 100644 index 8ed6b3c..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/AssemblyCompilationErrorsMessage.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner.UnityTestProtocol -{ - internal class AssemblyCompilationErrorsMessage : Message - { - public string assembly; - public string[] errors; - - public AssemblyCompilationErrorsMessage() - { - type = "AssemblyCompilationErrors"; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/ITestRunnerApiMapper.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/ITestRunnerApiMapper.cs deleted file mode 100644 index 231fe4b..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/ITestRunnerApiMapper.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.Collections.Generic; -using UnityEditor.TestTools.TestRunner.Api; - -namespace UnityEditor.TestTools.TestRunner.UnityTestProtocol -{ - interface ITestRunnerApiMapper - { - string GetRunStateFromResultNunitXml(ITestResultAdaptor result); - TestState GetTestStateFromResult(ITestResultAdaptor result); - List FlattenTestNames(ITestAdaptor testsToRun); - TestPlanMessage MapTestToTestPlanMessage(ITestAdaptor testsToRun); - TestStartedMessage MapTestToTestStartedMessage(ITestAdaptor test); - TestFinishedMessage TestResultToTestFinishedMessage(ITestResultAdaptor result); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/IUtpLogger.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/IUtpLogger.cs deleted file mode 100644 index 4d7fb71..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/IUtpLogger.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner.UnityTestProtocol -{ - interface IUtpLogger - { - void Log(Message msg); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/IUtpMessageReporter.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/IUtpMessageReporter.cs deleted file mode 100644 index c134615..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/IUtpMessageReporter.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Collections.Generic; -using UnityEditor.Compilation; -using UnityEditor.TestTools.TestRunner.Api; - -namespace UnityEditor.TestTools.TestRunner.UnityTestProtocol -{ - internal interface IUtpMessageReporter - { - void ReportAssemblyCompilationErrors(string assembly, IEnumerable errorCompilerMessages); - void ReportTestFinished(ITestResultAdaptor result); - void ReportTestRunStarted(ITestAdaptor testsToRun); - void ReportTestStarted(ITestAdaptor test); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/Message.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/Message.cs deleted file mode 100644 index a654b7e..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/Message.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Diagnostics; - -namespace UnityEditor.TestTools.TestRunner.UnityTestProtocol -{ - [Serializable] - internal abstract class Message - { - public string type; - // Milliseconds since unix epoch - public ulong time; - public int version; - public string phase; - public int processId; - - protected Message() - { - version = 2; - phase = "Immediate"; - processId = Process.GetCurrentProcess().Id; - AddTimeStamp(); - } - - public void AddTimeStamp() - { - time = Convert.ToUInt64((DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalMilliseconds); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/TestFinishedMessage.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/TestFinishedMessage.cs deleted file mode 100644 index 63d7daf..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/TestFinishedMessage.cs +++ /dev/null @@ -1,18 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner.UnityTestProtocol -{ - internal class TestFinishedMessage : Message - { - public string name; - public TestState state; - public string message; - public ulong duration; // milliseconds - public ulong durationMicroseconds; - public string stackTrace; - - public TestFinishedMessage() - { - type = "TestStatus"; - phase = "End"; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/TestPlanMessage.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/TestPlanMessage.cs deleted file mode 100644 index 7e4ea41..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/TestPlanMessage.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Collections.Generic; - -namespace UnityEditor.TestTools.TestRunner.UnityTestProtocol -{ - internal class TestPlanMessage : Message - { - public List tests; - - public TestPlanMessage() - { - type = "TestPlan"; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/TestRunnerApiMapper.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/TestRunnerApiMapper.cs deleted file mode 100644 index 494646f..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/TestRunnerApiMapper.cs +++ /dev/null @@ -1,99 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Xml; -using UnityEditor.TestTools.TestRunner.Api; - -namespace UnityEditor.TestTools.TestRunner.UnityTestProtocol -{ - internal class TestRunnerApiMapper : ITestRunnerApiMapper - { - public TestPlanMessage MapTestToTestPlanMessage(ITestAdaptor testsToRun) - { - var testsNames = testsToRun != null ? FlattenTestNames(testsToRun) : new List(); - - var msg = new TestPlanMessage - { - tests = testsNames - }; - - return msg; - } - - public TestStartedMessage MapTestToTestStartedMessage(ITestAdaptor test) - { - return new TestStartedMessage - { - name = test.FullName - }; - } - - public TestFinishedMessage TestResultToTestFinishedMessage(ITestResultAdaptor result) - { - return new TestFinishedMessage - { - name = result.Test.FullName, - duration = Convert.ToUInt64(result.Duration * 1000), - durationMicroseconds = Convert.ToUInt64(result.Duration * 1000000), - message = result.Message, - state = GetTestStateFromResult(result), - stackTrace = result.StackTrace - }; - } - - public string GetRunStateFromResultNunitXml(ITestResultAdaptor result) - { - var doc = new XmlDocument(); - doc.LoadXml(result.ToXml().OuterXml); - return doc.FirstChild.Attributes["runstate"].Value; - } - - public TestState GetTestStateFromResult(ITestResultAdaptor result) - { - var state = TestState.Failure; - - if (result.TestStatus == TestStatus.Passed) - { - state = TestState.Success; - - var runstate = GetRunStateFromResultNunitXml(result); - runstate = runstate ?? String.Empty; - - if (runstate.ToLowerInvariant().Equals("explicit")) - state = TestState.Skipped; - } - else if (result.TestStatus == TestStatus.Skipped) - { - state = TestState.Skipped; - - if (result.ResultState.ToLowerInvariant().EndsWith("ignored")) - state = TestState.Ignored; - } - else - { - if (result.ResultState.ToLowerInvariant().Equals("inconclusive")) - state = TestState.Inconclusive; - - if (result.ResultState.ToLowerInvariant().EndsWith("cancelled") || - result.ResultState.ToLowerInvariant().EndsWith("error")) - state = TestState.Error; - } - - return state; - } - - public List FlattenTestNames(ITestAdaptor test) - { - var results = new List(); - - if (!test.IsSuite) - results.Add(test.FullName); - - if (test.Children != null && test.Children.Any()) - foreach (var child in test.Children) - results.AddRange(FlattenTestNames(child)); - - return results; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/TestStartedMessage.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/TestStartedMessage.cs deleted file mode 100644 index 7a878a6..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/TestStartedMessage.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner.UnityTestProtocol -{ - internal class TestStartedMessage : Message - { - public string name; - public TestState state; - - public TestStartedMessage() - { - type = "TestStatus"; - phase = "Begin"; - state = TestState.Inconclusive; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/TestState.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/TestState.cs deleted file mode 100644 index 111813a..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/TestState.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace UnityEditor.TestTools.TestRunner.UnityTestProtocol -{ - // This matches the state definitions expected by the Perl code, which in turn matches the NUnit 2 values... - internal enum TestState - { - Inconclusive = 0, - Skipped = 2, - Ignored = 3, - Success = 4, - Failure = 5, - Error = 6 - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/UnityTestProtocolListener.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/UnityTestProtocolListener.cs deleted file mode 100644 index 8ba3d7f..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/UnityTestProtocolListener.cs +++ /dev/null @@ -1,35 +0,0 @@ -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner.UnityTestProtocol -{ - internal class UnityTestProtocolListener : ScriptableObject, ICallbacks - { - private IUtpMessageReporter m_UtpMessageReporter; - - public UnityTestProtocolListener() - { - m_UtpMessageReporter = new UtpMessageReporter(new UtpDebugLogger()); - } - - public void RunStarted(ITestAdaptor testsToRun) - { - m_UtpMessageReporter.ReportTestRunStarted(testsToRun); - } - - public void RunFinished(ITestResultAdaptor testResults) - { - // Apparently does nothing :) - } - - public void TestStarted(ITestAdaptor test) - { - m_UtpMessageReporter.ReportTestStarted(test); - } - - public void TestFinished(ITestResultAdaptor result) - { - m_UtpMessageReporter.ReportTestFinished(result); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/UnityTestProtocolStarter.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/UnityTestProtocolStarter.cs deleted file mode 100644 index 8d16ca5..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/UnityTestProtocolStarter.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using System.Linq; -using UnityEditor.Compilation; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine; -using UnityEngine.TestTools; - -namespace UnityEditor.TestTools.TestRunner.UnityTestProtocol -{ - [InitializeOnLoad] - internal static class UnityTestProtocolStarter - { - static UnityTestProtocolStarter() - { - var commandLineArgs = Environment.GetCommandLineArgs(); - if (commandLineArgs.Contains("-automated") && commandLineArgs.Contains("-runTests")) // wanna have it only for utr run - { - var api = ScriptableObject.CreateInstance(); - var listener = ScriptableObject.CreateInstance(); - api.RegisterCallbacks(listener); - CompilationPipeline.assemblyCompilationFinished += OnAssemblyCompilationFinished; - } - } - - public static void OnAssemblyCompilationFinished(string assembly, CompilerMessage[] messages) - { - bool checkCompileErrors = RecompileScripts.Current == null || RecompileScripts.Current.ExpectScriptCompilationSuccess; - - if (checkCompileErrors && messages.Any(x => x.type == CompilerMessageType.Error)) - { - var compilerErrorMessages = messages.Where(x => x.type == CompilerMessageType.Error); - var utpMessageReporter = new UtpMessageReporter(new UtpDebugLogger()); - utpMessageReporter.ReportAssemblyCompilationErrors(assembly, compilerErrorMessages); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/UtpDebuglogger.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/UtpDebuglogger.cs deleted file mode 100644 index 537e350..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/UtpDebuglogger.cs +++ /dev/null @@ -1,13 +0,0 @@ -using UnityEngine; - -namespace UnityEditor.TestTools.TestRunner.UnityTestProtocol -{ - class UtpDebugLogger : IUtpLogger - { - public void Log(Message msg) - { - var msgJson = JsonUtility.ToJson(msg); - Debug.LogFormat(LogType.Log, LogOption.NoStacktrace, null, "\n##utp:{0}", msgJson); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/UtpMessageReporter.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/UtpMessageReporter.cs deleted file mode 100644 index 22450c8..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEditor.TestRunner/UnityTestProtocol/UtpMessageReporter.cs +++ /dev/null @@ -1,57 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using UnityEditor.Compilation; -using UnityEditor.TestTools.TestRunner.Api; - -namespace UnityEditor.TestTools.TestRunner.UnityTestProtocol -{ - internal class UtpMessageReporter : IUtpMessageReporter - { - public ITestRunnerApiMapper TestRunnerApiMapper; - public IUtpLogger Logger; - - public UtpMessageReporter(IUtpLogger utpLogger) - { - TestRunnerApiMapper = new TestRunnerApiMapper(); - Logger = utpLogger; - } - - public void ReportAssemblyCompilationErrors(string assembly, IEnumerable errorCompilerMessages) - { - var compilationErrorMessage = new AssemblyCompilationErrorsMessage - { - assembly = assembly, - errors = errorCompilerMessages.Select(x => x.message).ToArray() - }; - - Logger.Log(compilationErrorMessage); - } - - public void ReportTestRunStarted(ITestAdaptor testsToRun) - { - var msg = TestRunnerApiMapper.MapTestToTestPlanMessage(testsToRun); - - Logger.Log(msg); - } - - public void ReportTestStarted(ITestAdaptor test) - { - if (test.IsSuite) - return; - - var msg = TestRunnerApiMapper.MapTestToTestStartedMessage(test); - - Logger.Log(msg); - } - - public void ReportTestFinished(ITestResultAdaptor result) - { - if (result.Test.IsSuite) - return; - - var msg = TestRunnerApiMapper.TestResultToTestFinishedMessage(result); - - Logger.Log(msg); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/AssemblyInfo.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/AssemblyInfo.cs deleted file mode 100644 index 8c3afaa..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/AssemblyInfo.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -[assembly: AssemblyTitle("UnityEngine.TestRunner")] - -[assembly: InternalsVisibleTo("UnityEditor.TestRunner")] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] -[assembly: InternalsVisibleTo("Unity.PerformanceTesting")] -[assembly: InternalsVisibleTo("Unity.PerformanceTesting.Editor")] -[assembly: InternalsVisibleTo("Assembly-CSharp-testable")] -[assembly: InternalsVisibleTo("Assembly-CSharp-Editor-testable")] -[assembly: InternalsVisibleTo("UnityEngine.TestRunner.Tests")] -[assembly: InternalsVisibleTo("UnityEditor.TestRunner.Tests")] -[assembly: InternalsVisibleTo("Unity.PackageManagerUI.Editor")] - -[assembly: AssemblyVersion("1.0.0")] diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/AllocatingGCMemoryConstraint.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/AllocatingGCMemoryConstraint.cs deleted file mode 100644 index 6d1ff8a..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/AllocatingGCMemoryConstraint.cs +++ /dev/null @@ -1,127 +0,0 @@ -using System; -using NUnit.Framework; -using NUnit.Framework.Constraints; -using UnityEngine.Profiling; - -namespace UnityEngine.TestTools.Constraints -{ - /// - /// An NUnit test constraint class to test whether a given block of code makes any GC allocations. - /// - /// Use this class with NUnit's Assert.That() method to make assertions about the GC behaviour of your code. The constraint executes the delegate you provide, and checks if it has caused any GC memory to be allocated. If any GC memory was allocated, the constraint passes; otherwise, the constraint fails. - /// - /// Usually you negate this constraint to make sure that your delegate does not allocate any GC memory. This is easy to do using the Is class: - /// - /// - /// - /// using NUnit.Framework; - /// using UnityEngine.TestTools.Constraints; - /// using Is = UnityEngine.TestTools.Constraints.Is; - /// - /// public class MyTestClass - /// { - /// [Test] - /// public void SettingAVariableDoesNotAllocate() - /// { - /// Assert.That(() => { - /// int a = 0; - /// a = 1; - /// }, Is.Not.AllocatingGCMemory()); - /// } - /// } - /// - /// - public class AllocatingGCMemoryConstraint : Constraint - { - private class AllocatingGCMemoryResult : ConstraintResult - { - private readonly int diff; - public AllocatingGCMemoryResult(IConstraint constraint, object actualValue, int diff) : base(constraint, actualValue, diff > 0) - { - this.diff = diff; - } - - public override void WriteMessageTo(MessageWriter writer) - { - if (diff == 0) - writer.WriteMessageLine("The provided delegate did not make any GC allocations."); - else - writer.WriteMessageLine("The provided delegate made {0} GC allocation(s).", diff); - } - } - - private ConstraintResult ApplyTo(Action action, object original) - { - var recorder = Recorder.Get("GC.Alloc"); - - // The recorder was created enabled, which means it captured the creation of the Recorder object itself, etc. - // Disabling it flushes its data, so that we can retrieve the sample block count and have it correctly account - // for these initial allocations. - recorder.enabled = false; - -#if !UNITY_WEBGL - recorder.FilterToCurrentThread(); -#endif - - recorder.enabled = true; - - try - { - action(); - } - finally - { - recorder.enabled = false; -#if !UNITY_WEBGL - recorder.CollectFromAllThreads(); -#endif - } - - return new AllocatingGCMemoryResult(this, original, recorder.sampleBlockCount); - } - - /// - /// Applies GC memory constraint to the test. - /// - /// An ActualValueDelegate - /// A ConstraintResult - /// Throws a if the provided object is null. - /// Throws a if the provided object is not a . - public override ConstraintResult ApplyTo(object obj) - { - if (obj == null) - throw new ArgumentNullException(); - - TestDelegate d = obj as TestDelegate; - if (d == null) - throw new ArgumentException(string.Format("The actual value must be a TestDelegate but was {0}", - obj.GetType())); - - return ApplyTo(() => d.Invoke(), obj); - } - - /// - /// Test whether the constraint is satisfied by a given reference. - /// The default implementation simply dereferences the value but - /// derived classes may override it to provide for delayed processing. - /// - /// A reference to the value delegate to be tested - /// A ConstraintResult - /// Throws a if the provided delegate is null. - public override ConstraintResult ApplyTo(ActualValueDelegate del) - { - if (del == null) - throw new ArgumentNullException(); - - return ApplyTo(() => del.Invoke(), del); - } - - /// - /// The Description of what this constraint tests, for to use in messages and in the ConstraintResult. - /// - public override string Description - { - get { return "allocates GC memory"; } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/ConstraintsExtensions.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/ConstraintsExtensions.cs deleted file mode 100644 index 54b8e64..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/ConstraintsExtensions.cs +++ /dev/null @@ -1,14 +0,0 @@ -using NUnit.Framework.Constraints; - -namespace UnityEngine.TestTools.Constraints -{ - public static class ConstraintExtensions - { - public static AllocatingGCMemoryConstraint AllocatingGCMemory(this ConstraintExpression chain) - { - var constraint = new AllocatingGCMemoryConstraint(); - chain.Append(constraint); - return constraint; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/InvalidSignatureException.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/InvalidSignatureException.cs deleted file mode 100644 index b9c132b..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/InvalidSignatureException.cs +++ /dev/null @@ -1,18 +0,0 @@ -using NUnit.Framework; -using NUnit.Framework.Interfaces; - -namespace UnityEngine.TestTools.TestRunner -{ - internal class InvalidSignatureException : ResultStateException - { - public InvalidSignatureException(string message) - : base(message) - { - } - - public override ResultState ResultState - { - get { return ResultState.NotRunnable; } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/Is.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/Is.cs deleted file mode 100644 index 4cdc715..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/Is.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace UnityEngine.TestTools.Constraints -{ - public class Is : NUnit.Framework.Is - { - public static AllocatingGCMemoryConstraint AllocatingGCMemory() - { - return new AllocatingGCMemoryConstraint(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/LogAssert.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/LogAssert.cs deleted file mode 100644 index 0087a51..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/LogAssert.cs +++ /dev/null @@ -1,74 +0,0 @@ -using System.Text.RegularExpressions; -using UnityEngine.TestTools.Logging; - -namespace UnityEngine.TestTools -{ - /// - /// A test fails if Unity logs a message other than a regular log or warning message. Use `LogAssert` to check for an expected message in the log so that the test does not fail when Unity logs the message. - /// Use `LogAssert.Expect` before running the code under test, as the check for expected logs runs at the end of each frame. - /// A test also reports a failure, if an expected message does not appear, or if Unity does not log any regular log or warning messages. - /// - /// `LogAssert` lets you expect Unity log messages that would otherwise cause the test to fail. - /// - public static class LogAssert - { - /// A type of log to expect. It can take one of the [LogType enum](https://docs.unity3d.com/ScriptReference/LogType.html) values. - /// A string value that should equate to the expected message. - /// - /// - /// [Test] - /// public void LogAssertExample() - /// { - /// // Expect a regular log message - /// LogAssert.Expect(LogType.Log, "Log message"); - /// - /// // The test fails without the following expected log message - /// Debug.Log("Log message"); - /// - /// // An error log - /// Debug.LogError("Error message"); - /// - /// // Without expecting an error log, the test would fail - /// LogAssert.Expect(LogType.Error, "Error message"); - /// } - /// - /// - /// - public static void Expect(LogType type, string message) - { - LogScope.Current.ExpectedLogs.Enqueue(new LogMatch() { LogType = type, Message = message }); - } - /// - /// Verifies that a log message of a specified type appears in the log. A test won't fail from an expected error, assertion, or exception log message. It does fail if an expected message does not appear in the log. - /// - /// A type of log to expect. It can take one of the [LogType enum](https://docs.unity3d.com/ScriptReference/LogType.html) values. - /// A regular expression pattern to match the expected message. - public static void Expect(LogType type, Regex message) - { - LogScope.Current.ExpectedLogs.Enqueue(new LogMatch() { LogType = type, MessageRegex = message }); - } - /// - /// Triggers an assertion when receiving any log messages and fails the test if some are unexpected messages. If multiple tests need to check for no received unexpected logs, consider using the attribute instead. - /// - public static void NoUnexpectedReceived() - { - LogScope.Current.NoUnexpectedReceived(); - } - /// Set this property to `true` to prevent unexpected error log messages from triggering an assertion. By default, it is `false`. - public static bool ignoreFailingMessages - { - get - { - return LogScope.Current.IgnoreFailingMessages; - } - set - { - if (value != LogScope.Current.IgnoreFailingMessages) - { - Debug.LogFormat(LogType.Log, LogOption.NoStacktrace, null, "\nIgnoreFailingMessages:" + (value? "true":"false")); - } - LogScope.Current.IgnoreFailingMessages = value; - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/LogScope/ILogScope.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/LogScope/ILogScope.cs deleted file mode 100644 index efd00f7..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/LogScope/ILogScope.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace UnityEngine.TestTools.Logging -{ - internal interface ILogScope : IDisposable - { - Queue ExpectedLogs { get; set; } - List AllLogs { get; } - List FailingLogs { get; } - bool IgnoreFailingMessages { get; set; } - bool IsNUnitException { get; } - bool IsNUnitSuccessException { get; } - bool IsNUnitInconclusiveException { get; } - bool IsNUnitIgnoreException { get; } - string NUnitExceptionMessage { get; } - void AddLog(string message, string stacktrace, LogType type); - bool AnyFailingLogs(); - void ProcessExpectedLogs(); - void NoUnexpectedReceived(); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/LogScope/LogEvent.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/LogScope/LogEvent.cs deleted file mode 100644 index 49f58cb..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/LogScope/LogEvent.cs +++ /dev/null @@ -1,18 +0,0 @@ -namespace UnityEngine.TestTools.Logging -{ - internal class LogEvent - { - public string Message { get; set; } - - public string StackTrace { get; set; } - - public LogType LogType { get; set; } - - public bool IsHandled { get; set; } - - public override string ToString() - { - return string.Format("[{0}] {1}", LogType, Message); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/LogScope/LogMatch.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/LogScope/LogMatch.cs deleted file mode 100644 index 05df048..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/LogScope/LogMatch.cs +++ /dev/null @@ -1,103 +0,0 @@ -using System; -using System.Text.RegularExpressions; - -namespace UnityEngine.TestTools.Logging -{ - [Serializable] - internal class LogMatch - { - [SerializeField] - private bool m_UseRegex; - [SerializeField] - private string m_Message; - [SerializeField] - private string m_MessageRegex; - [SerializeField] - private string m_LogType; - - public string Message - { - get { return m_Message; } - set - { - m_Message = value; - m_UseRegex = false; - } - } - - public Regex MessageRegex - { - get - { - if (!m_UseRegex) - { - return null; - } - - return new Regex(m_MessageRegex); - } - set - { - if (value != null) - { - m_MessageRegex = value.ToString(); - m_UseRegex = true; - } - else - { - m_MessageRegex = null; - m_UseRegex = false; - } - } - } - - public LogType? LogType - { - get - { - if (!string.IsNullOrEmpty(m_LogType)) - { - return Enum.Parse(typeof(LogType), m_LogType) as LogType ? ; - } - - return null; - } - set - { - if (value != null) - { - m_LogType = value.Value.ToString(); - } - else - { - m_LogType = null; - } - } - } - - public bool Matches(LogEvent log) - { - if (LogType != null && LogType != log.LogType) - { - return false; - } - - if (m_UseRegex) - { - return MessageRegex.IsMatch(log.Message); - } - else - { - return Message.Equals(log.Message); - } - } - - public override string ToString() - { - if (m_UseRegex) - return string.Format("[{0}] Regex: {1}", LogType, MessageRegex); - else - return string.Format("[{0}] {1}", LogType, Message); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/LogScope/LogScope.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/LogScope/LogScope.cs deleted file mode 100644 index 6f429c9..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/LogScope/LogScope.cs +++ /dev/null @@ -1,223 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using UnityEngine.TestTools.TestRunner; - -namespace UnityEngine.TestTools.Logging -{ - sealed class LogScope : ILogScope - { - static List s_ActiveScopes = new List(); - - readonly object m_Lock = new object(); - bool m_Disposed; - bool m_NeedToProcessLogs; - - public Queue ExpectedLogs { get; set; } - public List AllLogs { get; } - public List FailingLogs { get; } - public bool IgnoreFailingMessages { get; set; } - public bool IsNUnitException { get; private set; } - public bool IsNUnitSuccessException { get; private set; } - public bool IsNUnitInconclusiveException { get; private set; } - public bool IsNUnitIgnoreException { get; private set; } - public string NUnitExceptionMessage { get; private set; } - - public static LogScope Current - { - get - { - if (s_ActiveScopes.Count == 0) - throw new InvalidOperationException("No log scope is available"); - return s_ActiveScopes[0]; - } - } - - public static bool HasCurrentLogScope() - { - return s_ActiveScopes.Count > 0; - } - - public LogScope() - { - AllLogs = new List(); - FailingLogs = new List(); - ExpectedLogs = new Queue(); - IgnoreFailingMessages = false; - Activate(); - } - - void Activate() - { - s_ActiveScopes.Insert(0, this); - RegisterScope(this); - Application.logMessageReceivedThreaded -= AddLog; - Application.logMessageReceivedThreaded += AddLog; - } - - void Deactivate() - { - Application.logMessageReceivedThreaded -= AddLog; - s_ActiveScopes.Remove(this); - UnregisterScope(this); - } - - static void RegisterScope(LogScope logScope) - { - Application.logMessageReceivedThreaded += logScope.AddLog; - } - - static void UnregisterScope(LogScope logScope) - { - Application.logMessageReceivedThreaded -= logScope.AddLog; - } - - public void AddLog(string message, string stacktrace, LogType type) - { - lock (m_Lock) - { - m_NeedToProcessLogs = true; - var log = new LogEvent - { - LogType = type, - Message = message, - StackTrace = stacktrace, - }; - - AllLogs.Add(log); - - if (IsNUnitResultStateException(stacktrace, type)) - { - if (message.StartsWith("SuccessException")) - { - IsNUnitException = true; - IsNUnitSuccessException = true; - if (message.StartsWith("SuccessException: ")) - { - NUnitExceptionMessage = message.Substring("SuccessException: ".Length); - return; - } - } - else if (message.StartsWith("InconclusiveException")) - { - IsNUnitException = true; - IsNUnitInconclusiveException = true; - if (message.StartsWith("InconclusiveException: ")) - { - NUnitExceptionMessage = message.Substring("InconclusiveException: ".Length); - return; - } - } - else if (message.StartsWith("IgnoreException")) - { - IsNUnitException = true; - IsNUnitIgnoreException = true; - if (message.StartsWith("IgnoreException: ")) - { - NUnitExceptionMessage = message.Substring("IgnoreException: ".Length); - return; - } - } - } - - if (IsFailingLog(type) && !IgnoreFailingMessages) - { - FailingLogs.Add(log); - } - } - } - - static bool IsNUnitResultStateException(string stacktrace, LogType logType) - { - if (logType != LogType.Exception) - return false; - - return string.IsNullOrEmpty(stacktrace) || stacktrace.StartsWith("NUnit.Framework.Assert."); - } - - static bool IsFailingLog(LogType type) - { - switch (type) - { - case LogType.Assert: - case LogType.Error: - case LogType.Exception: - return true; - default: - return false; - } - } - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - void Dispose(bool disposing) - { - if (m_Disposed) - { - return; - } - - m_Disposed = true; - - if (disposing) - { - Deactivate(); - } - } - - public bool AnyFailingLogs() - { - ProcessExpectedLogs(); - return FailingLogs.Any(); - } - - public void ProcessExpectedLogs() - { - lock (m_Lock) - { - if (!m_NeedToProcessLogs || !ExpectedLogs.Any()) - return; - - LogMatch expectedLog = null; - foreach (var logEvent in AllLogs) - { - if (!ExpectedLogs.Any()) - break; - if (expectedLog == null && ExpectedLogs.Any()) - expectedLog = ExpectedLogs.Peek(); - - if (expectedLog != null && expectedLog.Matches(logEvent)) - { - ExpectedLogs.Dequeue(); - logEvent.IsHandled = true; - if (FailingLogs.Any(expectedLog.Matches)) - { - var failingLog = FailingLogs.First(expectedLog.Matches); - FailingLogs.Remove(failingLog); - } - expectedLog = null; - } - } - m_NeedToProcessLogs = false; - } - } - - public void NoUnexpectedReceived() - { - lock (m_Lock) - { - ProcessExpectedLogs(); - - var unhandledLog = AllLogs.FirstOrDefault(x => !x.IsHandled); - if (unhandledLog != null) - { - throw new UnhandledLogMessageException(unhandledLog); - } - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/UnexpectedLogMessageException.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/UnexpectedLogMessageException.cs deleted file mode 100644 index 4a491be..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/UnexpectedLogMessageException.cs +++ /dev/null @@ -1,29 +0,0 @@ -using NUnit.Framework; -using NUnit.Framework.Interfaces; -using UnityEngine.TestTools.Logging; - -namespace UnityEngine.TestTools.TestRunner -{ - internal class UnexpectedLogMessageException : ResultStateException - { - public LogMatch LogEvent; - - public UnexpectedLogMessageException(LogMatch log) - : base(BuildMessage(log)) - { - LogEvent = log; - } - - private static string BuildMessage(LogMatch log) - { - return string.Format("Expected log did not appear: {0}", log); - } - - public override ResultState ResultState - { - get { return ResultState.Failure; } - } - - public override string StackTrace { get { return null; } } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/UnhandledLogMessageException.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/UnhandledLogMessageException.cs deleted file mode 100644 index 5a7ab33..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/UnhandledLogMessageException.cs +++ /dev/null @@ -1,35 +0,0 @@ -using NUnit.Framework; -using NUnit.Framework.Interfaces; -using UnityEngine.TestTools.Logging; -using UnityEngine.TestTools.Utils; - -namespace UnityEngine.TestTools.TestRunner -{ - internal class UnhandledLogMessageException : ResultStateException - { - public LogEvent LogEvent; - private readonly string m_CustomStackTrace; - - public UnhandledLogMessageException(LogEvent log) - : base(BuildMessage(log)) - { - LogEvent = log; - m_CustomStackTrace = StackTraceFilter.Filter(log.StackTrace); - } - - private static string BuildMessage(LogEvent log) - { - return string.Format("Unhandled log message: '{0}'. Use UnityEngine.TestTools.LogAssert.Expect", log); - } - - public override ResultState ResultState - { - get { return ResultState.Failure; } - } - - public override string StackTrace - { - get { return m_CustomStackTrace; } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/UnityTestTimeoutException.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/UnityTestTimeoutException.cs deleted file mode 100644 index eaf7748..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Assertions/UnityTestTimeoutException.cs +++ /dev/null @@ -1,28 +0,0 @@ -using NUnit.Framework; -using NUnit.Framework.Interfaces; - -namespace UnityEngine.TestTools.TestRunner -{ - internal class UnityTestTimeoutException : ResultStateException - { - public UnityTestTimeoutException(int timeout) - : base(BuildMessage(timeout)) - { - } - - private static string BuildMessage(int timeout) - { - return string.Format("Timeout value of {0}ms was exceeded", timeout); - } - - public override ResultState ResultState - { - get { return ResultState.Failure; } - } - - public override string StackTrace - { - get { return ""; } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/ActionDelegator.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/ActionDelegator.cs deleted file mode 100644 index d13a7e0..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/ActionDelegator.cs +++ /dev/null @@ -1,79 +0,0 @@ -using System; -using System.Linq; -using UnityEngine.TestRunner.NUnitExtensions.Runner; -using UnityEngine.TestTools.Logging; -using UnityEngine.TestTools.TestRunner; - -namespace UnityEngine.TestTools.NUnitExtensions -{ - /// - /// This class delegates actions from the NUnit thread that should be executed on the main thread. - /// NUnit thread calls Delegate which blocks the execution on the thread until the action is executed. - /// The main thread will poll for awaiting actions (HasAction) and invoke them (Execute). - /// Once the action is executed, the main thread releases the lock and executino on the NUnit thread is continued. - /// - internal class ActionDelegator : BaseDelegator - { - private Func m_Action; - public object Delegate(Action action) - { - return Delegate(() => { action(); return null; }); - } - - public object Delegate(Func action) - { - if (m_Aborted) - { - return null; - } - - AssertState(); - m_Context = UnityTestExecutionContext.CurrentContext; - - m_Signal.Reset(); - m_Action = action; - - WaitForSignal(); - - return HandleResult(); - } - - private void AssertState() - { - if (m_Action != null) - { - throw new Exception("Action not executed yet"); - } - } - - public bool HasAction() - { - return m_Action != null; - } - - public void Execute(LogScope logScope) - { - try - { - SetCurrentTestContext(); - m_Result = m_Action(); - if (logScope.AnyFailingLogs()) - { - var failingLog = logScope.FailingLogs.First(); - throw new UnhandledLogMessageException(failingLog); - } - if (logScope.ExpectedLogs.Any()) - throw new UnexpectedLogMessageException(LogScope.Current.ExpectedLogs.Peek()); - } - catch (Exception e) - { - m_Exception = e; - } - finally - { - m_Action = null; - m_Signal.Set(); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/ConditionalIgnoreAttribute.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/ConditionalIgnoreAttribute.cs deleted file mode 100644 index 66b070d..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/ConditionalIgnoreAttribute.cs +++ /dev/null @@ -1,85 +0,0 @@ -using System.Collections.Generic; -using NUnit.Framework; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; - -namespace UnityEngine.TestTools -{ - /// - /// This attribute is an alternative to the standard `Ignore` attribute in [NUnit](https://nunit.org/). It allows for ignoring tests only under a specified condition. The condition evaluates during `OnLoad`, referenced by ID. - /// - public class ConditionalIgnoreAttribute : NUnitAttribute, IApplyToTest - { - string m_ConditionKey; - string m_IgnoreReason; - - /// - /// Initializes a new instance of the class with a condition key. - /// - /// The key to check for enabling the conditional ignore. The condition is set with the static method. - /// The reason for the ignore. - public ConditionalIgnoreAttribute(string conditionKey, string ignoreReason) - { - m_ConditionKey = conditionKey; - m_IgnoreReason = ignoreReason; - } - - /// - /// Modifies a test as defined for the specific attribute. - /// - /// The test to modify - public void ApplyToTest(Test test) - { - var key = m_ConditionKey.ToLowerInvariant(); - if (m_ConditionMap.ContainsKey(key) && m_ConditionMap[key]) - { - test.RunState = RunState.Ignored; - string skipReason = string.Format(m_IgnoreReason); - test.Properties.Add(PropertyNames.SkipReason, skipReason); - } - } - - static Dictionary m_ConditionMap = new Dictionary(); - - /// - /// Adds a flag indicating whether tests with the same key should be ignored. - /// - /// The key to ignore tests for. - /// A boolean value indicating whether the tests should be ignored. - /// - /// An example in which tests are ignored in the Mac editor only. - /// - /// using UnityEditor; - /// using NUnit.Framework; - /// using UnityEngine.TestTools; - /// - /// [InitializeOnLoad] - /// public class OnLoad - /// { - /// static OnLoad() - /// { - /// var editorIsOSX = false; - /// #if UNITY_EDITOR_OSX - /// editorIsOSX = true; - /// #endif - /// - /// ConditionalIgnoreAttribute.AddConditionalIgnoreMapping("IgnoreInMacEditor", editorIsOSX); - /// } - /// } - /// - /// public class MyTestClass - /// { - /// [Test, ConditionalIgnore("IgnoreInMacEditor", "Ignored on Mac editor.")] - /// public void TestNeverRunningInMacEditor() - /// { - /// Assert.Pass(); - /// } - /// } - /// - /// - public static void AddConditionalIgnoreMapping(string key, bool value) - { - m_ConditionMap.Add(key.ToLowerInvariant(), value); - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/TestEnumerator.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/TestEnumerator.cs deleted file mode 100644 index 240817b..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/TestEnumerator.cs +++ /dev/null @@ -1,57 +0,0 @@ -using System; -using System.Collections; -using NUnit.Framework; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; - -namespace UnityEngine.TestTools -{ - internal class TestEnumerator - { - private readonly ITestExecutionContext m_Context; - private static IEnumerator m_TestEnumerator; - - public static IEnumerator Enumerator { get { return m_TestEnumerator; } } - - public static void Reset() - { - m_TestEnumerator = null; - } - - public TestEnumerator(ITestExecutionContext context, IEnumerator testEnumerator) - { - m_Context = context; - m_TestEnumerator = testEnumerator; - } - - public IEnumerator Execute() - { - m_Context.CurrentResult.SetResult(ResultState.Success); - - while (true) - { - object current = null; - try - { - if (!m_TestEnumerator.MoveNext()) - { - yield break; - } - - if (!m_Context.CurrentResult.ResultState.Equals(ResultState.Success)) - { - yield break; - } - - current = m_TestEnumerator.Current; - } - catch (Exception exception) - { - m_Context.CurrentResult.RecordException(exception); - yield break; - } - yield return current; - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/TestMustExpectAllLogsAttribute.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/TestMustExpectAllLogsAttribute.cs deleted file mode 100644 index aaa4fe8..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/TestMustExpectAllLogsAttribute.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; - -namespace UnityEngine.TestTools -{ - /// - /// The presence of this attribute will cause the test runner to require that every single log is expected. By - /// default, the runner will only automatically fail on any error logs, so this adds warnings and infos as well. - /// It is the same as calling `LogAssert.NoUnexpectedReceived()` at the bottom of every affected test. - /// - /// This attribute can be applied to test assemblies (will affect every test in the assembly), fixtures (will - /// affect every test in the fixture), or on individual test methods. It is also automatically inherited from base - /// fixtures. - /// - /// The MustExpect property (on by default) lets you selectively enable or disable the higher level value. For - /// example when migrating an assembly to this more strict checking method, you might attach - /// `[assembly:TestMustExpectAllLogs]` to the assembly itself, but then whitelist failing fixtures and test methods - /// with `[TestMustExpectAllLogs(MustExpect=false)]` until they can be migrated. This also means new tests in that - /// assembly would be required to have the more strict checking. - /// - [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Method)] - public class TestMustExpectAllLogsAttribute : Attribute - { - /// A value indicating whether the test must expect all logs. - public TestMustExpectAllLogsAttribute(bool mustExpect = true) - => MustExpect = mustExpect; - /// - /// Returns the flag of whether the test must expect all logs. - /// - public bool MustExpect { get; } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/UnityCombinatorialStrategy.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/UnityCombinatorialStrategy.cs deleted file mode 100644 index 144f78c..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/UnityCombinatorialStrategy.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal.Builders; - -namespace UnityEngine.TestTools -{ - internal class UnityCombinatorialStrategy : CombinatorialStrategy, ICombiningStrategy - { - public new IEnumerable GetTestCases(IEnumerable[] sources) - { - var testCases = base.GetTestCases(sources); - foreach (var testCase in testCases) - { - testCase.GetType().GetProperty("ExpectedResult").SetValue(testCase, new object(), null); - } - return testCases; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/UnityPlatformAttribute.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/UnityPlatformAttribute.cs deleted file mode 100644 index 243c1a8..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/UnityPlatformAttribute.cs +++ /dev/null @@ -1,82 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using NUnit.Framework; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; - -namespace UnityEngine.TestTools -{ - /// - /// Use this attribute to define a specific set of platforms you want or do not want your test(s) to run on. - /// - /// You can use this attribute on the test method, test class, or test assembly level. Use the supported enumeration values to specify the platforms. You can also specify which platforms to test by passing one or more `RuntimePlatform` values along with or without the include or exclude properties as parameters to the [Platform](https://github.com/nunit/docs/wiki/Platform-Attribute) attribute constructor. - /// - /// The test(s) skips if the current target platform is: - /// - Not explicitly specified in the included platforms list - /// - In the excluded platforms list - /// - [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = false)] - public class UnityPlatformAttribute : NUnitAttribute, IApplyToTest - { - /// - /// A subset of platforms you need to have your tests run on. - /// - public RuntimePlatform[] include { get; set; } - /// - /// List the platforms you do not want to have your tests run on. - /// - public RuntimePlatform[] exclude { get; set; } - - private string m_skippedReason; - - /// - /// Constructs a new instance of the class. - /// - public UnityPlatformAttribute() - { - include = new List().ToArray(); - exclude = new List().ToArray(); - } - - /// - /// Constructs a new instance of the class with a list of platforms to include. - /// - /// The different to run the test on. - public UnityPlatformAttribute(params RuntimePlatform[] include) - : this() - { - this.include = include; - } - - /// - /// Modifies a test as defined for the specific attribute. - /// - /// The test to modify - public void ApplyToTest(Test test) - { - if (test.RunState == RunState.NotRunnable || test.RunState == RunState.Ignored || IsPlatformSupported(Application.platform)) - { - return; - } - test.RunState = RunState.Skipped; - test.Properties.Add("_SKIPREASON", m_skippedReason); - } - - internal bool IsPlatformSupported(RuntimePlatform testTargetPlatform) - { - if (include.Any() && !include.Any(x => x == testTargetPlatform)) - { - m_skippedReason = string.Format("Only supported on {0}", string.Join(", ", include.Select(x => x.ToString()).ToArray())); - return false; - } - - if (exclude.Any(x => x == testTargetPlatform)) - { - m_skippedReason = string.Format("Not supported on {0}", string.Join(", ", include.Select(x => x.ToString()).ToArray())); - return false; - } - return true; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/UnitySetUpAttribute.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/UnitySetUpAttribute.cs deleted file mode 100644 index 5bf1a60..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/UnitySetUpAttribute.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using NUnit.Framework; - -namespace UnityEngine.TestTools -{ - /// - /// The `UnitySetUp` and attributes are identical to the standard `SetUp` and `TearDown` attributes, with the exception that they allow for . The `UnitySetUp` and `UnityTearDown` attributes expect a return type of [IEnumerator](https://docs.microsoft.com/en-us/dotnet/api/system.collections.ienumerator?view=netframework-4.8). - /// - /// - ///public class SetUpTearDownExample - /// { - /// [UnitySetUp] - /// public IEnumerator SetUp() - /// { - /// yield return new EnterPlayMode(); - /// } - /// - /// [Test] - /// public void MyTest() - /// { - /// Debug.Log("This runs inside playmode"); - /// } - /// - /// [UnityTearDown] - /// public IEnumerator TearDown() - /// { - /// yield return new ExitPlayMode(); - /// } - /// } - /// - /// - /// - [AttributeUsage(AttributeTargets.Method)] - public class UnitySetUpAttribute : NUnitAttribute - { - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/UnityTearDownAttribute.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/UnityTearDownAttribute.cs deleted file mode 100644 index 57d51a0..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/UnityTearDownAttribute.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using NUnit.Framework; - -namespace UnityEngine.TestTools -{ - /// - /// The and `UnityTearDown` attributes are identical to the standard `SetUp` and `TearDown` attributes, with the exception that they allow for . The `UnitySetUp` and `UnityTearDown` attributes expect a return type of [IEnumerator](https://docs.microsoft.com/en-us/dotnet/api/system.collections.ienumerator?view=netframework-4.8). - /// - /// - ///public class SetUpTearDownExample - /// { - /// [UnitySetUp] - /// public IEnumerator SetUp() - /// { - /// yield return new EnterPlayMode(); - /// } - /// - /// [Test] - /// public void MyTest() - /// { - /// Debug.Log("This runs inside playmode"); - /// } - /// - /// [UnityTearDown] - /// public IEnumerator TearDown() - /// { - /// yield return new ExitPlayMode(); - /// } - /// } - /// - /// - /// - [AttributeUsage(AttributeTargets.Method)] - public class UnityTearDownAttribute : NUnitAttribute - { - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/UnityTestAttribute.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/UnityTestAttribute.cs deleted file mode 100644 index daf90f3..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Attributes/UnityTestAttribute.cs +++ /dev/null @@ -1,89 +0,0 @@ -using System; -using System.Collections; -using NUnit.Framework; -using NUnit.Framework.Internal.Commands; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Builders; -using UnityEngine.TestRunner.NUnitExtensions.Runner; - -namespace UnityEngine.TestTools -{ - /// - /// `UnityTest` attribute is the main addition to the standard [NUnit](http://www.nunit.org/) library for the Unity Test Framework. This type of unit test allows you to skip a frame from within a test (so background tasks can finish) or give certain commands to the Unity **Editor**, such as performing a domain reload or entering **Play Mode** from an **Edit Mode** test. - /// In Play Mode, the `UnityTest` attribute runs as a [coroutine](https://docs.unity3d.com/Manual/Coroutines.html). Whereas Edit Mode tests run in the [EditorApplication.update](https://docs.unity3d.com/ScriptReference/EditorApplication-update.html) callback loop. - /// The `UnityTest` attribute is, in fact, an alternative to the `NUnit` [Test attribute](https://github.com/nunit/docs/wiki/Test-Attribute), which allows yielding instructions back to the framework. Once the instruction is complete, the test run continues. If you `yield return null`, you skip a frame. That might be necessary to ensure that some changes do happen on the next iteration of either the `EditorApplication.update` loop or the [game loop](https://docs.unity3d.com/Manual/ExecutionOrder.html). - /// - /// ## Edit Mode example - /// The most simple example of an Edit Mode test could be the one that yields `null` to skip the current frame and then continues to run: - /// - /// [UnityTest] - /// public IEnumerator EditorUtility_WhenExecuted_ReturnsSuccess() - /// { - /// var utility = RunEditorUtilityInTheBackgroud(); - /// - /// while (utility.isRunning) - /// { - /// yield return null; - /// } - /// - /// Assert.IsTrue(utility.isSuccess); - /// } - /// - /// - /// - /// ## Play Mode example - /// - /// In Play Mode, a test runs as a coroutine attached to a [MonoBehaviour](https://docs.unity3d.com/ScriptReference/MonoBehaviour.html). So all the yield instructions available in coroutines, are also available in your test. - /// - /// From a Play Mode test you can use one of Unity’s [Yield Instructions](https://docs.unity3d.com/ScriptReference/YieldInstruction.html): - /// - /// - [WaitForFixedUpdate](https://docs.unity3d.com/ScriptReference/WaitForFixedUpdate.html): to ensure changes expected within the next cycle of physics calculations. - /// - [WaitForSeconds](https://docs.unity3d.com/ScriptReference/WaitForSeconds.html): if you want to pause your test coroutine for a fixed amount of time. Be careful about creating long-running tests. - /// - /// The simplest example is to yield to `WaitForFixedUpdate`: - /// - /// [UnityTest] - /// public IEnumerator GameObject_WithRigidBody_WillBeAffectedByPhysics() - /// { - /// var go = new GameObject(); - /// go.AddComponent<Rigidbody>(); - /// var originalPosition = go.transform.position.y; - /// - /// yield return new WaitForFixedUpdate(); - /// - /// Assert.AreNotEqual(originalPosition, go.transform.position.y); - /// } - /// - /// - /// - [AttributeUsage(AttributeTargets.Method)] - public class UnityTestAttribute : CombiningStrategyAttribute, ISimpleTestBuilder, IImplyFixture - { - public UnityTestAttribute() : base(new UnityCombinatorialStrategy(), new ParameterDataSourceProvider()) {} - - private readonly NUnitTestCaseBuilder _builder = new NUnitTestCaseBuilder(); - - TestMethod ISimpleTestBuilder.BuildFrom(IMethodInfo method, Test suite) - { - TestCaseParameters parms = new TestCaseParameters - { - ExpectedResult = new object(), - HasExpectedResult = true - }; - - var t = _builder.BuildTestMethod(method, suite, parms); - - if (t.parms != null) - t.parms.HasExpectedResult = false; - - if (!method.ReturnType.IsType(typeof(IEnumerator))) - { - t.RunState = RunState.NotRunnable; - t.Properties.Set(PropertyNames.SkipReason, "Method marked with UnityTest must return IEnumerator."); - } - - return t; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/BaseDelegator.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/BaseDelegator.cs deleted file mode 100644 index 596c000..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/BaseDelegator.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System; -using System.Threading; -using NUnit.Framework.Internal; - -namespace UnityEngine.TestTools.NUnitExtensions -{ - internal abstract class BaseDelegator - { - protected ManualResetEvent m_Signal = new ManualResetEvent(false); - - protected object m_Result; - protected Exception m_Exception; - protected ITestExecutionContext m_Context; - - protected bool m_Aborted; - - protected object HandleResult() - { - SetCurrentTestContext(); - if (m_Exception != null) - { - var temp = m_Exception; - m_Exception = null; - throw temp; - } - var tempResult = m_Result; - m_Result = null; - return tempResult; - } - - protected void WaitForSignal() - { - while (!m_Signal.WaitOne(100)) - { - if (m_Aborted) - { - m_Aborted = false; - Reflect.MethodCallWrapper = null; - throw new Exception(); - } - } - } - - public void Abort() - { - m_Aborted = true; - } - - protected void SetCurrentTestContext() - { - var prop = typeof(TestExecutionContext).GetProperty("CurrentContext"); - if (prop != null) - { - prop.SetValue(null, m_Context, null); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/BeforeAfterTestCommandBase.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/BeforeAfterTestCommandBase.cs deleted file mode 100644 index 8de6b22..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/BeforeAfterTestCommandBase.cs +++ /dev/null @@ -1,234 +0,0 @@ -using System; -using System.Collections; -using System.Diagnostics; -using System.Linq; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Commands; -using UnityEngine.TestRunner.NUnitExtensions; -using UnityEngine.TestRunner.NUnitExtensions.Runner; -using UnityEngine.TestTools.Logging; -using UnityEngine.TestTools.TestRunner; - -namespace UnityEngine.TestTools -{ - internal abstract class BeforeAfterTestCommandBase : DelegatingTestCommand, IEnumerableTestMethodCommand - { - private string m_BeforeErrorPrefix; - private string m_AfterErrorPrefix; - private bool m_SkipYieldAfterActions; - protected BeforeAfterTestCommandBase(TestCommand innerCommand, string beforeErrorPrefix, string afterErrorPrefix, bool skipYieldAfterActions = false) - : base(innerCommand) - { - m_BeforeErrorPrefix = beforeErrorPrefix; - m_AfterErrorPrefix = afterErrorPrefix; - m_SkipYieldAfterActions = skipYieldAfterActions; - } - - internal Func GetUtcNow = () => new DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds(); - - protected T[] BeforeActions = new T[0]; - - protected T[] AfterActions = new T[0]; - - protected abstract IEnumerator InvokeBefore(T action, Test test, UnityTestExecutionContext context); - - protected abstract IEnumerator InvokeAfter(T action, Test test, UnityTestExecutionContext context); - - protected abstract BeforeAfterTestCommandState GetState(UnityTestExecutionContext context); - - public IEnumerable ExecuteEnumerable(ITestExecutionContext context) - { - var unityContext = (UnityTestExecutionContext)context; - var state = GetState(unityContext); - - if (state == null) - { - // We do not expect a state to exist in playmode - state = ScriptableObject.CreateInstance(); - } - - state.ApplyTestResult(context.CurrentResult); - - while (state.NextBeforeStepIndex < BeforeActions.Length) - { - state.Timestamp = GetUtcNow(); - var action = BeforeActions[state.NextBeforeStepIndex]; - IEnumerator enumerator; - try - { - enumerator = InvokeBefore(action, Test, unityContext); - } - catch (Exception ex) - { - state.TestHasRun = true; - context.CurrentResult.RecordPrefixedException(m_BeforeErrorPrefix, ex); - break; - } - ActivePcHelper.SetEnumeratorPC(enumerator, state.NextBeforeStepPc); - - using (var logScope = new LogScope()) - { - while (true) - { - try - { - if (!enumerator.MoveNext()) - { - break; - } - } - catch (Exception ex) - { - state.TestHasRun = true; - context.CurrentResult.RecordPrefixedException(m_BeforeErrorPrefix, ex); - state.StoreTestResult(context.CurrentResult); - break; - } - - state.NextBeforeStepPc = ActivePcHelper.GetEnumeratorPC(enumerator); - state.StoreTestResult(context.CurrentResult); - if (m_SkipYieldAfterActions) - { - break; - } - else - { - yield return enumerator.Current; - } - - if (GetUtcNow() - state.Timestamp > unityContext.TestCaseTimeout) - { - context.CurrentResult.RecordPrefixedError(m_BeforeErrorPrefix, new UnityTestTimeoutException(unityContext.TestCaseTimeout).Message); - state.TestHasRun = true; - break; - } - } - - if (logScope.AnyFailingLogs()) - { - state.TestHasRun = true; - context.CurrentResult.RecordPrefixedError(m_BeforeErrorPrefix, new UnhandledLogMessageException(logScope.FailingLogs.First()).Message); - state.StoreTestResult(context.CurrentResult); - } - } - - state.NextBeforeStepIndex++; - state.NextBeforeStepPc = 0; - } - - if (!state.TestHasRun) - { - if (innerCommand is IEnumerableTestMethodCommand) - { - var executeEnumerable = ((IEnumerableTestMethodCommand)innerCommand).ExecuteEnumerable(context); - foreach (var iterator in executeEnumerable) - { - state.StoreTestResult(context.CurrentResult); - yield return iterator; - } - } - else - { - context.CurrentResult = innerCommand.Execute(context); - state.StoreTestResult(context.CurrentResult); - } - - state.TestHasRun = true; - } - - while (state.NextAfterStepIndex < AfterActions.Length) - { - state.Timestamp = GetUtcNow(); - state.TestAfterStarted = true; - var action = AfterActions[state.NextAfterStepIndex]; - IEnumerator enumerator; - try - { - enumerator = InvokeAfter(action, Test, unityContext); - } - catch (Exception ex) - { - context.CurrentResult.RecordPrefixedException(m_AfterErrorPrefix, ex); - state.StoreTestResult(context.CurrentResult); - break; - } - ActivePcHelper.SetEnumeratorPC(enumerator, state.NextAfterStepPc); - - using (var logScope = new LogScope()) - { - while (true) - { - try - { - if (!enumerator.MoveNext()) - { - break; - } - } - catch (Exception ex) - { - context.CurrentResult.RecordPrefixedException(m_AfterErrorPrefix, ex); - state.StoreTestResult(context.CurrentResult); - break; - } - - state.NextAfterStepPc = ActivePcHelper.GetEnumeratorPC(enumerator); - state.StoreTestResult(context.CurrentResult); - - if (GetUtcNow() - state.Timestamp > unityContext.TestCaseTimeout) - { - context.CurrentResult.RecordPrefixedError(m_AfterErrorPrefix, new UnityTestTimeoutException(unityContext.TestCaseTimeout).Message); - yield break; - } - - if (m_SkipYieldAfterActions) - { - break; - } - else - { - yield return enumerator.Current; - } - } - - if (logScope.AnyFailingLogs()) - { - state.TestHasRun = true; - context.CurrentResult.RecordPrefixedError(m_AfterErrorPrefix, new UnhandledLogMessageException(logScope.FailingLogs.First()).Message); - state.StoreTestResult(context.CurrentResult); - } - } - - state.NextAfterStepIndex++; - state.NextAfterStepPc = 0; - } - - state.Reset(); - } - - public override TestResult Execute(ITestExecutionContext context) - { - throw new NotImplementedException("Use ExecuteEnumerable"); - } - - private static TestCommandPcHelper pcHelper; - - internal static TestCommandPcHelper ActivePcHelper - { - get - { - if (pcHelper == null) - { - pcHelper = new TestCommandPcHelper(); - } - - return pcHelper; - } - set - { - pcHelper = value; - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/BeforeAfterTestCommandState.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/BeforeAfterTestCommandState.cs deleted file mode 100644 index 967e855..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/BeforeAfterTestCommandState.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; -using System.Data; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; - -namespace UnityEngine.TestTools -{ - internal class BeforeAfterTestCommandState : ScriptableObject - { - public int NextBeforeStepIndex; - public int NextBeforeStepPc; - public int NextAfterStepIndex; - public int NextAfterStepPc; - public bool TestHasRun; - public TestStatus CurrentTestResultStatus; - public string CurrentTestResultLabel; - public FailureSite CurrentTestResultSite; - public string CurrentTestMessage; - public string CurrentTestStrackTrace; - public bool TestAfterStarted; - public long Timestamp; - - public void Reset() - { - NextBeforeStepIndex = 0; - NextBeforeStepPc = 0; - NextAfterStepIndex = 0; - NextAfterStepPc = 0; - TestHasRun = false; - CurrentTestResultStatus = TestStatus.Inconclusive; - CurrentTestResultLabel = null; - CurrentTestResultSite = default(FailureSite); - CurrentTestMessage = null; - CurrentTestStrackTrace = null; - TestAfterStarted = false; - } - - public void StoreTestResult(TestResult result) - { - CurrentTestResultStatus = result.ResultState.Status; - CurrentTestResultLabel = result.ResultState.Label; - CurrentTestResultSite = result.ResultState.Site; - CurrentTestMessage = result.Message; - CurrentTestStrackTrace = result.StackTrace; - } - - public void ApplyTestResult(TestResult result) - { - result.SetResult(new ResultState(CurrentTestResultStatus, CurrentTestResultLabel, CurrentTestResultSite), CurrentTestMessage, CurrentTestStrackTrace); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableApplyChangesToContextCommand.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableApplyChangesToContextCommand.cs deleted file mode 100644 index 81a672a..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableApplyChangesToContextCommand.cs +++ /dev/null @@ -1,34 +0,0 @@ - -using System.Collections; -using System.Collections.Generic; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Commands; -using UnityEngine.TestRunner.NUnitExtensions.Runner; - -namespace UnityEngine.TestTools -{ - internal class EnumerableApplyChangesToContextCommand : ApplyChangesToContextCommand, IEnumerableTestMethodCommand - { - public EnumerableApplyChangesToContextCommand(TestCommand innerCommand, IEnumerable changes) - : base(innerCommand, changes) { } - - public IEnumerable ExecuteEnumerable(ITestExecutionContext context) - { - ApplyChanges(context); - - if (innerCommand is IEnumerableTestMethodCommand) - { - var executeEnumerable = ((IEnumerableTestMethodCommand)innerCommand).ExecuteEnumerable(context); - foreach (var iterator in executeEnumerable) - { - yield return iterator; - } - } - else - { - context.CurrentResult = innerCommand.Execute(context); - } - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableRepeatedTestCommand.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableRepeatedTestCommand.cs deleted file mode 100644 index 796efbe..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableRepeatedTestCommand.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; -using System.Collections; -using System.Reflection; -using NUnit.Framework; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Commands; -using UnityEngine.TestRunner.NUnitExtensions.Runner; - -namespace UnityEngine.TestTools -{ - internal class EnumerableRepeatedTestCommand : DelegatingTestCommand, IEnumerableTestMethodCommand - { - private int repeatCount; - - public EnumerableRepeatedTestCommand(RepeatAttribute.RepeatedTestCommand commandToReplace) : base(commandToReplace.GetInnerCommand()) - { - repeatCount = (int) typeof(RepeatAttribute.RepeatedTestCommand) - .GetField("repeatCount", BindingFlags.NonPublic | BindingFlags.Instance) - .GetValue(commandToReplace); - } - - public override TestResult Execute(ITestExecutionContext context) - { - throw new NotImplementedException("Use ExecuteEnumerable"); - } - - public IEnumerable ExecuteEnumerable(ITestExecutionContext context) - { - var unityContext = (UnityTestExecutionContext)context; - int count = unityContext.EnumerableTestState.Repeat; - var firstCycleAfterResume = count > 0; - - while (count < repeatCount || (firstCycleAfterResume && count <= repeatCount)) - { - if (!firstCycleAfterResume) - { - count++; - } - - firstCycleAfterResume = false; - unityContext.EnumerableTestState.Repeat = count; - - if (innerCommand is IEnumerableTestMethodCommand) - { - var executeEnumerable = ((IEnumerableTestMethodCommand)innerCommand).ExecuteEnumerable(context); - foreach (var iterator in executeEnumerable) - { - yield return iterator; - } - } - else - { - context.CurrentResult = innerCommand.Execute(context); - } - - if (context.CurrentResult.ResultState != ResultState.Success) - { - break; - } - } - - unityContext.EnumerableTestState.Repeat = 0; - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableRetryTestCommand.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableRetryTestCommand.cs deleted file mode 100644 index 88f8052..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableRetryTestCommand.cs +++ /dev/null @@ -1,67 +0,0 @@ -using System; -using System.Collections; -using System.Reflection; -using NUnit.Framework; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Commands; -using UnityEngine.TestRunner.NUnitExtensions.Runner; - -namespace UnityEngine.TestTools -{ - internal class EnumerableRetryTestCommand : DelegatingTestCommand, IEnumerableTestMethodCommand - { - private int retryCount; - - public EnumerableRetryTestCommand(RetryAttribute.RetryCommand commandToReplace) : base(commandToReplace.GetInnerCommand()) - { - retryCount = (int) typeof(RetryAttribute.RetryCommand) - .GetField("_retryCount", BindingFlags.NonPublic | BindingFlags.Instance) - .GetValue(commandToReplace); - } - - public override TestResult Execute(ITestExecutionContext context) - { - throw new NotImplementedException("Use ExecuteEnumerable"); - } - - public IEnumerable ExecuteEnumerable(ITestExecutionContext context) - { - var unityContext = (UnityTestExecutionContext)context; - int count = unityContext.EnumerableTestState.Retry; - var firstCycleAfterResume = count > 0; - - while (count < retryCount || (firstCycleAfterResume && count <= retryCount)) - { - if (!firstCycleAfterResume) - { - count++; - } - - firstCycleAfterResume = false; - - unityContext.EnumerableTestState.Retry = count; - - if (innerCommand is IEnumerableTestMethodCommand) - { - var executeEnumerable = ((IEnumerableTestMethodCommand)innerCommand).ExecuteEnumerable(context); - foreach (var iterator in executeEnumerable) - { - yield return iterator; - } - } - else - { - context.CurrentResult = innerCommand.Execute(context); - } - - if (context.CurrentResult.ResultState != ResultState.Failure) - { - break; - } - } - - unityContext.EnumerableTestState.Retry = 0; - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableSetUpTearDownCommand.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableSetUpTearDownCommand.cs deleted file mode 100644 index e4010c0..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableSetUpTearDownCommand.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Collections; -using System.Linq; -using System.Reflection; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Commands; -using UnityEngine.TestRunner.NUnitExtensions.Runner; - -namespace UnityEngine.TestTools -{ - internal class EnumerableSetUpTearDownCommand : BeforeAfterTestCommandBase - { - public EnumerableSetUpTearDownCommand(TestCommand innerCommand) - : base(innerCommand, "SetUp", "TearDown") - { - if (Test.TypeInfo.Type != null) - { - BeforeActions = GetMethodsWithAttributeFromFixture(Test.TypeInfo.Type, typeof(UnitySetUpAttribute)); - AfterActions = GetMethodsWithAttributeFromFixture(Test.TypeInfo.Type, typeof(UnityTearDownAttribute)).Reverse().ToArray(); - } - } - - private static MethodInfo[] GetMethodsWithAttributeFromFixture(Type fixtureType, Type setUpType) - { - MethodInfo[] methodsWithAttribute = Reflect.GetMethodsWithAttribute(fixtureType, setUpType, true); - return methodsWithAttribute.Where(x => x.ReturnType == typeof(IEnumerator)).ToArray(); - } - - protected override IEnumerator InvokeBefore(MethodInfo action, Test test, UnityTestExecutionContext context) - { - return (IEnumerator)Reflect.InvokeMethod(action, context.TestObject); - } - - protected override IEnumerator InvokeAfter(MethodInfo action, Test test, UnityTestExecutionContext context) - { - return (IEnumerator)Reflect.InvokeMethod(action, context.TestObject); - } - - protected override BeforeAfterTestCommandState GetState(UnityTestExecutionContext context) - { - return context.SetUpTearDownState; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableTestMethodCommand.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableTestMethodCommand.cs deleted file mode 100644 index ef8ba2b..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableTestMethodCommand.cs +++ /dev/null @@ -1,96 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using NUnit.Framework; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Commands; -using NUnit.Framework.Internal.Execution; -using UnityEngine.TestRunner.NUnitExtensions.Runner; -using UnityEngine.TestTools.TestRunner; - -namespace UnityEngine.TestTools -{ - internal class EnumerableTestMethodCommand : TestCommand, IEnumerableTestMethodCommand - { - private readonly TestMethod testMethod; - - public EnumerableTestMethodCommand(TestMethod testMethod) - : base(testMethod) - { - this.testMethod = testMethod; - } - - public IEnumerable ExecuteEnumerable(ITestExecutionContext context) - { - yield return null; - - IEnumerator currentExecutingTestEnumerator; - try - { - currentExecutingTestEnumerator = new TestEnumeratorWrapper(testMethod).GetEnumerator(context); - } - catch (Exception ex) - { - context.CurrentResult.RecordException(ex); - yield break; - } - - if (currentExecutingTestEnumerator != null) - { - var testEnumeraterYieldInstruction = new TestEnumerator(context, currentExecutingTestEnumerator); - - yield return testEnumeraterYieldInstruction; - - var enumerator = testEnumeraterYieldInstruction.Execute(); - - var executingEnumerator = ExecuteEnumerableAndRecordExceptions(enumerator, context); - while (executingEnumerator.MoveNext()) - { - yield return executingEnumerator.Current; - } - } - else - { - if (context.CurrentResult.ResultState != ResultState.Ignored) - { - context.CurrentResult.SetResult(ResultState.Success); - } - } - } - - private static IEnumerator ExecuteEnumerableAndRecordExceptions(IEnumerator enumerator, ITestExecutionContext context) - { - while (true) - { - try - { - if (!enumerator.MoveNext()) - { - break; - } - } - catch (Exception ex) - { - context.CurrentResult.RecordException(ex); - break; - } - - if (enumerator.Current is IEnumerator) - { - var current = (IEnumerator)enumerator.Current; - yield return ExecuteEnumerableAndRecordExceptions(current, context); - } - else - { - yield return enumerator.Current; - } - } - } - - public override TestResult Execute(ITestExecutionContext context) - { - throw new NotImplementedException("Use ExecuteEnumerable"); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableTestState.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableTestState.cs deleted file mode 100644 index 4e230c6..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableTestState.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace UnityEngine.TestTools -{ - internal class EnumerableTestState : ScriptableObject - { - public int Repeat; - public int Retry; - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/ImmediateEnumerableCommand.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/ImmediateEnumerableCommand.cs deleted file mode 100644 index a50a95e..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/ImmediateEnumerableCommand.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Collections; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Commands; -using UnityEngine.TestRunner.NUnitExtensions.Runner; - -namespace UnityEngine.TestTools -{ - internal class ImmediateEnumerableCommand : DelegatingTestCommand - { - public ImmediateEnumerableCommand(TestCommand innerCommand) - : base(innerCommand) { } - - public override TestResult Execute(ITestExecutionContext context) - { - if (innerCommand is IEnumerableTestMethodCommand) - { - var executeEnumerable = ((IEnumerableTestMethodCommand)innerCommand).ExecuteEnumerable(context); - foreach (var iterator in executeEnumerable) - { - if (iterator != null) - { - throw new Exception("Only null can be yielded at this point."); - } - } - return context.CurrentResult; - } - - return innerCommand.Execute(context); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/OuterUnityTestActionCommand.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/OuterUnityTestActionCommand.cs deleted file mode 100644 index 34c2d21..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/OuterUnityTestActionCommand.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using System.Reflection; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Commands; -using UnityEngine.TestRunner.NUnitExtensions.Runner; - -namespace UnityEngine.TestTools -{ - internal class OuterUnityTestActionCommand : BeforeAfterTestCommandBase - { - public OuterUnityTestActionCommand(TestCommand innerCommand) - : base(innerCommand, "BeforeTest", "AfterTest") - { - if (Test.TypeInfo.Type != null) - { - BeforeActions = GetUnityTestActionsFromMethod(Test.Method.MethodInfo); - AfterActions = BeforeActions; - } - } - - private static IOuterUnityTestAction[] GetUnityTestActionsFromMethod(MethodInfo method) - { - var attributes = method.GetCustomAttributes(false); - List actions = new List(); - foreach (var attribute in attributes) - { - if (attribute is IOuterUnityTestAction) - actions.Add(attribute as IOuterUnityTestAction); - } - return actions.ToArray(); - } - - protected override IEnumerator InvokeBefore(IOuterUnityTestAction action, Test test, UnityTestExecutionContext context) - { - return action.BeforeTest(test); - } - - protected override IEnumerator InvokeAfter(IOuterUnityTestAction action, Test test, UnityTestExecutionContext context) - { - return action.AfterTest(test); - } - - protected override BeforeAfterTestCommandState GetState(UnityTestExecutionContext context) - { - return context.OuterUnityTestActionState; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/SetUpTearDownCommand.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/SetUpTearDownCommand.cs deleted file mode 100644 index b0f96cc..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/SetUpTearDownCommand.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using System.Collections; -using System.Linq; -using System.Reflection; -using NUnit.Framework; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Commands; -using NUnit.Framework.Internal.Execution; -using UnityEngine.TestRunner.NUnitExtensions.Runner; - -namespace UnityEngine.TestTools -{ - internal class SetUpTearDownCommand : BeforeAfterTestCommandBase - { - public SetUpTearDownCommand(TestCommand innerCommand) - : base(innerCommand, "SetUp", "TearDown", true) - { - if (Test.TypeInfo.Type != null) - { - BeforeActions = GetMethodsWithAttributeFromFixture(Test.TypeInfo.Type, typeof(SetUpAttribute)); - AfterActions = GetMethodsWithAttributeFromFixture(Test.TypeInfo.Type, typeof(TearDownAttribute)).Reverse().ToArray(); - } - } - - private static MethodInfo[] GetMethodsWithAttributeFromFixture(Type fixtureType, Type setUpType) - { - MethodInfo[] methodsWithAttribute = Reflect.GetMethodsWithAttribute(fixtureType, setUpType, true); - return methodsWithAttribute.Where(x => x.ReturnType == typeof(void)).ToArray(); - } - - protected override IEnumerator InvokeBefore(MethodInfo action, Test test, UnityTestExecutionContext context) - { - Reflect.InvokeMethod(action, context.TestObject); - yield return null; - } - - protected override IEnumerator InvokeAfter(MethodInfo action, Test test, UnityTestExecutionContext context) - { - Reflect.InvokeMethod(action, context.TestObject); - yield return null; - } - - protected override BeforeAfterTestCommandState GetState(UnityTestExecutionContext context) - { - return null; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/TestActionCommand.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/TestActionCommand.cs deleted file mode 100644 index 2b08fe1..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/TestActionCommand.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Reflection; -using NUnit.Framework; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Commands; -using UnityEngine.TestRunner.NUnitExtensions.Runner; - -namespace UnityEngine.TestTools -{ - internal class TestActionCommand : BeforeAfterTestCommandBase - { - public TestActionCommand(TestCommand innerCommand) - : base(innerCommand, "BeforeTest", "AfterTest", true) - { - if (Test.TypeInfo.Type != null) - { - BeforeActions = GetTestActionsFromMethod(Test.Method.MethodInfo); - AfterActions = BeforeActions; - } - } - - private static ITestAction[] GetTestActionsFromMethod(MethodInfo method) - { - var attributes = method.GetCustomAttributes(false); - List actions = new List(); - foreach (var attribute in attributes) - { - if (attribute is ITestAction) - actions.Add(attribute as ITestAction); - } - return actions.ToArray(); - } - - protected override IEnumerator InvokeBefore(ITestAction action, Test test, UnityTestExecutionContext context) - { - action.BeforeTest(test); - yield return null; - } - - protected override IEnumerator InvokeAfter(ITestAction action, Test test, UnityTestExecutionContext context) - { - action.AfterTest(test); - yield return null; - } - - protected override BeforeAfterTestCommandState GetState(UnityTestExecutionContext context) - { - return null; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/TestCommandPcHelper.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/TestCommandPcHelper.cs deleted file mode 100644 index 62dc806..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Commands/TestCommandPcHelper.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections; - -namespace UnityEngine.TestTools -{ - internal class TestCommandPcHelper - { - public virtual void SetEnumeratorPC(IEnumerator enumerator, int pc) - { - // Noop implementation used in playmode. - } - - public virtual int GetEnumeratorPC(IEnumerator enumerator) - { - return 0; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/ConstructDelegator.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/ConstructDelegator.cs deleted file mode 100644 index 1a6dd61..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/ConstructDelegator.cs +++ /dev/null @@ -1,141 +0,0 @@ -using System; -using System.Linq; -using NUnit.Framework.Internal; -using UnityEngine.TestRunner.NUnitExtensions.Runner; -using UnityEngine.TestTools.Logging; -using UnityEngine.TestTools.TestRunner; - -namespace UnityEngine.TestTools.NUnitExtensions -{ - /// - /// Specialization of BaseDelegator that makes sure objects are created on the MainThread. - /// It also deals with ScriptableObjects so that tests can survive assembly reload. - /// - internal class ConstructDelegator - { - private Type m_RequestedType; - private object[] m_Arguments; - - private ScriptableObject m_CurrentRunningTest; - private readonly IStateSerializer m_StateSerializer; - - protected Exception m_Exception; - protected object m_Result; - protected ITestExecutionContext m_Context; - - public ConstructDelegator(IStateSerializer stateSerializer) - { - m_StateSerializer = stateSerializer; - } - - protected object HandleResult() - { - SetCurrentTestContext(); - if (m_Exception != null) - { - var temp = m_Exception; - m_Exception = null; - throw temp; - } - var tempResult = m_Result; - m_Result = null; - return tempResult; - } - - protected void SetCurrentTestContext() - { - var prop = typeof(UnityTestExecutionContext).GetProperty("CurrentContext"); - if (prop != null) - { - prop.SetValue(null, m_Context, null); - } - } - - public object Delegate(Type type, object[] arguments) - { - AssertState(); - m_Context = UnityTestExecutionContext.CurrentContext; - - m_RequestedType = type; - m_Arguments = arguments; - - using (var logScope = new LogScope()) - { - Execute(logScope); - } - - return HandleResult(); - } - - private void AssertState() - { - if (m_RequestedType != null) - { - throw new Exception("Constructor not executed yet"); - } - } - - public bool HasAction() - { - return m_RequestedType != null; - } - - public void Execute(LogScope logScope) - { - try - { - if (typeof(ScriptableObject).IsAssignableFrom(m_RequestedType)) - { - if (m_CurrentRunningTest != null && m_RequestedType != m_CurrentRunningTest.GetType()) - { - DestroyCurrentTestObjectIfExists(); - } - if (m_CurrentRunningTest == null) - { - if (m_StateSerializer.CanRestoreFromScriptableObject(m_RequestedType)) - { - m_CurrentRunningTest = m_StateSerializer.RestoreScriptableObjectInstance(); - } - else - { - m_CurrentRunningTest = ScriptableObject.CreateInstance(m_RequestedType); - } - } - m_Result = m_CurrentRunningTest; - } - else - { - DestroyCurrentTestObjectIfExists(); - m_Result = Activator.CreateInstance(m_RequestedType, m_Arguments); - if (m_StateSerializer.CanRestoreFromJson(m_RequestedType)) - { - m_StateSerializer.RestoreClassFromJson(ref m_Result); - } - } - if (logScope.AnyFailingLogs()) - { - var failingLog = logScope.FailingLogs.First(); - throw new UnhandledLogMessageException(failingLog); - } - if (logScope.ExpectedLogs.Any()) - throw new UnexpectedLogMessageException(LogScope.Current.ExpectedLogs.Peek()); - } - catch (Exception e) - { - m_Exception = e; - } - finally - { - m_RequestedType = null; - m_Arguments = null; - } - } - - public void DestroyCurrentTestObjectIfExists() - { - if (m_CurrentRunningTest == null) - return; - Object.DestroyImmediate(m_CurrentRunningTest); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Filters/AssemblyNameFilter.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Filters/AssemblyNameFilter.cs deleted file mode 100644 index a1f6803..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Filters/AssemblyNameFilter.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal.Filters; - -namespace UnityEngine.TestRunner.NUnitExtensions.Filters -{ - internal class AssemblyNameFilter : ValueMatchFilter - { - public AssemblyNameFilter(string assemblyName) : base(assemblyName) {} - - public override bool Match(ITest test) - { - string assemblyName = string.Empty; - //Assembly fullname is in the format "Assembly-name, meta data ...", so extract the name by looking for the comma - if (test.TypeInfo != null && test.TypeInfo.Assembly != null && test.TypeInfo.FullName != null) - assemblyName = test.TypeInfo.Assembly.FullName.Substring(0, test.TypeInfo.Assembly.FullName.IndexOf(',')).TrimEnd(','); - return ExpectedValue.Equals(assemblyName, StringComparison.OrdinalIgnoreCase); - } - - protected override string ElementName - { - get { return "id"; } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Filters/CategoryFilterExtended.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Filters/CategoryFilterExtended.cs deleted file mode 100644 index f060d47..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Filters/CategoryFilterExtended.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Collections; -using System.Linq; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Filters; - -namespace UnityEngine.TestRunner.NUnitExtensions.Filters -{ - internal class CategoryFilterExtended : CategoryFilter - { - public static string k_DefaultCategory = "Uncategorized"; - - public CategoryFilterExtended(string name) : base(name) - { - } - - public override bool Match(ITest test) - { - IList testCategories = test.Properties[PropertyNames.Category].Cast().ToList(); - - if (test is TestMethod) - { - // Do not count tests with no attribute as Uncategorized if test fixture class has at least one attribute - // The test inherits the attribute from the test fixture - IList fixtureCategories = test.Parent.Properties[PropertyNames.Category].Cast().ToList(); - if (fixtureCategories.Count > 0) - return false; - } - - if (testCategories.Count == 0 && ExpectedValue == k_DefaultCategory && test is TestMethod) - return true; - - return base.Match(test); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/IAsyncTestAssemblyBuilder.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/IAsyncTestAssemblyBuilder.cs deleted file mode 100644 index 9058d9f..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/IAsyncTestAssemblyBuilder.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Collections.Generic; -using System.Reflection; -using NUnit.Framework.Api; -using NUnit.Framework.Interfaces; - -namespace UnityEngine.TestTools.NUnitExtensions -{ - internal interface IAsyncTestAssemblyBuilder : ITestAssemblyBuilder - { - IEnumerator BuildAsync(Assembly[] assemblies, TestPlatform[] testPlatforms, IDictionary options); - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/IStateSerializer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/IStateSerializer.cs deleted file mode 100644 index d4a3338..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/IStateSerializer.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; - -namespace UnityEngine.TestTools.NUnitExtensions -{ - internal interface IStateSerializer - { - ScriptableObject RestoreScriptableObjectInstance(); - void RestoreClassFromJson(ref object instance); - bool CanRestoreFromJson(Type requestedType); - bool CanRestoreFromScriptableObject(Type requestedType); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/CompositeWorkItem.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/CompositeWorkItem.cs deleted file mode 100644 index 6acff28..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/CompositeWorkItem.cs +++ /dev/null @@ -1,359 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using NUnit.Framework; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Commands; -using NUnit.Framework.Internal.Execution; -using UnityEngine.TestTools.Logging; -using UnityEngine.TestTools.TestRunner; - -namespace UnityEngine.TestRunner.NUnitExtensions.Runner -{ - internal class CompositeWorkItem : UnityWorkItem - { - private readonly TestSuite _suite; - private readonly TestSuiteResult _suiteResult; - private readonly ITestFilter _childFilter; - private TestCommand _setupCommand; - private TestCommand _teardownCommand; - - public List Children { get; private set; } - - private int _countOrder; - - private CountdownEvent _childTestCountdown; - - public CompositeWorkItem(TestSuite suite, ITestFilter childFilter, WorkItemFactory factory) - : base(suite, factory) - { - _suite = suite; - _suiteResult = Result as TestSuiteResult; - _childFilter = childFilter; - _countOrder = 0; - } - - protected override IEnumerable PerformWork() - { - InitializeSetUpAndTearDownCommands(); - - if (UnityTestExecutionContext.CurrentContext != null && m_DontRunRestoringResult && EditModeTestCallbacks.RestoringTestContext != null) - { - EditModeTestCallbacks.RestoringTestContext(); - } - - if (!CheckForCancellation()) - if (Test.RunState == RunState.Explicit && !_childFilter.IsExplicitMatch(Test)) - SkipFixture(ResultState.Explicit, GetSkipReason(), null); - else - switch (Test.RunState) - { - default: - case RunState.Runnable: - case RunState.Explicit: - Result.SetResult(ResultState.Success); - - CreateChildWorkItems(); - - if (Children.Count > 0) - { - if (!m_DontRunRestoringResult) - { - //This is needed to give the editor a chance to go out of playmode if needed before creating objects. - //If we do not, the objects could be automatically destroyed when exiting playmode and could result in errors later on - yield return null; - PerformOneTimeSetUp(); - } - - if (!CheckForCancellation()) - { - switch (Result.ResultState.Status) - { - case TestStatus.Passed: - foreach (var child in RunChildren()) - { - if (CheckForCancellation()) - { - yield break; - } - - yield return child; - } - break; - case TestStatus.Skipped: - case TestStatus.Inconclusive: - case TestStatus.Failed: - SkipChildren(_suite, Result.ResultState.WithSite(FailureSite.Parent), "OneTimeSetUp: " + Result.Message); - break; - } - } - - if (Context.ExecutionStatus != TestExecutionStatus.AbortRequested && !m_DontRunRestoringResult) - { - PerformOneTimeTearDown(); - } - } - break; - - case RunState.Skipped: - SkipFixture(ResultState.Skipped, GetSkipReason(), null); - break; - - case RunState.Ignored: - SkipFixture(ResultState.Ignored, GetSkipReason(), null); - break; - - case RunState.NotRunnable: - SkipFixture(ResultState.NotRunnable, GetSkipReason(), GetProviderStackTrace()); - break; - } - if (!ResultedInDomainReload) - { - WorkItemComplete(); - } - } - - private bool CheckForCancellation() - { - if (Context.ExecutionStatus != TestExecutionStatus.Running) - { - Result.SetResult(ResultState.Cancelled, "Test cancelled by user"); - return true; - } - - return false; - } - - private void InitializeSetUpAndTearDownCommands() - { - List setUpTearDownItems = _suite.TypeInfo != null - ? CommandBuilder.BuildSetUpTearDownList(_suite.TypeInfo.Type, typeof(OneTimeSetUpAttribute), typeof(OneTimeTearDownAttribute)) - : new List(); - - var actionItems = new List(); - foreach (ITestAction action in Actions) - { - bool applyToSuite = (action.Targets & ActionTargets.Suite) == ActionTargets.Suite - || action.Targets == ActionTargets.Default && !(Test is ParameterizedMethodSuite); - - bool applyToTest = (action.Targets & ActionTargets.Test) == ActionTargets.Test - && !(Test is ParameterizedMethodSuite); - - if (applyToSuite) - actionItems.Add(new TestActionItem(action)); - - if (applyToTest) - Context.UpstreamActions.Add(action); - } - - _setupCommand = CommandBuilder.MakeOneTimeSetUpCommand(_suite, setUpTearDownItems, actionItems); - _teardownCommand = CommandBuilder.MakeOneTimeTearDownCommand(_suite, setUpTearDownItems, actionItems); - } - - private void PerformOneTimeSetUp() - { - var logScope = new LogScope(); - try - { - _setupCommand.Execute(Context); - } - catch (Exception ex) - { - if (ex is NUnitException || ex is TargetInvocationException) - ex = ex.InnerException; - - Result.RecordException(ex, FailureSite.SetUp); - } - - if (logScope.AnyFailingLogs()) - { - Result.RecordException(new UnhandledLogMessageException(logScope.FailingLogs.First())); - } - logScope.Dispose(); - } - - private IEnumerable RunChildren() - { - int childCount = Children.Count; - if (childCount == 0) - throw new InvalidOperationException("RunChildren called but item has no children"); - - _childTestCountdown = new CountdownEvent(childCount); - - foreach (UnityWorkItem child in Children) - { - if (CheckForCancellation()) - { - yield break; - } - - var unityTestExecutionContext = new UnityTestExecutionContext(Context); - child.InitializeContext(unityTestExecutionContext); - - var enumerable = child.Execute().GetEnumerator(); - - while (true) - { - if (!enumerable.MoveNext()) - { - break; - } - ResultedInDomainReload |= child.ResultedInDomainReload; - yield return enumerable.Current; - } - - _suiteResult.AddResult(child.Result); - childCount--; - } - - if (childCount > 0) - { - while (childCount-- > 0) - CountDownChildTest(); - } - } - - private void CreateChildWorkItems() - { - Children = new List(); - var testSuite = _suite; - - foreach (ITest test in testSuite.Tests) - { - if (_childFilter.Pass(test)) - { - var child = m_Factory.Create(test, _childFilter); - - if (test.Properties.ContainsKey(PropertyNames.Order)) - { - Children.Insert(0, child); - _countOrder++; - } - else - { - Children.Add(child); - } - } - } - - if (_countOrder != 0) SortChildren(); - } - - private class UnityWorkItemOrderComparer : IComparer - { - public int Compare(UnityWorkItem x, UnityWorkItem y) - { - var xKey = int.MaxValue; - var yKey = int.MaxValue; - - if (x.Test.Properties.ContainsKey(PropertyNames.Order)) - xKey = (int)x.Test.Properties[PropertyNames.Order][0]; - - if (y.Test.Properties.ContainsKey(PropertyNames.Order)) - yKey = (int)y.Test.Properties[PropertyNames.Order][0]; - - return xKey.CompareTo(yKey); - } - } - - private void SortChildren() - { - Children.Sort(0, _countOrder, new UnityWorkItemOrderComparer()); - } - - private void SkipFixture(ResultState resultState, string message, string stackTrace) - { - Result.SetResult(resultState.WithSite(FailureSite.SetUp), message, StackFilter.Filter(stackTrace)); - SkipChildren(_suite, resultState.WithSite(FailureSite.Parent), "OneTimeSetUp: " + message); - } - - private void SkipChildren(TestSuite suite, ResultState resultState, string message) - { - foreach (Test child in suite.Tests) - { - if (_childFilter.Pass(child)) - { - Context.Listener.TestStarted(child); - TestResult childResult = child.MakeTestResult(); - childResult.SetResult(resultState, message); - _suiteResult.AddResult(childResult); - - if (child.IsSuite) - SkipChildren((TestSuite)child, resultState, message); - - Context.Listener.TestFinished(childResult); - } - } - } - - private void PerformOneTimeTearDown() - { - var logScope = new LogScope(); - try - { - _teardownCommand.Execute(Context); - } - catch (Exception ex) - { - if (ex is NUnitException || ex is TargetInvocationException) - ex = ex.InnerException; - - Result.RecordException(ex, FailureSite.SetUp); - } - - if (logScope.AnyFailingLogs()) - { - Result.RecordException(new UnhandledLogMessageException(logScope.FailingLogs.First())); - } - logScope.Dispose(); - } - - private string GetSkipReason() - { - return (string)Test.Properties.Get(PropertyNames.SkipReason); - } - - private string GetProviderStackTrace() - { - return (string)Test.Properties.Get(PropertyNames.ProviderStackTrace); - } - - private void CountDownChildTest() - { - _childTestCountdown.Signal(); - if (_childTestCountdown.CurrentCount == 0) - { - if (Context.ExecutionStatus != TestExecutionStatus.AbortRequested) - PerformOneTimeTearDown(); - - foreach (var childResult in _suiteResult.Children) - if (childResult.ResultState == ResultState.Cancelled) - { - this.Result.SetResult(ResultState.Cancelled, "Cancelled by user"); - break; - } - - WorkItemComplete(); - } - } - - public override void Cancel(bool force) - { - if (Children == null) - return; - - foreach (var child in Children) - { - var ctx = child.Context; - if (ctx != null) - ctx.ExecutionStatus = force ? TestExecutionStatus.AbortRequested : TestExecutionStatus.StopRequested; - - if (child.State == WorkItemState.Running) - child.Cancel(force); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/CoroutineTestWorkItem.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/CoroutineTestWorkItem.cs deleted file mode 100644 index 2574e77..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/CoroutineTestWorkItem.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System; -using System.Collections; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Commands; -using NUnit.Framework.Internal.Execution; -using UnityEngine.TestTools.Utils; - -namespace UnityEngine.TestRunner.NUnitExtensions.Runner -{ - internal class CoroutineTestWorkItem : UnityWorkItem - { - private static MonoBehaviour m_MonoBehaviourCoroutineRunner; - private TestCommand m_Command; - - public static MonoBehaviour monoBehaviourCoroutineRunner - { - get - { - if (m_MonoBehaviourCoroutineRunner == null) - { - throw new NullReferenceException("MonoBehaviour coroutine runner not set"); - } - return m_MonoBehaviourCoroutineRunner; - } - set { m_MonoBehaviourCoroutineRunner = value; } - } - - public CoroutineTestWorkItem(TestMethod test, ITestFilter filter) - : base(test, null) - { - m_Command = m_Command = TestCommandBuilder.BuildTestCommand(test, filter); - } - - protected override IEnumerable PerformWork() - { - if (m_Command is SkipCommand) - { - m_Command.Execute(Context); - Result = Context.CurrentResult; - WorkItemComplete(); - yield break; - } - - if (m_Command is ApplyChangesToContextCommand) - { - var applyChangesToContextCommand = (ApplyChangesToContextCommand)m_Command; - applyChangesToContextCommand.ApplyChanges(Context); - m_Command = applyChangesToContextCommand.GetInnerCommand(); - } - - var enumerableTestMethodCommand = (IEnumerableTestMethodCommand)m_Command; - try - { - var executeEnumerable = enumerableTestMethodCommand.ExecuteEnumerable(Context).GetEnumerator(); - - var coroutineRunner = new CoroutineRunner(monoBehaviourCoroutineRunner, Context); - yield return coroutineRunner.HandleEnumerableTest(executeEnumerable); - - if (coroutineRunner.HasFailedWithTimeout()) - { - Context.CurrentResult.SetResult(ResultState.Failure, string.Format("Test exceeded Timeout value of {0}ms", Context.TestCaseTimeout)); - } - - while (executeEnumerable.MoveNext()) {} - - Result = Context.CurrentResult; - } - finally - { - WorkItemComplete(); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/DefaultTestWorkItem.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/DefaultTestWorkItem.cs deleted file mode 100644 index bc92ce1..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/DefaultTestWorkItem.cs +++ /dev/null @@ -1,98 +0,0 @@ -using System; -using System.Collections; -using System.Linq; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Commands; -using NUnit.Framework.Internal.Execution; -using UnityEngine.TestTools; -using SetUpTearDownCommand = NUnit.Framework.Internal.Commands.SetUpTearDownCommand; -using TestActionCommand = NUnit.Framework.Internal.Commands.TestActionCommand; - -namespace UnityEngine.TestRunner.NUnitExtensions.Runner -{ - internal class EditModeTestCallbacks - { - public static Action RestoringTestContext { get; set; } - } - - internal class DefaultTestWorkItem : UnityWorkItem - { - private TestCommand _command; - public DefaultTestWorkItem(TestMethod test, ITestFilter filter) - : base(test, null) - { - _command = TestCommandBuilder.BuildTestCommand(test, filter); - } - - protected override IEnumerable PerformWork() - { - if (m_DontRunRestoringResult && EditModeTestCallbacks.RestoringTestContext != null) - { - EditModeTestCallbacks.RestoringTestContext(); - Result = Context.CurrentResult; - yield break; - } - - try - { - if (_command is SkipCommand || _command is FailCommand) - { - Result = _command.Execute(Context); - yield break; - } - - if (!(_command is IEnumerableTestMethodCommand)) - { - Debug.LogError("Cannot perform work on " + _command.GetType().Name); - yield break; - } - if (Context.TestCaseTimeout == 0) - { - Context.TestCaseTimeout = k_DefaultTimeout; - } - foreach (var workItemStep in ((IEnumerableTestMethodCommand)_command).ExecuteEnumerable(Context)) - { - ResultedInDomainReload = false; - - if (workItemStep is IEditModeTestYieldInstruction) - { - var editModeTestYieldInstruction = (IEditModeTestYieldInstruction)workItemStep; - yield return editModeTestYieldInstruction; - var enumerator = editModeTestYieldInstruction.Perform(); - while (true) - { - bool moveNext; - try - { - moveNext = enumerator.MoveNext(); - } - catch (Exception e) - { - Context.CurrentResult.RecordException(e); - break; - } - - if (!moveNext) - { - break; - } - - yield return null; - } - } - else - { - yield return workItemStep; - } - } - - Result = Context.CurrentResult; - } - finally - { - WorkItemComplete(); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/FailCommand.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/FailCommand.cs deleted file mode 100644 index 0c31ded..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/FailCommand.cs +++ /dev/null @@ -1,34 +0,0 @@ - -using System.Collections; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Commands; - -namespace UnityEngine.TestRunner.NUnitExtensions.Runner -{ - internal class FailCommand : TestCommand, IEnumerableTestMethodCommand - { - private ResultState m_ResultState; - private string m_Message; - - public FailCommand(Test test, ResultState resultState, string message) - : base(test) - { - m_ResultState = resultState; - m_Message = message; - } - - public override TestResult Execute(ITestExecutionContext context) - { - context.CurrentResult.SetResult(m_ResultState, m_Message); - return context.CurrentResult; - } - - public IEnumerable ExecuteEnumerable(ITestExecutionContext context) - { - context.CurrentResult.SetResult(m_ResultState, m_Message); - yield return null; - } - } - -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/IEnumerableTestMethodCommand.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/IEnumerableTestMethodCommand.cs deleted file mode 100644 index d62979a..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/IEnumerableTestMethodCommand.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Collections; -using NUnit.Framework.Internal; - -namespace UnityEngine.TestRunner.NUnitExtensions.Runner -{ - internal interface IEnumerableTestMethodCommand - { - IEnumerable ExecuteEnumerable(ITestExecutionContext context); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/PlaymodeWorkItemFactory.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/PlaymodeWorkItemFactory.cs deleted file mode 100644 index bdb55fe..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/PlaymodeWorkItemFactory.cs +++ /dev/null @@ -1,13 +0,0 @@ -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; - -namespace UnityEngine.TestRunner.NUnitExtensions.Runner -{ - internal class PlaymodeWorkItemFactory : WorkItemFactory - { - protected override UnityWorkItem Create(TestMethod method, ITestFilter filter, ITest loadedTest) - { - return new CoroutineTestWorkItem(method, filter); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/RestoreTestContextAfterDomainReload.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/RestoreTestContextAfterDomainReload.cs deleted file mode 100644 index 4171ed8..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/RestoreTestContextAfterDomainReload.cs +++ /dev/null @@ -1,4 +0,0 @@ -namespace UnityEngine.TestRunner.NUnitExtensions.Runner -{ - internal class RestoreTestContextAfterDomainReload {} -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/TestCommandBuilder.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/TestCommandBuilder.cs deleted file mode 100644 index 7cf2103..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/TestCommandBuilder.cs +++ /dev/null @@ -1,127 +0,0 @@ -using System; -using System.Collections; -using System.Linq; -using NUnit.Framework; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Commands; -using UnityEngine.TestTools; - -namespace UnityEngine.TestRunner.NUnitExtensions.Runner -{ - internal static class TestCommandBuilder - { - public static TestCommand BuildTestCommand(TestMethod test, ITestFilter filter) - { - if (test.RunState != RunState.Runnable && - !(test.RunState == RunState.Explicit && filter.IsExplicitMatch(test))) - { - return new SkipCommand(test); - } - - var testReturnsIEnumerator = test.Method.ReturnType.Type == typeof(IEnumerator); - - TestCommand command; - if (!testReturnsIEnumerator) - { - command = new TestMethodCommand(test); - } - else - { - command = new EnumerableTestMethodCommand(test); - } - - command = new UnityLogCheckDelegatingCommand(command); - foreach (var wrapper in test.Method.GetCustomAttributes(true)) - { - command = wrapper.Wrap(command); - if (command == null) - { - var message = String.Format("IWrapTestMethod implementation '{0}' returned null as command.", - wrapper.GetType().FullName); - return new FailCommand(test, ResultState.Failure, message); - } - - if (testReturnsIEnumerator && !(command is IEnumerableTestMethodCommand)) - { - command = TryReplaceWithEnumerableCommand(command); - if (command != null) - { - continue; - } - - var message = String.Format("'{0}' is not supported on {1} as it does not handle returning IEnumerator.", - wrapper.GetType().FullName, - GetTestBuilderName(test)); - return new FailCommand(test, ResultState.Failure, message); - } - } - - command = new UnityEngine.TestTools.TestActionCommand(command); - command = new UnityEngine.TestTools.SetUpTearDownCommand(command); - - if (!testReturnsIEnumerator) - { - command = new ImmediateEnumerableCommand(command); - } - - foreach (var wrapper in test.Method.GetCustomAttributes(true)) - { - command = wrapper.Wrap(command); - if (command == null) - { - var message = String.Format("IWrapSetUpTearDown implementation '{0}' returned null as command.", - wrapper.GetType().FullName); - return new FailCommand(test, ResultState.Failure, message); - } - - if (testReturnsIEnumerator && !(command is IEnumerableTestMethodCommand)) - { - command = TryReplaceWithEnumerableCommand(command); - if (command != null) - { - continue; - } - - var message = String.Format("'{0}' is not supported on {1} as it does not handle returning IEnumerator.", - wrapper.GetType().FullName, - GetTestBuilderName(test)); - return new FailCommand(test, ResultState.Failure, message); - } - } - - command = new EnumerableSetUpTearDownCommand(command); - command = new OuterUnityTestActionCommand(command); - - IApplyToContext[] changes = test.Method.GetCustomAttributes(true); - if (changes.Length > 0) - { - command = new EnumerableApplyChangesToContextCommand(command, changes); - } - - return command; - } - - private static string GetTestBuilderName(TestMethod testMethod) - { - return new[] - { - testMethod.Method.GetCustomAttributes(true).Select(attribute => attribute.GetType().Name), - testMethod.Method.GetCustomAttributes(true).Select(attribute => attribute.GetType().Name) - }.SelectMany(v => v).FirstOrDefault(); - } - - private static TestCommand TryReplaceWithEnumerableCommand(TestCommand command) - { - switch (command.GetType().Name) - { - case nameof(RepeatAttribute.RepeatedTestCommand): - return new EnumerableRepeatedTestCommand(command as RepeatAttribute.RepeatedTestCommand); - case nameof(RetryAttribute.RetryCommand): - return new EnumerableRetryTestCommand(command as RetryAttribute.RetryCommand); - default: - return null; - } - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/UnityLogCheckDelegatingCommand.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/UnityLogCheckDelegatingCommand.cs deleted file mode 100644 index 1081e06..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/UnityLogCheckDelegatingCommand.cs +++ /dev/null @@ -1,143 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Commands; -using UnityEngine.TestTools; -using UnityEngine.TestTools.Logging; -using UnityEngine.TestTools.TestRunner; - -namespace UnityEngine.TestRunner.NUnitExtensions.Runner -{ - class UnityLogCheckDelegatingCommand : DelegatingTestCommand, IEnumerableTestMethodCommand - { - static Dictionary s_AttributeCache = new Dictionary(); - - public UnityLogCheckDelegatingCommand(TestCommand innerCommand) - : base(innerCommand) {} - - public override TestResult Execute(ITestExecutionContext context) - { - using (var logScope = new LogScope()) - { - if (ExecuteAndCheckLog(logScope, context.CurrentResult, () => innerCommand.Execute(context))) - PostTestValidation(logScope, innerCommand, context.CurrentResult); - } - - return context.CurrentResult; - } - - public IEnumerable ExecuteEnumerable(ITestExecutionContext context) - { - if (!(innerCommand is IEnumerableTestMethodCommand enumerableTestMethodCommand)) - { - Execute(context); - yield break; - } - - using (var logScope = new LogScope()) - { - IEnumerable executeEnumerable = null; - - if (!ExecuteAndCheckLog(logScope, context.CurrentResult, - () => executeEnumerable = enumerableTestMethodCommand.ExecuteEnumerable(context))) - yield break; - - foreach (var step in executeEnumerable) - { - // do not check expected logs here - we want to permit expecting and receiving messages to run - // across frames. (but we do always want to catch a fail immediately.) - if (!CheckFailingLogs(logScope, context.CurrentResult)) - yield break; - - yield return step; - } - - if (!CheckLogs(context.CurrentResult, logScope)) - yield break; - - PostTestValidation(logScope, innerCommand, context.CurrentResult); - } - } - - static bool CaptureException(TestResult result, Action action) - { - try - { - action(); - return true; - } - catch (Exception e) - { - result.RecordException(e); - return false; - } - } - - static bool ExecuteAndCheckLog(LogScope logScope, TestResult result, Action action) - => CaptureException(result, action) && CheckLogs(result, logScope); - - static void PostTestValidation(LogScope logScope, TestCommand command, TestResult result) - { - if (MustExpect(command.Test.Method.MethodInfo)) - CaptureException(result, logScope.NoUnexpectedReceived); - } - - static bool CheckLogs(TestResult result, LogScope logScope) - => CheckFailingLogs(logScope, result) && CheckExpectedLogs(logScope, result); - - static bool CheckFailingLogs(LogScope logScope, TestResult result) - { - if (!logScope.AnyFailingLogs()) - return true; - - var failingLog = logScope.FailingLogs.First(); - result.RecordException(new UnhandledLogMessageException(failingLog)); - return false; - } - - static bool CheckExpectedLogs(LogScope logScope, TestResult result) - { - if (!logScope.ExpectedLogs.Any()) - return true; - - var expectedLog = logScope.ExpectedLogs.Peek(); - result.RecordException(new UnexpectedLogMessageException(expectedLog)); - return false; - } - - static bool MustExpect(MemberInfo method) - { - // method - - var methodAttr = method.GetCustomAttributes(true).FirstOrDefault(); - if (methodAttr != null) - return methodAttr.MustExpect; - - // fixture - - var fixture = method.DeclaringType; - if (!s_AttributeCache.TryGetValue(fixture, out var mustExpect)) - { - var fixtureAttr = fixture.GetCustomAttributes(true).FirstOrDefault(); - mustExpect = s_AttributeCache[fixture] = fixtureAttr?.MustExpect; - } - - if (mustExpect != null) - return mustExpect.Value; - - // assembly - - var assembly = fixture.Assembly; - if (!s_AttributeCache.TryGetValue(assembly, out mustExpect)) - { - var assemblyAttr = assembly.GetCustomAttributes().FirstOrDefault(); - mustExpect = s_AttributeCache[assembly] = assemblyAttr?.MustExpect; - } - - return mustExpect == true; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/UnityTestAssemblyRunner.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/UnityTestAssemblyRunner.cs deleted file mode 100644 index dbb60c8..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/UnityTestAssemblyRunner.cs +++ /dev/null @@ -1,98 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using NUnit; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using UnityEngine.TestTools; -using UnityEngine.TestTools.NUnitExtensions; - -namespace UnityEngine.TestRunner.NUnitExtensions.Runner -{ - internal interface IUnityTestAssemblyRunner - { - ITest LoadedTest { get; } - ITestResult Result { get; } - bool IsTestLoaded { get; } - bool IsTestRunning { get; } - bool IsTestComplete { get; } - UnityWorkItem TopLevelWorkItem { get; set; } - UnityTestExecutionContext GetCurrentContext(); - ITest Load(Assembly[] assemblies, TestPlatform testPlatform, IDictionary settings); - IEnumerable Run(ITestListener listener, ITestFilter filter); - void StopRun(); - } - - internal class UnityTestAssemblyRunner : IUnityTestAssemblyRunner - { - private readonly UnityTestAssemblyBuilder unityBuilder; - private readonly WorkItemFactory m_Factory; - - protected UnityTestExecutionContext Context { get; set; } - - public UnityTestExecutionContext GetCurrentContext() - { - return UnityTestExecutionContext.CurrentContext; - } - - protected IDictionary Settings { get; set; } - public ITest LoadedTest { get; protected set; } - - public ITestResult Result - { - get { return TopLevelWorkItem == null ? null : TopLevelWorkItem.Result; } - } - - public bool IsTestLoaded - { - get { return LoadedTest != null; } - } - - public bool IsTestRunning - { - get { return TopLevelWorkItem != null && TopLevelWorkItem.State == NUnit.Framework.Internal.Execution.WorkItemState.Running; } - } - public bool IsTestComplete - { - get { return TopLevelWorkItem != null && TopLevelWorkItem.State == NUnit.Framework.Internal.Execution.WorkItemState.Complete; } - } - - public UnityTestAssemblyRunner(UnityTestAssemblyBuilder builder, WorkItemFactory factory) - { - unityBuilder = builder; - m_Factory = factory; - Context = new UnityTestExecutionContext(); - } - - public ITest Load(Assembly[] assemblies, TestPlatform testPlatform, IDictionary settings) - { - Settings = settings; - - if (settings.ContainsKey(FrameworkPackageSettings.RandomSeed)) - Randomizer.InitialSeed = (int)settings[FrameworkPackageSettings.RandomSeed]; - - return LoadedTest = unityBuilder.Build(assemblies, Enumerable.Repeat(testPlatform, assemblies.Length).ToArray(), settings); - } - - public IEnumerable Run(ITestListener listener, ITestFilter filter) - { - TopLevelWorkItem = m_Factory.Create(LoadedTest, filter); - TopLevelWorkItem.InitializeContext(Context); - UnityTestExecutionContext.CurrentContext = Context; - Context.Listener = listener; - - return TopLevelWorkItem.Execute(); - } - - public UnityWorkItem TopLevelWorkItem { get; set; } - - public void StopRun() - { - if (IsTestRunning) - { - TopLevelWorkItem.Cancel(false); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/UnityTestExecutionContext.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/UnityTestExecutionContext.cs deleted file mode 100644 index 1ba8751..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/UnityTestExecutionContext.cs +++ /dev/null @@ -1,130 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Globalization; -using System.IO; -using NUnit.Framework; -using NUnit.Framework.Constraints; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Execution; -using UnityEngine.TestTools; - -namespace UnityEngine.TestRunner.NUnitExtensions.Runner -{ - internal class UnityTestExecutionContext : ITestExecutionContext - { - private readonly UnityTestExecutionContext _priorContext; - private TestResult _currentResult; - private int _assertCount; - - public static UnityTestExecutionContext CurrentContext { get; set; } - - public UnityTestExecutionContext Context { get; private set; } - - public Test CurrentTest { get; set; } - public DateTime StartTime { get; set; } - public long StartTicks { get; set; } - public TestResult CurrentResult - { - get { return _currentResult; } - set - { - _currentResult = value; - if (value != null) - OutWriter = value.OutWriter; - } - } - - public object TestObject { get; set; } - public string WorkDirectory { get; set; } - - - private TestExecutionStatus _executionStatus; - public TestExecutionStatus ExecutionStatus - { - get - { - // ExecutionStatus may have been set to StopRequested or AbortRequested - // in a prior context. If so, reflect the same setting in this context. - if (_executionStatus == TestExecutionStatus.Running && _priorContext != null) - _executionStatus = _priorContext.ExecutionStatus; - - return _executionStatus; - } - set - { - _executionStatus = value; - - // Push the same setting up to all prior contexts - if (_priorContext != null) - _priorContext.ExecutionStatus = value; - } - } - - public List UpstreamActions { get; private set; } - public int TestCaseTimeout { get; set; } - public CultureInfo CurrentCulture { get; set; } - public CultureInfo CurrentUICulture { get; set; } - public ITestListener Listener { get; set; } - - public UnityTestExecutionContext() - { - UpstreamActions = new List(); - CurrentContext = this; - } - - public UnityTestExecutionContext(UnityTestExecutionContext other) - { - _priorContext = other; - - CurrentTest = other.CurrentTest; - CurrentResult = other.CurrentResult; - TestObject = other.TestObject; - WorkDirectory = other.WorkDirectory; - Listener = other.Listener; - TestCaseTimeout = other.TestCaseTimeout; - UpstreamActions = new List(other.UpstreamActions); - SetUpTearDownState = other.SetUpTearDownState; - OuterUnityTestActionState = other.OuterUnityTestActionState; - EnumerableTestState = other.EnumerableTestState; - - TestContext.CurrentTestExecutionContext = this; - - CurrentCulture = other.CurrentCulture; - CurrentUICulture = other.CurrentUICulture; - CurrentContext = this; - } - - public TextWriter OutWriter { get; private set; } - public bool StopOnError { get; set; } - - public IWorkItemDispatcher Dispatcher { get; set; } - - public ParallelScope ParallelScope { get; set; } - public string WorkerId { get; private set; } - public Randomizer RandomGenerator { get; private set; } - public ValueFormatter CurrentValueFormatter { get; private set; } - public bool IsSingleThreaded { get; set; } - public BeforeAfterTestCommandState SetUpTearDownState { get; set; } - public BeforeAfterTestCommandState OuterUnityTestActionState { get; set; } - public EnumerableTestState EnumerableTestState { get; set; } - - internal int AssertCount - { - get - { - return _assertCount; - } - } - - public void IncrementAssertCount() - { - _assertCount += 1; - } - - public void AddFormatter(ValueFormatterFactory formatterFactory) - { - throw new NotImplementedException(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/UnityWorkItem.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/UnityWorkItem.cs deleted file mode 100644 index c4a1527..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/UnityWorkItem.cs +++ /dev/null @@ -1,117 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using NUnit.Framework; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Execution; - -namespace UnityEngine.TestRunner.NUnitExtensions.Runner -{ - internal abstract class UnityWorkItem - { - protected readonly WorkItemFactory m_Factory; - protected bool m_ExecuteTestStartEvent; - protected bool m_DontRunRestoringResult; - protected const int k_DefaultTimeout = 1000 * 180; - public event EventHandler Completed; - - public bool ResultedInDomainReload { get; internal set; } - - public UnityTestExecutionContext Context { get; private set; } - - public Test Test { get; private set; } - - public TestResult Result { get; protected set; } - - public WorkItemState State { get; private set; } - - public List Actions { get; private set; } - - protected UnityWorkItem(Test test, WorkItemFactory factory) - { - m_Factory = factory; - Test = test; - Actions = new List(); - Result = test.MakeTestResult(); - State = WorkItemState.Ready; - m_ExecuteTestStartEvent = ShouldExecuteStartEvent(); - m_DontRunRestoringResult = ShouldRestore(test); - } - - protected static bool ShouldRestore(ITest loadedTest) - { - return UnityWorkItemDataHolder.alreadyExecutedTests != null && - UnityWorkItemDataHolder.alreadyExecutedTests.Contains(loadedTest.GetUniqueName()); - } - - protected bool ShouldExecuteStartEvent() - { - return UnityWorkItemDataHolder.alreadyStartedTests != null && - UnityWorkItemDataHolder.alreadyStartedTests.All(x => x != Test.GetUniqueName()) && - !ShouldRestore(Test); - } - - protected abstract IEnumerable PerformWork(); - - public void InitializeContext(UnityTestExecutionContext context) - { - Context = context; - - if (Test is TestAssembly) - Actions.AddRange(ActionsHelper.GetActionsFromTestAssembly((TestAssembly)Test)); - else if (Test is ParameterizedMethodSuite) - Actions.AddRange(ActionsHelper.GetActionsFromTestMethodInfo(Test.Method)); - else if (Test.TypeInfo != null) - Actions.AddRange(ActionsHelper.GetActionsFromTypesAttributes(Test.TypeInfo.Type)); - } - - public virtual IEnumerable Execute() - { - Context.CurrentTest = this.Test; - Context.CurrentResult = this.Result; - - if (m_ExecuteTestStartEvent) - { - Context.Listener.TestStarted(Test); - } - - Context.StartTime = DateTime.UtcNow; - Context.StartTicks = Stopwatch.GetTimestamp(); - - State = WorkItemState.Running; - - return PerformWork(); - } - - protected void WorkItemComplete() - { - State = WorkItemState.Complete; - - Result.StartTime = Context.StartTime; - Result.EndTime = DateTime.UtcNow; - - long tickCount = Stopwatch.GetTimestamp() - Context.StartTicks; - double seconds = (double)tickCount / Stopwatch.Frequency; - Result.Duration = seconds; - - //Result.AssertCount += Context.AssertCount; - - Context.Listener.TestFinished(Result); - - if (Completed != null) - Completed(this, EventArgs.Empty); - - Context.TestObject = null; - Test.Fixture = null; - } - - public virtual void Cancel(bool force) - { - Result.SetResult(ResultState.Cancelled, "Cancelled by user"); - Context.Listener.TestFinished(Result); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/UnityWorkItemDataHolder.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/UnityWorkItemDataHolder.cs deleted file mode 100644 index dc9a3d1..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/UnityWorkItemDataHolder.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Collections.Generic; - -namespace UnityEngine.TestRunner.NUnitExtensions.Runner -{ - internal class UnityWorkItemDataHolder - { - public static List alreadyStartedTests = new List(); - public static List alreadyExecutedTests; - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/WorkItemFactory.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/WorkItemFactory.cs deleted file mode 100644 index 89683ac..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/Runner/WorkItemFactory.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System.Collections; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; - -namespace UnityEngine.TestRunner.NUnitExtensions.Runner -{ - internal abstract class WorkItemFactory - { - public UnityWorkItem Create(ITest loadedTest, ITestFilter filter) - { - TestSuite suite = loadedTest as TestSuite; - if (suite != null) - { - return new CompositeWorkItem(suite, filter, this); - } - - var testMethod = (TestMethod)loadedTest; - if (testMethod.Method.ReturnType.Type != typeof(IEnumerator)) - { - return new DefaultTestWorkItem(testMethod, filter); - } - - return Create(testMethod, filter, loadedTest); - } - - protected abstract UnityWorkItem Create(TestMethod method, ITestFilter filter, ITest loadedTest); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/TestExtensions.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/TestExtensions.cs deleted file mode 100644 index 0f9e541..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/TestExtensions.cs +++ /dev/null @@ -1,153 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using UnityEngine.TestRunner.NUnitExtensions.Filters; - -namespace UnityEngine.TestRunner.NUnitExtensions -{ - internal static class TestExtensions - { - private static IEnumerable GetTestCategories(this ITest test) - { - var categories = test.Properties[PropertyNames.Category].Cast().ToList(); - if (categories.Count == 0 && test is TestMethod) - { - // only mark tests as Uncategorized if the test fixture doesn't have a category, - // otherwise the test inherits the Fixture category - var fixtureCategories = test.Parent.Properties[PropertyNames.Category].Cast().ToList(); - if (fixtureCategories.Count == 0) - categories.Add(CategoryFilterExtended.k_DefaultCategory); - } - return categories; - } - - public static bool HasCategory(this ITest test, string[] categoryFilter) - { - var categories = test.GetAllCategoriesFromTest().Distinct(); - return categoryFilter.Any(c => categories.Any(r => r == c)); - } - - public static List GetAllCategoriesFromTest(this ITest test) - { - if (test.Parent == null) - return test.GetTestCategories().ToList(); - - var categories = GetAllCategoriesFromTest(test.Parent); - categories.AddRange(test.GetTestCategories()); - return categories; - } - - public static void ParseForNameDuplicates(this ITest test) - { - var duplicates = new Dictionary(); - for (var i = 0; i < test.Tests.Count; i++) - { - var child = test.Tests[i]; - int count; - if (duplicates.TryGetValue(child.FullName, out count)) - { - count++; - child.Properties.Add("childIndex", count); - duplicates[child.FullName] = count; - } - else - { - duplicates.Add(child.FullName, 1); - } - ParseForNameDuplicates(child); - } - } - - public static int GetChildIndex(this ITest test) - { - var index = test.Properties["childIndex"]; - return (int)index[0]; - } - - public static bool HasChildIndex(this ITest test) - { - var index = test.Properties["childIndex"]; - return index.Count > 0; - } - - static string GetAncestorPath(ITest test) - { - var path = ""; - var testParent = test.Parent; - - while (testParent != null && testParent.Parent != null && !string.IsNullOrEmpty(testParent.Name)) - { - path = testParent.Name + "/" + path; - testParent = testParent.Parent; - } - - return path; - } - - public static string GetUniqueName(this ITest test) - { - var id = GetAncestorPath(test) + GetFullName(test); - if (test.HasChildIndex()) - { - var index = test.GetChildIndex(); - if (index >= 0) - id += index; - } - if (test.IsSuite) - { - id += "[suite]"; - } - return id; - } - - public static string GetFullName(ITest test) - { - var typeInfo = test.TypeInfo ?? test.Parent?.TypeInfo ?? test.Tests.FirstOrDefault()?.TypeInfo; - if (typeInfo == null) - { - return "[" + test.Name + "]"; - } - - var assemblyId = typeInfo.Assembly.GetName().Name; - if (assemblyId == test.Name) - { - return $"[{test.Name}]"; - } - - return string.Format("[{0}][{1}]", assemblyId, test.FullName); - } - - public static string GetSkipReason(this ITest test) - { - if (test.Properties.ContainsKey(PropertyNames.SkipReason)) - return (string)test.Properties.Get(PropertyNames.SkipReason); - - return null; - } - - public static string GetParentId(this ITest test) - { - if (test.Parent != null) - return test.Parent.Id; - - return null; - } - - public static string GetParentFullName(this ITest test) - { - if (test.Parent != null) - return test.Parent.FullName; - - return null; - } - - public static string GetParentUniqueName(this ITest test) - { - if (test.Parent != null) - return GetUniqueName(test.Parent); - - return null; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/TestResultExtensions.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/TestResultExtensions.cs deleted file mode 100644 index 0c14397..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/TestResultExtensions.cs +++ /dev/null @@ -1,77 +0,0 @@ -using System; -using NUnit.Framework; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; - -namespace UnityEngine.TestRunner.NUnitExtensions -{ - internal static class TestResultExtensions - { - public static void RecordPrefixedException(this TestResult testResult, string prefix, Exception ex, ResultState resultState = null) - - { - if (ex is NUnitException) - { - ex = ex.InnerException; - } - - if (resultState == null) - { - resultState = testResult.ResultState == ResultState.Cancelled - ? ResultState.Cancelled - : ResultState.Error; - } - - var exceptionMessage = ExceptionHelper.BuildMessage(ex); - string stackTrace = "--" + prefix + NUnit.Env.NewLine + ExceptionHelper.BuildStackTrace(ex); - if (testResult.StackTrace != null) - { - stackTrace = testResult.StackTrace + NUnit.Env.NewLine + stackTrace; - } - - if (testResult.Test.IsSuite) - { - resultState = resultState.WithSite(FailureSite.TearDown); - } - - if (ex is ResultStateException) - { - exceptionMessage = ex.Message; - resultState = ((ResultStateException)ex).ResultState; - stackTrace = StackFilter.Filter(ex.StackTrace); - } - - string message = (string.IsNullOrEmpty(prefix) ? "" : (prefix + " : ")) + exceptionMessage; - if (testResult.Message != null) - { - message = testResult.Message + NUnit.Env.NewLine + message; - } - - testResult.SetResult(resultState, message, stackTrace); - } - - public static void RecordPrefixedError(this TestResult testResult, string prefix, string error, ResultState resultState = null) - - { - if (resultState == null) - { - resultState = testResult.ResultState == ResultState.Cancelled - ? ResultState.Cancelled - : ResultState.Error; - } - - if (testResult.Test.IsSuite) - { - resultState = resultState.WithSite(FailureSite.TearDown); - } - - string message = (string.IsNullOrEmpty(prefix) ? "" : (prefix + " : ")) + error; - if (testResult.Message != null) - { - message = testResult.Message + NUnit.Env.NewLine + message; - } - - testResult.SetResult(resultState, message); - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/UnityTestAssemblyBuilder.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/UnityTestAssemblyBuilder.cs deleted file mode 100644 index 3a130c5..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/NUnitExtensions/UnityTestAssemblyBuilder.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System.Collections.Generic; -using System.IO; -using System.Reflection; -using NUnit; -using NUnit.Framework.Api; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; - -namespace UnityEngine.TestTools.NUnitExtensions -{ - internal class UnityTestAssemblyBuilder : DefaultTestAssemblyBuilder, IAsyncTestAssemblyBuilder - { - private readonly string m_ProductName; - public UnityTestAssemblyBuilder() - { - m_ProductName = Application.productName; - } - - public ITest Build(Assembly[] assemblies, TestPlatform[] testPlatforms, IDictionary options) - { - var test = BuildAsync(assemblies, testPlatforms, options); - while (test.MoveNext()) - { - } - - return test.Current; - } - - public IEnumerator BuildAsync(Assembly[] assemblies, TestPlatform[] testPlatforms, IDictionary options) - { - var productName = string.Join("_", m_ProductName.Split(Path.GetInvalidFileNameChars())); - var suite = new TestSuite(productName); - for (var index = 0; index < assemblies.Length; index++) - { - var assembly = assemblies[index]; - var platform = testPlatforms[index]; - - var assemblySuite = Build(assembly, options) as TestSuite; - if (assemblySuite != null && assemblySuite.HasChildren) - { - assemblySuite.Properties.Set("platform", platform); - suite.Add(assemblySuite); - } - - yield return null; - } - - yield return suite; - } - - public static Dictionary GetNUnitTestBuilderSettings(TestPlatform testPlatform) - { - var emptySettings = new Dictionary(); - emptySettings.Add(FrameworkPackageSettings.TestParameters, "platform=" + testPlatform); - return emptySettings; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/Callbacks/PlayModeRunnerCallback.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/Callbacks/PlayModeRunnerCallback.cs deleted file mode 100644 index 66c48e5..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/Callbacks/PlayModeRunnerCallback.cs +++ /dev/null @@ -1,47 +0,0 @@ -using NUnit.Framework; -using NUnit.Framework.Interfaces; - -namespace UnityEngine.TestTools.TestRunner.Callbacks -{ - [AddComponentMenu("")] - internal class PlayModeRunnerCallback : MonoBehaviour, ITestRunnerListener - { - private TestResultRenderer m_ResultRenderer; - - public void RunFinished(ITestResult testResults) - { - Application.logMessageReceivedThreaded -= LogRecieved; - if (Camera.main == null) - { - gameObject.AddComponent(); - } - m_ResultRenderer = new TestResultRenderer(testResults); - m_ResultRenderer.ShowResults(); - } - - public void TestFinished(ITestResult result) - { - } - - public void OnGUI() - { - if (m_ResultRenderer != null) - m_ResultRenderer.Draw(); - } - - public void RunStarted(ITest testsToRun) - { - Application.logMessageReceivedThreaded += LogRecieved; - } - - public void TestStarted(ITest test) - { - } - - private void LogRecieved(string message, string stacktrace, LogType type) - { - if (TestContext.Out != null) - TestContext.Out.WriteLine(message); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/Callbacks/PlayerQuitHandler.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/Callbacks/PlayerQuitHandler.cs deleted file mode 100644 index 565c785..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/Callbacks/PlayerQuitHandler.cs +++ /dev/null @@ -1,43 +0,0 @@ -using NUnit.Framework.Interfaces; -using UnityEngine.Networking.PlayerConnection; -using UnityEngine.TestRunner.TestLaunchers; - -namespace UnityEngine.TestTools.TestRunner.Callbacks -{ - internal class PlayerQuitHandler : MonoBehaviour, ITestRunnerListener - { - public void Start() - { - PlayerConnection.instance.Register(PlayerConnectionMessageIds.quitPlayerMessageId, ProcessPlayerQuiteMessage); - } - - private void ProcessPlayerQuiteMessage(MessageEventArgs arg0) - { - //Some platforms don't quit, so we need to disconnect to make sure they will not connect to another editor instance automatically. - PlayerConnection.instance.DisconnectAll(); - - //XBOX has an error when quitting - if (Application.platform == RuntimePlatform.XboxOne) - { - return; - } - Application.Quit(); - } - - public void RunStarted(ITest testsToRun) - { - } - - public void RunFinished(ITestResult testResults) - { - } - - public void TestStarted(ITest test) - { - } - - public void TestFinished(ITestResult result) - { - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/Callbacks/RemoteTestResultSender.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/Callbacks/RemoteTestResultSender.cs deleted file mode 100644 index e5dae43..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/Callbacks/RemoteTestResultSender.cs +++ /dev/null @@ -1,132 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using NUnit.Framework.Interfaces; -using UnityEngine.Networking.PlayerConnection; -using UnityEngine.TestRunner.TestLaunchers; - -namespace UnityEngine.TestTools.TestRunner.Callbacks -{ - [AddComponentMenu("")] - internal class RemoteTestResultSender : MonoBehaviour, ITestRunnerListener - { - private class QueueData - { - public Guid id { get; set; } - public byte[] data { get; set; } - } - - private const int k_aliveMessageFrequency = 120; - private float m_NextliveMessage = k_aliveMessageFrequency; - private readonly Queue m_SendQueue = new Queue(); - private readonly object m_LockQueue = new object(); - private readonly IRemoteTestResultDataFactory m_TestResultDataFactory = new RemoteTestResultDataFactory(); - - public void Start() - { - StartCoroutine(SendDataRoutine()); - } - - private byte[] SerializeObject(object objectToSerialize) - { - return Encoding.UTF8.GetBytes(JsonUtility.ToJson(objectToSerialize)); - } - - public void RunStarted(ITest testsToRun) - { - var data = SerializeObject(m_TestResultDataFactory.CreateFromTest(testsToRun)); - lock (m_LockQueue) - { - m_SendQueue.Enqueue(new QueueData - { - id = PlayerConnectionMessageIds.runStartedMessageId, - data = data - }); - } - } - - public void RunFinished(ITestResult testResults) - { - var data = SerializeObject(m_TestResultDataFactory.CreateFromTestResult(testResults)); - lock (m_LockQueue) - { - m_SendQueue.Enqueue(new QueueData { id = PlayerConnectionMessageIds.runFinishedMessageId, data = data, }); - } - } - - public void TestStarted(ITest test) - { - var data = SerializeObject(m_TestResultDataFactory.CreateFromTest(test)); - lock (m_LockQueue) - { - m_SendQueue.Enqueue(new QueueData - { - id = PlayerConnectionMessageIds.testStartedMessageId, - data = data - }); - } - } - - public void TestFinished(ITestResult result) - { - var testRunnerResultForApi = m_TestResultDataFactory.CreateFromTestResult(result); - var resultData = SerializeObject(testRunnerResultForApi); - lock (m_LockQueue) - { - m_SendQueue.Enqueue(new QueueData - { - id = PlayerConnectionMessageIds.testFinishedMessageId, - data = resultData, - }); - } - } - - public IEnumerator SendDataRoutine() - { - while (!PlayerConnection.instance.isConnected) - { - yield return new WaitForSeconds(1); - } - - while (true) - { - lock (m_LockQueue) - { - if (PlayerConnection.instance.isConnected && m_SendQueue.Count > 0) - { - ResetNextPlayerAliveMessageTime(); - var queueData = m_SendQueue.Dequeue(); - PlayerConnection.instance.Send(queueData.id, queueData.data); - yield return null; - } - - //This is needed so we dont stall the player totally - if (!m_SendQueue.Any()) - { - SendAliveMessageIfNeeded(); - yield return new WaitForSeconds(0.02f); - } - } - } - } - - private void SendAliveMessageIfNeeded() - { - if (Time.timeSinceLevelLoad < m_NextliveMessage) - { - return; - } - - Debug.Log("Sending player alive message back to editor."); - ResetNextPlayerAliveMessageTime(); - PlayerConnection.instance.Send(PlayerConnectionMessageIds.playerAliveHeartbeat, new byte[0]); - } - - private void ResetNextPlayerAliveMessageTime() - { - m_NextliveMessage = Time.timeSinceLevelLoad + k_aliveMessageFrequency; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/Callbacks/TestResultRenderer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/Callbacks/TestResultRenderer.cs deleted file mode 100644 index 95316e7..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/Callbacks/TestResultRenderer.cs +++ /dev/null @@ -1,97 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; - -namespace UnityEngine.TestTools.TestRunner.Callbacks -{ - internal class TestResultRenderer - { - private static class Styles - { - public static readonly GUIStyle SucceedLabelStyle; - public static readonly GUIStyle FailedLabelStyle; - public static readonly GUIStyle FailedMessagesStyle; - - static Styles() - { - SucceedLabelStyle = new GUIStyle("label"); - SucceedLabelStyle.normal.textColor = Color.green; - SucceedLabelStyle.fontSize = 48; - - FailedLabelStyle = new GUIStyle("label"); - FailedLabelStyle.normal.textColor = Color.red; - FailedLabelStyle.fontSize = 32; - - FailedMessagesStyle = new GUIStyle("label"); - FailedMessagesStyle.wordWrap = false; - FailedMessagesStyle.richText = true; - } - } - - private readonly List m_FailedTestCollection; - - private bool m_ShowResults; - private Vector2 m_ScrollPosition; - - public TestResultRenderer(ITestResult testResults) - { - m_FailedTestCollection = new List(); - GetFailedTests(testResults); - } - - private void GetFailedTests(ITestResult testResults) - { - if (testResults is TestCaseResult) - { - if (testResults.ResultState.Status == TestStatus.Failed) - m_FailedTestCollection.Add(testResults); - } - else if (testResults.HasChildren) - { - foreach (var testResultsChild in testResults.Children) - { - GetFailedTests(testResultsChild); - } - } - } - - private const int k_MaxStringLength = 15000; - - public void ShowResults() - { - m_ShowResults = true; - Cursor.visible = true; - } - - public void Draw() - { - if (!m_ShowResults) return; - if (m_FailedTestCollection.Count == 0) - { - GUILayout.Label("All test(s) succeeded", Styles.SucceedLabelStyle, GUILayout.Width(600)); - } - else - { - int count = m_FailedTestCollection.Count; - GUILayout.Label(count + " tests failed!", Styles.FailedLabelStyle); - - m_ScrollPosition = GUILayout.BeginScrollView(m_ScrollPosition, GUILayout.ExpandWidth(true)); - var text = ""; - - text += "Code-based tests\n"; - text += string.Join("\n", m_FailedTestCollection - .Select(result => result.Name + " " + result.ResultState + "\n" + result.Message) - .ToArray()); - - if (text.Length > k_MaxStringLength) - text = text.Substring(0, k_MaxStringLength); - - GUILayout.TextArea(text, Styles.FailedMessagesStyle); - GUILayout.EndScrollView(); - } - if (GUILayout.Button("Close")) - Application.Quit(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/Callbacks/TestResultRendererCallback.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/Callbacks/TestResultRendererCallback.cs deleted file mode 100644 index 9f5ce05..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/Callbacks/TestResultRendererCallback.cs +++ /dev/null @@ -1,36 +0,0 @@ -using NUnit.Framework.Interfaces; - -namespace UnityEngine.TestTools.TestRunner.Callbacks -{ - internal class TestResultRendererCallback : MonoBehaviour, ITestRunnerListener - { - private TestResultRenderer m_ResultRenderer; - public void RunStarted(ITest testsToRun) - { - } - - public void RunFinished(ITestResult testResults) - { - if (Camera.main == null) - { - gameObject.AddComponent(); - } - m_ResultRenderer = new TestResultRenderer(testResults); - m_ResultRenderer.ShowResults(); - } - - public void OnGUI() - { - if (m_ResultRenderer != null) - m_ResultRenderer.Draw(); - } - - public void TestStarted(ITest test) - { - } - - public void TestFinished(ITestResult result) - { - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/ITestRunnerListener.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/ITestRunnerListener.cs deleted file mode 100644 index 358ac74..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/ITestRunnerListener.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; -using NUnit.Framework.Interfaces; -using UnityEngine.Events; - -namespace UnityEngine.TestTools.TestRunner -{ - internal interface ITestRunnerListener - { - void RunStarted(ITest testsToRun); - void RunFinished(ITestResult testResults); - void TestStarted(ITest test); - void TestFinished(ITestResult result); - } - - [Serializable] - internal class TestFinishedEvent : UnityEvent {} - - [Serializable] - internal class TestStartedEvent : UnityEvent {} - - [Serializable] - internal class RunFinishedEvent : UnityEvent {} - - [Serializable] - internal class RunStartedEvent : UnityEvent {} -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/Messages/IEditModeTestYieldInstruction.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/Messages/IEditModeTestYieldInstruction.cs deleted file mode 100644 index 5f13072..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/Messages/IEditModeTestYieldInstruction.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Collections; - -namespace UnityEngine.TestTools -{ - /// - /// In an Edit Mode test, you can use `IEditModeTestYieldInstruction` interface to implement your own instruction. There are also a couple of commonly used implementations available: - /// - [EnterPlayMore](https://docs.unity3d.com/Packages/com.unity.test-framework@1.1/api/UnityEngine.TestTools.EnterPlayMode.html) - /// - - /// - - /// - - /// - public interface IEditModeTestYieldInstruction - { - /// Returns true if the instruction expects a domain reload to occur - bool ExpectDomainReload { get; } - /// - /// Returns true if the instruction expects the Unity Editor to be in **Play Mode**. - /// - bool ExpectedPlaymodeState { get; } - /// Used to define multi-frame operations performed when instantiating a yield instruction. - IEnumerator Perform(); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/PlaymodeTestsController.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/PlaymodeTestsController.cs deleted file mode 100644 index 7375557..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/PlaymodeTestsController.cs +++ /dev/null @@ -1,129 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using UnityEngine.SceneManagement; -using UnityEngine.TestRunner.NUnitExtensions; -using UnityEngine.TestRunner.NUnitExtensions.Runner; -using UnityEngine.TestTools.NUnitExtensions; -using UnityEngine.TestTools.Utils; - -namespace UnityEngine.TestTools.TestRunner -{ - [Serializable] - [AddComponentMenu("")] - internal class PlaymodeTestsController : MonoBehaviour - { - private IEnumerator m_TestSteps; - - [SerializeField] - private List m_AssembliesWithTests; - public List AssembliesWithTests - { - get - { - return m_AssembliesWithTests; - } - set - { - m_AssembliesWithTests = value; - } - } - - [SerializeField] - internal TestStartedEvent testStartedEvent = new TestStartedEvent(); - [SerializeField] - internal TestFinishedEvent testFinishedEvent = new TestFinishedEvent(); - [SerializeField] - internal RunStartedEvent runStartedEvent = new RunStartedEvent(); - [SerializeField] - internal RunFinishedEvent runFinishedEvent = new RunFinishedEvent(); - - internal const string kPlaymodeTestControllerName = "Code-based tests runner"; - - [SerializeField] - public PlaymodeTestsControllerSettings settings = new PlaymodeTestsControllerSettings(); - - internal UnityTestAssemblyRunner m_Runner; - - public IEnumerator Start() - { - //Skip 2 frame because Unity. - yield return null; - yield return null; - StartCoroutine(Run()); - } - - internal static bool IsControllerOnScene() - { - return GameObject.Find(kPlaymodeTestControllerName) != null; - } - - internal static PlaymodeTestsController GetController() - { - return GameObject.Find(kPlaymodeTestControllerName).GetComponent(); - } - - public IEnumerator TestRunnerCoroutine() - { - while (m_TestSteps.MoveNext()) - { - yield return m_TestSteps.Current; - } - - if (m_Runner.IsTestComplete) - { - runFinishedEvent.Invoke(m_Runner.Result); - Cleanup(); - - yield return null; - } - } - - public IEnumerator Run() - { - CoroutineTestWorkItem.monoBehaviourCoroutineRunner = this; - gameObject.hideFlags |= HideFlags.DontSave; - - if (settings.sceneBased) - { - SceneManager.LoadScene(1, LoadSceneMode.Additive); - yield return null; - } - - var testListUtil = new PlayerTestAssemblyProvider(new AssemblyLoadProxy(), m_AssembliesWithTests); - m_Runner = new UnityTestAssemblyRunner(new UnityTestAssemblyBuilder(), new PlaymodeWorkItemFactory()); - - var loadedTests = m_Runner.Load(testListUtil.GetUserAssemblies().Select(a => a.Assembly).ToArray(), TestPlatform.PlayMode, UnityTestAssemblyBuilder.GetNUnitTestBuilderSettings(TestPlatform.PlayMode)); - loadedTests.ParseForNameDuplicates(); - runStartedEvent.Invoke(m_Runner.LoadedTest); - - var testListenerWrapper = new TestListenerWrapper(testStartedEvent, testFinishedEvent); - m_TestSteps = m_Runner.Run(testListenerWrapper, settings.BuildNUnitFilter()).GetEnumerator(); - - yield return TestRunnerCoroutine(); - } - - public void Cleanup() - { - if (m_Runner != null) - { - m_Runner.StopRun(); - m_Runner = null; - } - if (Application.isEditor) - { - Destroy(gameObject); - } - } - - public static void TryCleanup() - { - var controller = GetController(); - if (controller != null) - { - controller.Cleanup(); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/PlaymodeTestsControllerSettings.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/PlaymodeTestsControllerSettings.cs deleted file mode 100644 index bda7c25..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/PlaymodeTestsControllerSettings.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.Linq; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal.Filters; -using UnityEngine.SceneManagement; -using UnityEngine.TestTools.TestRunner.GUI; - -namespace UnityEngine.TestTools.TestRunner -{ - [Serializable] - internal class PlaymodeTestsControllerSettings - { - [SerializeField] - public RuntimeTestRunnerFilter[] filters; - public bool sceneBased; - public string originalScene; - public string bootstrapScene; - - public static PlaymodeTestsControllerSettings CreateRunnerSettings(RuntimeTestRunnerFilter[] filters) - { - var settings = new PlaymodeTestsControllerSettings - { - filters = filters, - sceneBased = false, - originalScene = SceneManager.GetActiveScene().path, - bootstrapScene = null - }; - return settings; - } - - internal ITestFilter BuildNUnitFilter() - { - return new OrFilter(filters.Select(f => f.BuildNUnitFilter()).ToArray()); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RemoteHelpers/IRemoteTestResultDataFactory.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RemoteHelpers/IRemoteTestResultDataFactory.cs deleted file mode 100644 index 1032e6a..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RemoteHelpers/IRemoteTestResultDataFactory.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; -using NUnit.Framework.Interfaces; - -namespace UnityEngine.TestRunner.TestLaunchers -{ - internal interface IRemoteTestResultDataFactory - { - RemoteTestResultDataWithTestData CreateFromTestResult(ITestResult result); - RemoteTestResultDataWithTestData CreateFromTest(ITest test); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RemoteHelpers/PlayerConnectionMessageIds.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RemoteHelpers/PlayerConnectionMessageIds.cs deleted file mode 100644 index 58f6263..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RemoteHelpers/PlayerConnectionMessageIds.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; - -namespace UnityEngine.TestRunner.TestLaunchers -{ - internal static class PlayerConnectionMessageIds - { - public static Guid runStartedMessageId { get { return new Guid("6a7f53dd-4672-461d-a7b5-9467e9393fd3"); } } - public static Guid runFinishedMessageId { get { return new Guid("ffb622fc-34ad-4901-8d7b-47fb04b0bdd4"); } } - public static Guid testStartedMessageId { get { return new Guid("b54d241e-d88d-4dba-8c8f-ee415d11c030"); } } - public static Guid testFinishedMessageId { get { return new Guid("72f7b7f4-6829-4cd1-afde-78872b9d5adc"); } } - public static Guid quitPlayerMessageId { get { return new Guid("ab44bfe0-bb50-4ee6-9977-69d2ea6bb3a0"); } } - public static Guid playerAliveHeartbeat { get { return new Guid("8c0c307b-f7fd-4216-8623-35b4b3f55fb6"); } } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RemoteHelpers/RemoteTestData.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RemoteHelpers/RemoteTestData.cs deleted file mode 100644 index eaf7078..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RemoteHelpers/RemoteTestData.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System; -using System.Linq; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using UnityEngine.TestRunner.NUnitExtensions; - -namespace UnityEngine.TestRunner.TestLaunchers -{ - [Serializable] - internal class RemoteTestData - { - public string id; - public string name; - public string fullName; - public int testCaseCount; - public int ChildIndex; - public bool hasChildren; - public bool isSuite; - public string[] childrenIds; - public int testCaseTimeout; - public string[] Categories; - public bool IsTestAssembly; - public RunState RunState; - public string Description; - public string SkipReason; - public string ParentId; - public string UniqueName; - public string ParentUniqueName; - public string ParentFullName; - - internal RemoteTestData(ITest test) - { - id = test.Id; - name = test.Name; - fullName = test.FullName; - testCaseCount = test.TestCaseCount; - ChildIndex = -1; - if (test.Properties["childIndex"].Count > 0) - { - ChildIndex = (int)test.Properties["childIndex"][0]; - } - hasChildren = test.HasChildren; - isSuite = test.IsSuite; - childrenIds = test.Tests.Select(t => t.Id).ToArray(); - Categories = test.GetAllCategoriesFromTest().ToArray(); - IsTestAssembly = test is TestAssembly; - RunState = (RunState)Enum.Parse(typeof(RunState), test.RunState.ToString()); - Description = (string)test.Properties.Get(PropertyNames.Description); - SkipReason = test.GetSkipReason(); - ParentId = test.GetParentId(); - UniqueName = test.GetUniqueName(); - ParentUniqueName = test.GetParentUniqueName(); - ParentFullName = test.GetParentFullName(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RemoteHelpers/RemoteTestResultData.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RemoteHelpers/RemoteTestResultData.cs deleted file mode 100644 index a0a34c3..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RemoteHelpers/RemoteTestResultData.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using NUnit.Framework.Interfaces; - -namespace UnityEngine.TestRunner.TestLaunchers -{ - [Serializable] - internal class RemoteTestResultData - { - public string testId; - public string name; - public string fullName; - public string resultState; - public TestStatus testStatus; - public double duration; - public DateTime startTime; - public DateTime endTime; - public string message; - public string stackTrace; - public int assertCount; - public int failCount; - public int passCount; - public int skipCount; - public int inconclusiveCount; - public bool hasChildren; - public string output; - public string xml; - public string[] childrenIds; - - internal RemoteTestResultData(ITestResult result) - { - testId = result.Test.Id; - name = result.Name; - fullName = result.FullName; - resultState = result.ResultState.ToString(); - testStatus = result.ResultState.Status; - duration = result.Duration; - startTime = result.StartTime; - endTime = result.EndTime; - message = result.Message; - stackTrace = result.StackTrace; - assertCount = result.AssertCount; - failCount = result.FailCount; - passCount = result.PassCount; - skipCount = result.SkipCount; - inconclusiveCount = result.InconclusiveCount; - hasChildren = result.HasChildren; - output = result.Output; - xml = result.ToXml(true).OuterXml; - childrenIds = result.Children.Select(child => child.Test.Id).ToArray(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RemoteHelpers/RemoteTestResultDataFactory.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RemoteHelpers/RemoteTestResultDataFactory.cs deleted file mode 100644 index 356a39d..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RemoteHelpers/RemoteTestResultDataFactory.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using NUnit.Framework.Interfaces; -using UnityEngine.TestRunner.NUnitExtensions.Runner; - -namespace UnityEngine.TestRunner.TestLaunchers -{ - internal class RemoteTestResultDataFactory : IRemoteTestResultDataFactory - { - public RemoteTestResultDataWithTestData CreateFromTestResult(ITestResult result) - { - var tests = CreateTestDataList(result.Test); - tests.First().testCaseTimeout = UnityTestExecutionContext.CurrentContext.TestCaseTimeout; - return new RemoteTestResultDataWithTestData() - { - results = CreateTestResultDataList(result), - tests = tests - }; - } - - public RemoteTestResultDataWithTestData CreateFromTest(ITest test) - { - var tests = CreateTestDataList(test); - if (UnityTestExecutionContext.CurrentContext != null) - { - tests.First().testCaseTimeout = UnityTestExecutionContext.CurrentContext.TestCaseTimeout; - } - - return new RemoteTestResultDataWithTestData() - { - tests = tests - }; - } - - private RemoteTestData[] CreateTestDataList(ITest test) - { - var list = new List(); - list.Add(new RemoteTestData(test)); - list.AddRange(test.Tests.SelectMany(CreateTestDataList)); - return list.ToArray(); - } - - private static RemoteTestResultData[] CreateTestResultDataList(ITestResult result) - { - var list = new List(); - list.Add(new RemoteTestResultData(result)); - list.AddRange(result.Children.SelectMany(CreateTestResultDataList)); - return list.ToArray(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RemoteHelpers/RemoteTestResultDataWithTestData.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RemoteHelpers/RemoteTestResultDataWithTestData.cs deleted file mode 100644 index 5b28f49..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RemoteHelpers/RemoteTestResultDataWithTestData.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using NUnit.Framework.Interfaces; -using UnityEngine.TestRunner.NUnitExtensions.Runner; - -namespace UnityEngine.TestRunner.TestLaunchers -{ - [Serializable] - internal class RemoteTestResultDataWithTestData - { - public RemoteTestResultData[] results; - public RemoteTestData[] tests; - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RuntimeTestRunnerFilter.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RuntimeTestRunnerFilter.cs deleted file mode 100644 index 85ef107..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/RuntimeTestRunnerFilter.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using NUnit.Framework.Internal.Filters; -using UnityEngine.TestRunner.NUnitExtensions.Filters; - -namespace UnityEngine.TestTools.TestRunner.GUI -{ - [Serializable] - internal class RuntimeTestRunnerFilter - { - public string[] assemblyNames; - public string[] groupNames; - public string[] categoryNames; - public string[] testNames; - public bool synchronousOnly = false; - - public ITestFilter BuildNUnitFilter() - { - var filters = new List(); - - AddFilters(filters, testNames, (s) => new FullNameFilter(s)); - AddFilters(filters, groupNames, (s) => new FullNameFilter(s) {IsRegex = true}); - AddFilters(filters, assemblyNames, (s) => new AssemblyNameFilter(s)); - AddFilters(filters, categoryNames, (s) => new CategoryFilterExtended(s) {IsRegex = true}); - - if (synchronousOnly) - { - filters.Add(new SynchronousFilter()); - } - - return filters.Count == 0 ? TestFilter.Empty : new AndFilter(filters.ToArray()); - } - - private static void AddFilters(List filters, string[] values, Func builder) - { - if (values == null || values.Length == 0) - { - return; - } - - var inclusionFilters = values.Where(v => !v.StartsWith("!")).Select(v => builder(v) as ITestFilter).ToArray(); - var exclusionFilters = values.Where(v => v.StartsWith("!")) - .Select(v => new NotFilter(builder(v.Substring(1))) as ITestFilter) - .ToArray(); - if (inclusionFilters.Length > 0 && exclusionFilters.Length > 0) - { - filters.Add(new AndFilter(new OrFilter(inclusionFilters), new AndFilter(exclusionFilters))); - } - else if (inclusionFilters.Length > 0) - { - filters.Add(new OrFilter(inclusionFilters)); - } - else // Only exclusionFilters - { - filters.Add(new AndFilter(exclusionFilters)); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/SynchronousFilter.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/SynchronousFilter.cs deleted file mode 100644 index 6916d81..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/SynchronousFilter.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System.Collections; -using System.Linq; -using System.Reflection; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; - -namespace UnityEngine.TestTools.TestRunner.GUI -{ - class SynchronousFilter : ITestFilter - { - public TNode ToXml(bool recursive) - { - return new TNode("synchronousOnly"); - } - - public TNode AddToXml(TNode parentNode, bool recursive) - { - return parentNode.AddElement("synchronousOnly"); - } - - public bool Pass(ITest test) - { - if (test.Method == null) - return true; - - if (test.Method.ReturnType.Type == typeof(IEnumerator)) - return false; - - if (test.Method.GetCustomAttributes(true).Any()) - return false; - - if (test.TypeInfo?.Type != null) - { - if (Reflect.GetMethodsWithAttribute(test.TypeInfo.Type, typeof(UnitySetUpAttribute), true) - .Any(mi => mi.ReturnType == typeof(System.Collections.IEnumerator))) - return false; - - if (Reflect.GetMethodsWithAttribute(test.TypeInfo.Type, typeof(UnityTearDownAttribute), true) - .Any(mi => mi.ReturnType == typeof(System.Collections.IEnumerator))) - return false; - } - - return true; - } - - public bool IsExplicitMatch(ITest test) - { - return Pass(test); - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/TestEnumeratorWrapper.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/TestEnumeratorWrapper.cs deleted file mode 100644 index 31171d1..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/TestEnumeratorWrapper.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using System.Collections; -using System.Reflection; -using NUnit.Framework; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; - -namespace UnityEngine.TestTools.TestRunner -{ - internal class TestEnumeratorWrapper - { - private readonly TestMethod m_TestMethod; - - public TestEnumeratorWrapper(TestMethod testMethod) - { - m_TestMethod = testMethod; - } - - public IEnumerator GetEnumerator(ITestExecutionContext context) - { - if (m_TestMethod.Method.ReturnType.Type == typeof(IEnumerator)) - { - return HandleEnumerableTest(context); - } - var message = string.Format("Return type {0} of {1} in {2} is not supported.", - m_TestMethod.Method.ReturnType, m_TestMethod.Method.Name, m_TestMethod.Method.TypeInfo.FullName); - if (m_TestMethod.Method.ReturnType.Type == typeof(IEnumerable)) - { - message += "\nDid you mean IEnumerator?"; - } - throw new InvalidSignatureException(message); - } - - private IEnumerator HandleEnumerableTest(ITestExecutionContext context) - { - try - { - return m_TestMethod.Method.MethodInfo.Invoke(context.TestObject, m_TestMethod.parms != null ? m_TestMethod.parms.OriginalArguments : null) as IEnumerator; - } - catch (TargetInvocationException e) - { - if (e.InnerException is IgnoreException) - { - context.CurrentResult.SetResult(ResultState.Ignored, e.InnerException.Message); - return null; - } - throw; - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/TestListenerWrapper.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/TestListenerWrapper.cs deleted file mode 100644 index 0c1c75e..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/TestListenerWrapper.cs +++ /dev/null @@ -1,30 +0,0 @@ -using NUnit.Framework.Interfaces; - -namespace UnityEngine.TestTools.TestRunner -{ - internal class TestListenerWrapper : ITestListener - { - private readonly TestFinishedEvent m_TestFinishedEvent; - private readonly TestStartedEvent m_TestStartedEvent; - - public TestListenerWrapper(TestStartedEvent testStartedEvent, TestFinishedEvent testFinishedEvent) - { - m_TestStartedEvent = testStartedEvent; - m_TestFinishedEvent = testFinishedEvent; - } - - public void TestStarted(ITest test) - { - m_TestStartedEvent.Invoke(test); - } - - public void TestFinished(ITestResult result) - { - m_TestFinishedEvent.Invoke(result); - } - - public void TestOutput(TestOutput output) - { - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/TestPlatform.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/TestPlatform.cs deleted file mode 100644 index c0110cf..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/TestRunner/TestPlatform.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; - -namespace UnityEngine.TestTools -{ - /// - /// A flag indicating the targeted test platforms. - /// - [Flags] - [Serializable] - public enum TestPlatform : byte - { - /// - /// Both platforms. - /// - All = 0xFF, - /// - /// The EditMode test platform. - /// - EditMode = 1 << 1, - /// - /// The PlayMode test platform. - /// - PlayMode = 1 << 2 - } - - internal static class TestPlatformEnumExtensions - { - public static bool IsFlagIncluded(this TestPlatform flags, TestPlatform flag) - { - return (flags & flag) == flag; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/UnityEngine.TestRunner.asmdef b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/UnityEngine.TestRunner.asmdef deleted file mode 100644 index f85c16a..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/UnityEngine.TestRunner.asmdef +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "UnityEngine.TestRunner", - "references": [], - "includePlatforms": [], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": true, - "precompiledReferences": [ - "nunit.framework.dll" - ], - "autoReferenced": false, - "defineConstraints": [] -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/AssemblyLoadProxy.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/AssemblyLoadProxy.cs deleted file mode 100644 index be41950..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/AssemblyLoadProxy.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Reflection; - -namespace UnityEngine.TestTools.Utils -{ - internal class AssemblyLoadProxy : IAssemblyLoadProxy - { - public IAssemblyWrapper Load(string assemblyString) - { - return new AssemblyWrapper(Assembly.Load(assemblyString)); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/AssemblyWrapper.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/AssemblyWrapper.cs deleted file mode 100644 index 86d450e..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/AssemblyWrapper.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Reflection; - -namespace UnityEngine.TestTools.Utils -{ - internal class AssemblyWrapper : IAssemblyWrapper - { - public AssemblyWrapper(Assembly assembly) - { - Assembly = assembly; - } - - public Assembly Assembly { get; } - - public virtual string Location - { - get - { - //Some platforms dont support this - throw new NotImplementedException(); - } - } - - public virtual AssemblyName[] GetReferencedAssemblies() - { - //Some platforms dont support this - throw new NotImplementedException(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/IAssemblyLoadProxy.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/IAssemblyLoadProxy.cs deleted file mode 100644 index 6e05914..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/IAssemblyLoadProxy.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace UnityEngine.TestTools.Utils -{ - internal interface IAssemblyLoadProxy - { - IAssemblyWrapper Load(string assemblyString); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/IAssemblyWrapper.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/IAssemblyWrapper.cs deleted file mode 100644 index d423db9..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/IAssemblyWrapper.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System.Reflection; - -namespace UnityEngine.TestTools.Utils -{ - internal interface IAssemblyWrapper - { - Assembly Assembly { get; } - string Location { get; } - AssemblyName[] GetReferencedAssemblies(); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/IScriptingRuntimeProxy.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/IScriptingRuntimeProxy.cs deleted file mode 100644 index 2bb572d..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/IScriptingRuntimeProxy.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace UnityEngine.TestTools.Utils -{ - internal interface IScriptingRuntimeProxy - { - string[] GetAllUserAssemblies(); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/ITestAssemblyProvider.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/ITestAssemblyProvider.cs deleted file mode 100644 index 2944936..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/ITestAssemblyProvider.cs +++ /dev/null @@ -1,10 +0,0 @@ -using NUnit.Framework.Interfaces; - -namespace UnityEngine.TestTools.Utils -{ - internal interface ITestAssemblyProvider - { - ITest GetTestsWithNUnit(); - IAssemblyWrapper[] GetUserAssemblies(); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/PlayerTestAssemblyProvider.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/PlayerTestAssemblyProvider.cs deleted file mode 100644 index 0b47e1d..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/PlayerTestAssemblyProvider.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System.Collections.Generic; -using System.IO; -using System.Linq; -using NUnit.Framework.Interfaces; -using UnityEngine.TestTools.NUnitExtensions; - -namespace UnityEngine.TestTools.Utils -{ - internal class PlayerTestAssemblyProvider - { - private IAssemblyLoadProxy m_AssemblyLoadProxy; - private readonly List m_AssembliesToLoad; - - //Cached until domain reload - private static List m_LoadedAssemblies; - - internal PlayerTestAssemblyProvider(IAssemblyLoadProxy assemblyLoadProxy, List assembliesToLoad) - { - m_AssemblyLoadProxy = assemblyLoadProxy; - m_AssembliesToLoad = assembliesToLoad; - LoadAssemblies(); - } - - public ITest GetTestsWithNUnit() - { - return BuildTests(TestPlatform.PlayMode, m_LoadedAssemblies.ToArray()); - } - - public List GetUserAssemblies() - { - return m_LoadedAssemblies; - } - - protected static ITest BuildTests(TestPlatform testPlatform, IAssemblyWrapper[] assemblies) - { - var settings = UnityTestAssemblyBuilder.GetNUnitTestBuilderSettings(testPlatform); - var builder = new UnityTestAssemblyBuilder(); - return builder.Build(assemblies.Select(a => a.Assembly).ToArray(), Enumerable.Repeat(testPlatform, assemblies.Length).ToArray(), settings); - } - - private void LoadAssemblies() - { - if (m_LoadedAssemblies != null) - { - return; - } - - m_LoadedAssemblies = new List(); - - foreach (var userAssembly in m_AssembliesToLoad) - { - IAssemblyWrapper a; - try - { - a = m_AssemblyLoadProxy.Load(userAssembly); - } - catch (FileNotFoundException) - { - continue; - } - if (a != null) - m_LoadedAssemblies.Add(a); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/ScriptingRuntimeProxy.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/ScriptingRuntimeProxy.cs deleted file mode 100644 index d84470e..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AssemblyProvider/ScriptingRuntimeProxy.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace UnityEngine.TestTools.Utils -{ - internal class ScriptingRuntimeProxy : IScriptingRuntimeProxy - { - public string[] GetAllUserAssemblies() - { - return ScriptingRuntime.GetAllUserAssemblies(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AttributeHelper.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AttributeHelper.cs deleted file mode 100644 index 9d2269b..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/AttributeHelper.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.IO; -using System.Linq; - -namespace UnityEngine.TestTools -{ - internal static class AttributeHelper - { - internal static Type GetTargetClassFromName(string targetClassName, Type attributeInterface) - { - Type targetClass = null; - foreach (var assemblyName in ScriptingRuntime.GetAllUserAssemblies()) - { - // we need to pass the assembly name without the .dll extension, so removing that first - var name = Path.GetFileNameWithoutExtension(assemblyName); - targetClass = Type.GetType(targetClassName + "," + name); - if (targetClass != null) - break; - } - - if (targetClass == null) - { - Debug.LogWarningFormat("Class type not found: " + targetClassName); - return null; - } - - ValidateTargetClass(targetClass, attributeInterface); - return targetClass; - } - - private static void ValidateTargetClass(Type targetClass, Type attributeInterface) - { - var constructorInfos = targetClass.GetConstructors(); - if (constructorInfos.All(constructor => constructor.GetParameters().Length != 0)) - { - Debug.LogWarningFormat("{0} does not implement default constructor", targetClass.Name); - } - - if (!attributeInterface.IsAssignableFrom(targetClass)) - { - Debug.LogWarningFormat("{0} does not implement {1}", targetClass.Name, attributeInterface.Name); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/ColorEqualityComparer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/ColorEqualityComparer.cs deleted file mode 100644 index ab09b2c..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/ColorEqualityComparer.cs +++ /dev/null @@ -1,80 +0,0 @@ -using System.Collections.Generic; - -namespace UnityEngine.TestTools.Utils -{ - /// - /// Use this class to compare two Color objects. ColorEqualityComparer.Instance has default calculation error value set to 0.01f. To set a test specific error value instantiate a comparer instance using the one argument constructor. - /// - public class ColorEqualityComparer : IEqualityComparer - { - private const float k_DefaultError = 0.01f; - private readonly float AllowedError; - - - private static readonly ColorEqualityComparer m_Instance = new ColorEqualityComparer(); - /// - ///A singleton instance of the comparer with a default error value set to 0.01f. - /// > - public static ColorEqualityComparer Instance { get { return m_Instance; } } - - private ColorEqualityComparer() : this(k_DefaultError) - { - } - /// - /// Creates an instance of the comparer with a custom error value. - /// - /// The custom error value. - public ColorEqualityComparer(float error) - { - this.AllowedError = error; - } - - /// - /// Compares the actual and expected Color objects for equality using to compare the RGB and Alpha attributes of Color. Returns true if expected and actual objects are equal otherwise, it returns false. - /// - /// The expected Color value used to compare. - /// The actual Color value to test. - /// True if actual and expected are equal, false otherwise - /// - /// - /// [TestFixture] - /// public class ColorEqualityTest - /// { - /// [Test] - /// public void GivenColorsAreEqual_WithAllowedCalculationError() - /// { - /// // Using default error - /// var firstColor = new Color(0f, 0f, 0f, 0f); - /// var secondColor = new Color(0f, 0f, 0f, 0f); - /// - /// Assert.That(firstColor, Is.EqualTo(secondColor).Using(ColorEqualityComparer.Instance)); - /// - /// // Allowed error 10e-5f - /// var comparer = new ColorEqualityComparer(10e-5f); - /// firstColor = new Color(0f, 0f, 0f, 1f); - /// secondColor = new Color(10e-6f, 0f, 0f, 1f); - /// - /// Assert.That(firstColor, Is.EqualTo(secondColor).Using(comparer)); - /// } - /// } - /// - /// - public bool Equals(Color expected, Color actual) - { - return Utils.AreFloatsEqualAbsoluteError(expected.r, actual.r, AllowedError) && - Utils.AreFloatsEqualAbsoluteError(expected.g, actual.g, AllowedError) && - Utils.AreFloatsEqualAbsoluteError(expected.b, actual.b, AllowedError) && - Utils.AreFloatsEqualAbsoluteError(expected.a, actual.a, AllowedError); - } - - /// - /// Serves as the default hash function. - /// - /// A not null Color object. - /// Returns 0. - public int GetHashCode(Color color) - { - return 0; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/CoroutineRunner.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/CoroutineRunner.cs deleted file mode 100644 index a6953c1..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/CoroutineRunner.cs +++ /dev/null @@ -1,105 +0,0 @@ -using System; -using System.Collections; -using NUnit.Framework.Internal; -using UnityEngine.TestRunner.NUnitExtensions.Runner; -using UnityEngine.TestTools.TestRunner; - -namespace UnityEngine.TestTools.Utils -{ - internal class CoroutineRunner - { - private bool m_Running; - private bool m_TestFailed; - private bool m_Timeout; - private readonly MonoBehaviour m_Controller; - private readonly UnityTestExecutionContext m_Context; - private Coroutine m_TimeOutCoroutine; - private IEnumerator m_TestCoroutine; - - internal const int k_DefaultTimeout = 1000 * 180; - - public CoroutineRunner(MonoBehaviour playmodeTestsController, UnityTestExecutionContext context) - { - m_Controller = playmodeTestsController; - m_Context = context; - } - - public IEnumerator HandleEnumerableTest(IEnumerator testEnumerator) - { - if (m_Context.TestCaseTimeout == 0) - { - m_Context.TestCaseTimeout = k_DefaultTimeout; - } - do - { - if (!m_Running) - { - m_Running = true; - m_TestCoroutine = ExMethod(testEnumerator, m_Context.TestCaseTimeout); - m_Controller.StartCoroutine(m_TestCoroutine); - } - if (m_TestFailed) - { - StopAllRunningCoroutines(); - m_Context.CurrentResult.RecordException(new UnityTestTimeoutException(m_Context.TestCaseTimeout)); - yield break; - } - - if (m_Context.ExecutionStatus == TestExecutionStatus.StopRequested || m_Context.ExecutionStatus == TestExecutionStatus.AbortRequested) - { - StopAllRunningCoroutines(); - yield break; - } - yield return null; - } - while (m_Running); - } - - private void StopAllRunningCoroutines() - { - if (m_TimeOutCoroutine != null) - { - m_Controller.StopCoroutine(m_TimeOutCoroutine); - } - - if (m_TestCoroutine != null) - { - m_Controller.StopCoroutine(m_TestCoroutine); - } - } - - private IEnumerator ExMethod(IEnumerator e, int timeout) - { - m_TimeOutCoroutine = m_Controller.StartCoroutine(StartTimer(e, timeout, - () => - { - m_TestFailed = true; - m_Timeout = true; - m_Running = false; - })); - - yield return m_Controller.StartCoroutine(e); - m_Controller.StopCoroutine(m_TimeOutCoroutine); - m_Running = false; - } - - private IEnumerator StartTimer(IEnumerator coroutineToBeKilled, int timeout, Action onTimeout) - { - yield return new WaitForSecondsRealtime(timeout / 1000f); - if (coroutineToBeKilled != null) - m_Controller.StopCoroutine(coroutineToBeKilled); - if (onTimeout != null) - onTimeout(); - } - - public bool HasFailedWithTimeout() - { - return m_Timeout; - } - - public int GetDefaultTimeout() - { - return k_DefaultTimeout; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/FloatEqualityComparer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/FloatEqualityComparer.cs deleted file mode 100644 index 289337f..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/FloatEqualityComparer.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System.Collections.Generic; - -namespace UnityEngine.TestTools.Utils -{ - /// - /// Use this class to compare two float values for equality with NUnit constraints. Use FloatEqualityComparer.Instance comparer to have the default error value set to 0.0001f. For any other error, use the one argument constructor to create a comparer. - /// - public class FloatEqualityComparer : IEqualityComparer - { - private const float k_DefaultError = 0.0001f; - private readonly float AllowedError; - - private static readonly FloatEqualityComparer m_Instance = new FloatEqualityComparer(); - /// - ///A singleton instance of the comparer with a default error value set to 0.0001f. - /// - public static FloatEqualityComparer Instance { get { return m_Instance; } } - - private FloatEqualityComparer() : this(k_DefaultError) {} - - /// - /// Creates an instance of the comparer with a custom error value. - /// - /// The custom error value - /// A FloatEqualityComparer object with allowedError as error value instead of the custom 0.0001f - public FloatEqualityComparer(float allowedError) - { - this.AllowedError = allowedError; - } - - /// - /// Compares the actual and expected float values for equality using . - /// - /// The expected float value used to compare. - /// The actual float value to test. - /// True if the values are equals, false otherwise. - /// - /// - /// [TestFixture] - /// public class FloatsTest - ///{ - /// [Test] - /// public void VerifyThat_TwoFloatsAreEqual() - /// { - /// var comparer = new FloatEqualityComparer(10e-6f); - /// var actual = -0.00009f; - /// var expected = 0.00009f; - /// - /// Assert.That(actual, Is.EqualTo(expected).Using(comparer)); - /// - /// // Default relative error 0.0001f - /// actual = 10e-8f; - /// expected = 0f; - /// - /// Assert.That(actual, Is.EqualTo(expected).Using(FloatEqualityComparer.Instance)); - /// } - ///} - /// - /// - public bool Equals(float expected, float actual) - { - return Utils.AreFloatsEqual(expected, actual, AllowedError); - } - - /// - /// Serves as the default hash function. - /// - /// A not null float number. - /// Returns 0. - public int GetHashCode(float value) - { - return 0; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/IOuterUnityTestAction.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/IOuterUnityTestAction.cs deleted file mode 100644 index e9eaa3c..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/IOuterUnityTestAction.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System.Collections; -using NUnit.Framework.Interfaces; - -namespace UnityEngine.TestTools -{ - /// - /// When implemented by an attribute, this interface implemented to provide actions to execute before setup and after teardown of tests. - /// - public interface IOuterUnityTestAction - { - /// Executed before each test is run - /// The test that is going to be run. - IEnumerator BeforeTest(ITest test); - - /// Executed after each test is run - /// The test that has just been run. - IEnumerator AfterTest(ITest test); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/IPostBuildCleanup.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/IPostBuildCleanup.cs deleted file mode 100644 index 555c549..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/IPostBuildCleanup.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace UnityEngine.TestTools -{ - /// - /// Implement this interface if you want to define a set of actions to execute as a post-build step. Cleanup runs right away for a standalone test run, but only after all the tests run within the Editor. - /// - public interface IPostBuildCleanup - { - /// - /// Implement this method to specify actions that should run as a post-build cleanup step. - /// - void Cleanup(); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/IPrebuildSceneSetup.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/IPrebuildSceneSetup.cs deleted file mode 100644 index 0ea490d..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/IPrebuildSceneSetup.cs +++ /dev/null @@ -1,59 +0,0 @@ -namespace UnityEngine.TestTools -{ - /// - /// Implement this interface if you want to define a set of actions to run as a pre-build step. - /// - public interface IPrebuildSetup - { - /// - /// Implement this method to call actions automatically before the build process. - /// - /// - /// - /// [TestFixture] - /// public class CreateSpriteTest : IPrebuildSetup - /// { - /// Texture2D m_Texture; - /// Sprite m_Sprite; - /// - /// public void Setup() - /// { - /// #if UNITY_EDITOR - /// var spritePath = "Assets/Resources/Circle.png"; - /// - /// var ti = UnityEditor.AssetImporter.GetAtPath(spritePath) as UnityEditor.TextureImporter; - /// - /// ti.textureCompression = UnityEditor.TextureImporterCompression.Uncompressed; - /// - /// ti.SaveAndReimport(); - /// #endif - /// } - /// - /// [SetUp] - /// public void SetUpTest() - /// { - /// m_Texture = Resources.Load<Texture2D>("Circle"); - /// } - /// - /// [Test] - /// public void WhenNullTextureIsPassed_CreateShouldReturnNullSprite() - /// { - /// // Check with Valid Texture. - /// - /// LogAssert.Expect(LogType.Log, "Circle Sprite Created"); - /// - /// Sprite.Create(m_Texture, new Rect(0, 0, m_Texture.width, m_Texture.height), new Vector2(0.5f, 0.5f)); - /// - /// Debug.Log("Circle Sprite Created"); - /// - /// // Check with NULL Texture. Should return NULL Sprite. - /// m_Sprite = Sprite.Create(null, new Rect(0, 0, m_Texture.width, m_Texture.height), new Vector2(0.5f, 0.5f)); - /// - /// Assert.That(m_Sprite, Is.Null, "Sprite created with null texture should be null"); - /// } - /// } - /// - /// - void Setup(); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/ITestRunCallback.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/ITestRunCallback.cs deleted file mode 100644 index ad93ca4..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/ITestRunCallback.cs +++ /dev/null @@ -1,31 +0,0 @@ -using NUnit.Framework.Interfaces; - -namespace UnityEngine.TestRunner -{ - /// - /// Interface for getting callsbacks on test progress directly from NUnit. This is available both in the editor and directly in the runtime. It is registered by using . - /// - public interface ITestRunCallback - { - /// - /// A callback invoked when a test run is started. - /// - /// The full loaded test tree. - void RunStarted(ITest testsToRun); - /// - /// A callback invoked when a test run is finished. - /// - /// The result of the test run. - void RunFinished(ITestResult testResults); - /// - /// A callback invoked when each individual node of the test tree has started executing. - /// - /// The test node currently executed. - void TestStarted(ITest test); - /// - /// A callback invoked when each individual node of the test tree has finished executing. - /// - /// The result of the test tree node after it had been executed. - void TestFinished(ITestResult result); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/MonoBehaviourTest/IMonoBehaviourTest.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/MonoBehaviourTest/IMonoBehaviourTest.cs deleted file mode 100644 index 97339bb..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/MonoBehaviourTest/IMonoBehaviourTest.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace UnityEngine.TestTools -{ - /// - /// An interface implemented by a MonoBehaviour test. - /// - public interface IMonoBehaviourTest - { - /// true when the test is considered finished. - bool IsTestFinished {get; } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/MonoBehaviourTest/MonoBehaviourTest.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/MonoBehaviourTest/MonoBehaviourTest.cs deleted file mode 100644 index 46065dc..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/MonoBehaviourTest/MonoBehaviourTest.cs +++ /dev/null @@ -1,60 +0,0 @@ -namespace UnityEngine.TestTools -{ - /// - /// This is a wrapper that allows running tests on MonoBehaviour scripts. Inherits from . - /// - /// A MonoBehaviour component created for the test and attached to the tests [GameObject](https://docs.unity3d.com/ScriptReference/GameObject.html). - public class MonoBehaviourTest : CustomYieldInstruction where T : MonoBehaviour, IMonoBehaviourTest - { - /// A MonoBehaviour component created for the test and attached to the tests [GameObject](https://docs.unity3d.com/ScriptReference/GameObject.html). - public T component { get; } - /// - /// A `GameObject` created as a container for the test component. - /// - public GameObject gameObject { get { return component.gameObject; } } - /// - /// `MonoBehaviourTest` is a [coroutine](https://docs.unity3d.com/ScriptReference/Coroutine.html) and a helper for writing MonoBehaviour tests. - /// Yield a `MonoBehaviour`Test when using the `UnityTest` attribute to instantiate the `MonoBehaviour` you wish to test and wait for it to finish running. Implement the `IMonoBehaviourTest` interface on the `MonoBehaviour` to state when the test completes. - /// - /// - /// - /// - /// [UnityTest] - /// public IEnumerator MonoBehaviourTest_Works() - /// { - /// yield return new MonoBehaviourTest<MyMonoBehaviourTest>(); - /// } - /// - /// public class MyMonoBehaviourTest : MonoBehaviour, IMonoBehaviourTest - /// { - /// private int frameCount; - /// public bool IsTestFinished - /// { - /// get { return frameCount > 10; } - /// } - /// - /// void Update() - /// { - /// frameCount++; - /// } - /// } - /// - /// - public MonoBehaviourTest(bool dontDestroyOnLoad = true) - { - var go = new GameObject("MonoBehaviourTest: " + typeof(T).FullName); - component = go.AddComponent(); - if (dontDestroyOnLoad) - { - Object.DontDestroyOnLoad(go); - } - } - /// - /// (Inherited) Returns `true`` if the test is not finished yet, which keeps the coroutine suspended - /// - public override bool keepWaiting - { - get { return !component.IsTestFinished; } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/PostBuildCleanupAttribute.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/PostBuildCleanupAttribute.cs deleted file mode 100644 index 2bf58b2..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/PostBuildCleanupAttribute.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; - -namespace UnityEngine.TestTools -{ - /// - /// PostBuildCleanup attributes run if the respective test or test class is in the current test run. The test is included either by running all tests or setting a [filter](https://docs.unity3d.com/Packages/com.unity.test-framework@1.1/manual/workflow-create-test.html#filters) that includes the test. If multiple tests reference the same pre-built setup or post-build cleanup, then it only runs once. - /// - [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Method)] - public class PostBuildCleanupAttribute : Attribute - { - public PostBuildCleanupAttribute(Type targetClass) - { - TargetClass = targetClass; - } - - public PostBuildCleanupAttribute(string targetClassName) - { - TargetClass = AttributeHelper.GetTargetClassFromName(targetClassName, typeof(IPostBuildCleanup)); - } - - internal Type TargetClass { get; private set; } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/PrebuildSceneSetupAttribute.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/PrebuildSceneSetupAttribute.cs deleted file mode 100644 index 70befba..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/PrebuildSceneSetupAttribute.cs +++ /dev/null @@ -1,70 +0,0 @@ -using System; - -namespace UnityEngine.TestTools -{ - /// - /// PrebuildSetup attribute run if the test or test class is in the current test run. The test is included either by running all tests or setting a filter that includes the test. If multiple tests reference the same pre-built setup or post-build cleanup, then it only runs once. - /// - [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Method)] - public class PrebuildSetupAttribute : Attribute - { - public PrebuildSetupAttribute(Type targetClass) - { - TargetClass = targetClass; - } - /// - /// - /// - /// - /// - /// - /// [TestFixture] - /// public class CreateSpriteTest : IPrebuildSetup - /// { - /// Texture2D m_Texture; - /// Sprite m_Sprite; - /// - /// public void Setup() - /// { - /// - /// #if UNITY_EDITOR - /// - /// var spritePath = "Assets/Resources/Circle.png"; - /// var ti = UnityEditor.AssetImporter.GetAtPath(spritePath) as UnityEditor.TextureImporter; - /// ti.textureCompression = UnityEditor.TextureImporterCompression.Uncompressed; - /// ti.SaveAndReimport(); - /// - /// #endif - /// } - /// - /// [SetUp] - /// public void SetUpTest() - /// { - /// m_Texture = Resources.Load<Texture2D>("Circle"); - /// } - /// - /// [Test] - /// public void WhenNullTextureIsPassed_CreateShouldReturnNullSprite() - /// { - /// - /// // Check with Valid Texture. - /// LogAssert.Expect(LogType.Log, "Circle Sprite Created"); - /// Sprite.Create(m_Texture, new Rect(0, 0, m_Texture.width, m_Texture.height), new Vector2(0.5f, 0.5f)); - /// Debug.Log("Circle Sprite Created"); - /// - /// // Check with NULL Texture. Should return NULL Sprite. - /// m_Sprite = Sprite.Create(null, new Rect(0, 0, m_Texture.width, m_Texture.heig`t), new Vector2(0.5f, 0.5f)); - /// Assert.That(m_Sprite, Is.Null, "Sprite created with null texture should be null"); - /// } - /// } - /// - /// Tip: Use `#if UNITY_EDITOR` if you want to access Editor only APIs, but the setup/cleanup is inside a **Play Mode** assembly. - /// - public PrebuildSetupAttribute(string targetClassName) - { - TargetClass = AttributeHelper.GetTargetClassFromName(targetClassName, typeof(IPrebuildSetup)); - } - - internal Type TargetClass { get; private set; } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/QuaternionEqualityComparer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/QuaternionEqualityComparer.cs deleted file mode 100644 index 321597b..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/QuaternionEqualityComparer.cs +++ /dev/null @@ -1,80 +0,0 @@ -using System.Collections.Generic; - -namespace UnityEngine.TestTools.Utils -{ - /// - /// Use this utility to compare two Quaternion objects for equality - /// with NUnit assertion constraints. - /// Use the static instance QuaternionEqualityComparer.Instance - /// to have the default calculation error value set to 0.00001f. - /// For any other custom error value, use the one argument constructor. - /// - public class QuaternionEqualityComparer : IEqualityComparer - { - private const float k_DefaultError = 0.00001f; - private readonly float AllowedError; - - private static readonly QuaternionEqualityComparer m_Instance = new QuaternionEqualityComparer(); - /// - ///A comparer instance with the default error value 0.00001f. - /// > - public static QuaternionEqualityComparer Instance { get { return m_Instance; } } - - - private QuaternionEqualityComparer() : this(k_DefaultError) {} - /// - /// Creates an instance of the comparer with a custom allowed error value. - /// - /// Describes the custom allowed error value - public QuaternionEqualityComparer(float allowedError) - { - AllowedError = allowedError; - } - - /// - /// Compares the actual and expected Quaternion objects - /// for equality using the method. - /// - /// Expected Quaternion value used for comparison - /// Actual Quaternion value to test - /// True if the quaternion are equals, false otherwise. - /// - /// The following example shows how to verify if two Quaternion are equals - /// - /// [TestFixture] - /// public class QuaternionTest - /// { - /// [Test] - /// public void VerifyThat_TwoQuaternionsAreEqual() - /// { - /// var actual = new Quaternion(10f, 0f, 0f, 0f); - /// var expected = new Quaternion(1f, 10f, 0f, 0f); - /// var comparer = new QuaternionEqualityComparer(10e-6f); - /// - /// Assert.That(actual, Is.EqualTo(expected).Using(comparer)); - /// - /// //Using default error 0.00001f - /// actual = new Quaternion(10f, 0f, 0.1f, 0f); - /// expected = new Quaternion(1f, 10f, 0.1f, 0f); - /// - /// Assert.That(actual, Is.EqualTo(expected).Using(QuaternionEqualityComparer.Instance)); - /// } - /// } - /// - /// - public bool Equals(Quaternion expected, Quaternion actual) - { - return Mathf.Abs(Quaternion.Dot(expected, actual)) > (1.0f - AllowedError); - } - - /// - /// Serves as the default hash function. - /// - /// A not null Quaternion - /// Returns 0 - public int GetHashCode(Quaternion quaternion) - { - return 0; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/StacktraceFilter.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/StacktraceFilter.cs deleted file mode 100644 index 6f1e690..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/StacktraceFilter.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System.Linq; -using System.Text; - -namespace UnityEngine.TestTools.Utils -{ - internal static class StackTraceFilter - { - private static readonly string[] s_FilteredLogMessages = - { - @"UnityEngine.DebugLogHandler:Internal_Log", - @"UnityEngine.DebugLogHandler:Log", - @"UnityEngine.Logger:Log", - @"UnityEngine.Debug" - }; - - private static readonly string[] s_LastMessages = - { - @"System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)", - @"UnityEditor.TestTools.TestRunner.EditModeRunner:InvokeDelegator" - }; - - public static string Filter(string inputStackTrace) - { - int idx; - foreach (var lastMessage in s_LastMessages) - { - idx = inputStackTrace.IndexOf(lastMessage); - if (idx != -1) - inputStackTrace = inputStackTrace.Substring(0, idx); - } - - var inputStackTraceLines = inputStackTrace.Split('\n'); - var result = new StringBuilder(); - foreach (var line in inputStackTraceLines) - { - if (s_FilteredLogMessages.Any(s => line.StartsWith(s))) - continue; - result.AppendLine(line); - } - return result.ToString(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/TestRunCallbackAttribute.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/TestRunCallbackAttribute.cs deleted file mode 100644 index 216b15d..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/TestRunCallbackAttribute.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System; -using UnityEngine.Scripting; - -namespace UnityEngine.TestRunner -{ - /// - /// An assembly level attribute that indicates that a given type should be subscribed for receiving updates on the test progress. - /// - /// - /// - /// using NUnit.Framework.Interfaces; - /// using UnityEngine; - /// using UnityEngine.TestRunner; - /// - /// [assembly:TestRunCallback(typeof(TestListener))] - /// - /// public class TestListener : ITestRunCallback - /// { - /// public void RunStarted(ITest testsToRun) - /// { - /// - /// } - /// - /// public void RunFinished(ITestResult testResults) - /// { - /// Debug.Log($"Run finished with result {testResults.ResultState}."); - /// } - /// - /// public void TestStarted(ITest test) - /// { - /// - /// } - /// - /// public void TestFinished(ITestResult result) - /// { - /// - /// } - ///} - /// - /// - [AttributeUsage(AttributeTargets.Assembly)] - public class TestRunCallbackAttribute : Attribute - { - private Type m_Type; - - /// - /// Constructs a new instance of the class. - /// - /// A target type that implements . - /// Throws an ArgumentException if the provided type does not implement . - public TestRunCallbackAttribute(Type type) - { - var interfaceType = typeof(ITestRunCallback); - if (!interfaceType.IsAssignableFrom(type)) - { - throw new ArgumentException(string.Format( - "Type {2} provided to {0} does not implement {1}. If the stripping level is set to high, the implementing class should have the {3}.", - this.GetType().Name, interfaceType.Name, type.Name, typeof(PreserveAttribute).Name)); - } - m_Type = type; - } - - internal ITestRunCallback ConstructCallback() - { - return Activator.CreateInstance(m_Type) as ITestRunCallback; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/TestRunCallbackListener.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/TestRunCallbackListener.cs deleted file mode 100644 index 4425fa0..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/TestRunCallbackListener.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using NUnit.Framework.Interfaces; -using NUnit.Framework.Internal; -using UnityEngine.TestTools.TestRunner; - -namespace UnityEngine.TestRunner.Utils -{ - internal class TestRunCallbackListener : ScriptableObject, ITestRunnerListener - { - private ITestRunCallback[] m_Callbacks; - public void RunStarted(ITest testsToRun) - { - InvokeAllCallbacks(callback => callback.RunStarted(testsToRun)); - } - - private static ITestRunCallback[] GetAllCallbacks() - { - var allAssemblies = AppDomain.CurrentDomain.GetAssemblies(); - allAssemblies = allAssemblies.Where(x => x.GetReferencedAssemblies().Any(z => z.Name == "UnityEngine.TestRunner")).ToArray(); - var attributes = allAssemblies.SelectMany(assembly => assembly.GetCustomAttributes(typeof(TestRunCallbackAttribute), true).OfType()).ToArray(); - return attributes.Select(attribute => attribute.ConstructCallback()).ToArray(); - } - - private void InvokeAllCallbacks(Action invoker) - { - if (m_Callbacks == null) - { - m_Callbacks = GetAllCallbacks(); - } - - foreach (var testRunCallback in m_Callbacks) - { - try - { - invoker(testRunCallback); - } - catch (Exception e) - { - Debug.LogException(e); - throw; - } - } - } - - public void RunFinished(ITestResult testResults) - { - InvokeAllCallbacks(callback => callback.RunFinished(testResults)); - } - - public void TestStarted(ITest test) - { - InvokeAllCallbacks(callback => callback.TestStarted(test)); - } - - public void TestFinished(ITestResult result) - { - InvokeAllCallbacks(callback => callback.TestFinished(result)); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Utils.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Utils.cs deleted file mode 100644 index 698d8f2..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Utils.cs +++ /dev/null @@ -1,93 +0,0 @@ -using System; - -namespace UnityEngine.TestTools.Utils -{ - /// - /// This contains test utility functions for float value comparison and creating primitives. - /// - public static class Utils - { - /// - /// Relative epsilon comparison of two float values for equality. - /// The relative error is the absolute error divided by the magnitude of the exact value. - /// - /// The expected float value used to compare. - /// The actual float value to test. - /// Epsilon is the relative error to be used in relative epsilon comparison. - /// Returns true if the actual value is equivalent to the expected value. - /// - /// - /// [TestFixture] - /// class UtilsTests - /// { - /// [Test] - /// public void CheckThat_FloatsAreEqual() - /// { - /// float expected = 10e-8f; - /// float actual = 0f; - /// float allowedRelativeError = 10e-6f; - /// - /// Assert.That(Utils.AreFloatsEqual(expected, actual, allowedRelativeError), Is.True); - /// } - /// } - /// - /// - public static bool AreFloatsEqual(float expected, float actual, float epsilon) - { - // special case for infinity - if (expected == Mathf.Infinity || actual == Mathf.Infinity || expected == Mathf.NegativeInfinity || actual == Mathf.NegativeInfinity) - return expected == actual; - - // we cover both relative and absolute tolerance with this check - // which is better than just relative in case of small (in abs value) args - // please note that "usually" approximation is used [i.e. abs(x)+abs(y)+1] - // but we speak about test code so we dont care that much about performance - // but we do care about checks being more precise - return Math.Abs(actual - expected) <= epsilon * Mathf.Max(Mathf.Max(Mathf.Abs(actual), Mathf.Abs(expected)), 1.0f); - } - - /// - /// Compares two floating point numbers for equality under the given absolute tolerance. - /// - /// The expected float value used to compare. - /// The actual float value to test. - /// AllowedAbsoluteError is the permitted error tolerance. - /// Returns true if the actual value is equivalent to the expected value under the given tolerance. - /// - /// - /// - /// [TestFixture] - /// class UtilsTests - /// { - /// [Test] - /// public void ChechThat_FloatsAreAbsoluteEqual() - /// { - /// float expected = 0f; - /// float actual = 10e-6f; - /// float error = 10e-5f; - /// - /// Assert.That(Utils.AreFloatsEqualAbsoluteError(expected, actual, error), Is.True); - /// } - /// } - /// - /// - public static bool AreFloatsEqualAbsoluteError(float expected, float actual, float allowedAbsoluteError) - { - return Math.Abs(actual - expected) <= allowedAbsoluteError; - } - - /// - /// Analogous to GameObject.CreatePrimitive, but creates a primitive mesh renderer with fast shader instead of a default builtin shader. - /// Optimized for testing performance. - /// - /// A GameObject with primitive mesh renderer and collider. - public static GameObject CreatePrimitive(PrimitiveType type) - { - var prim = GameObject.CreatePrimitive(type); - var renderer = prim.GetComponent(); - if (renderer) - renderer.sharedMaterial = new Material(Shader.Find("VertexLit")); - return prim; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Vector2ComparerWithEqualsOperator.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Vector2ComparerWithEqualsOperator.cs deleted file mode 100644 index d7c54e8..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Vector2ComparerWithEqualsOperator.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System.Collections.Generic; - -namespace UnityEngine.TestTools.Utils -{ - /// - /// Use these classes to compare two objects of the same type for equality within the range of a given tolerance using NUnit or custom constraints . Call Instance to apply the default calculation error value to the comparison. - /// - public class Vector2ComparerWithEqualsOperator : IEqualityComparer - { - private static readonly Vector2ComparerWithEqualsOperator m_Instance = new Vector2ComparerWithEqualsOperator(); - /// - /// A singleton instance of the comparer with a predefined default error value. - /// - public static Vector2ComparerWithEqualsOperator Instance { get { return m_Instance; } } - - private Vector2ComparerWithEqualsOperator() {} - /// - /// Compares the actual and expected objects for equality using a custom comparison mechanism. - /// - /// Expected Vector2 used to compare - /// Actual Vector2 value to test. - /// Returns true if expected and actual objects are equal, otherwise it returns false. - /// - /// - /// [TestFixture] - /// public class Vector2Test - /// { - /// [Test] - /// public void VerifyThat_TwoVector2ObjectsAreEqual() - /// { - /// var actual = new Vector2(10e-7f, 10e-7f); - /// var expected = new Vector2(0f, 0f); - /// - /// Assert.That(actual, Is.EqualTo(expected).Using(Vector2ComparerWithEqualsOperator.Instance)); - /// } - /// } - /// - /// - public bool Equals(Vector2 expected, Vector2 actual) - { - return expected == actual; - } - /// - /// Serves as the default hash function. - /// - /// A not null Vector2 object - /// Returns 0 - public int GetHashCode(Vector2 vec2) - { - return 0; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Vector2EqualityComparer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Vector2EqualityComparer.cs deleted file mode 100644 index a8d1a8c..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Vector2EqualityComparer.cs +++ /dev/null @@ -1,86 +0,0 @@ -using System.Collections.Generic; - -namespace UnityEngine.TestTools.Utils -{ - /// - /// Use this class to compare two Vector2 objects for - /// equality with NUnit constraints. Use the static - /// - /// to have the calculation error value set to default 0.0001f. - /// For any other error value, instantiate a new comparer - /// object with the one argument constructor. - /// - public class Vector2EqualityComparer : IEqualityComparer - { - private const float k_DefaultError = 0.0001f; - private readonly float AllowedError; - - private static readonly Vector2EqualityComparer m_Instance = new Vector2EqualityComparer(); - - /// - /// A comparer instance with the default error value set to 0.0001f. - ///> - public static Vector2EqualityComparer Instance { get { return m_Instance; } } - - private Vector2EqualityComparer() : this(k_DefaultError) - { - } - /// - /// Creates an instance with a custom error value. - /// - /// This value identifies the calculation error allowed. - /// A float number. - /// A comparer with custom allowed calculation error - public Vector2EqualityComparer(float error) - { - this.AllowedError = error; - } - /// - /// Compares the actual and expected Vector2 objects for equality using the method. - /// - /// The expected Vector2 used for comparison - /// - /// The actual Vector2 to test - /// - /// True if the vectors are equals, false otherwise. - /// - /// The following example shows how to verify if two Vector2 are equals - /// - ///[TestFixture] - /// public class Vector2Test - /// { - /// [Test] - /// public void VerifyThat_TwoVector2ObjectsAreEqual() - /// { - /// // Custom calculation error - /// var actual = new Vector2(10e-7f, 10e-7f); - /// var expected = new Vector2(0f, 0f); - /// var comparer = new Vector2EqualityComparer(10e-6f); - /// - /// Assert.That(actual, Is.EqualTo(expected).Using(comparer)); - /// - /// //Default error 0.0001f - /// actual = new Vector2(0.01f, 0.01f); - /// expected = new Vector2(0.01f, 0.01f); - /// - /// Assert.That(actual, Is.EqualTo(expected).Using(Vector2EqualityComparer.Instance)); - /// } - /// } - /// - /// - public bool Equals(Vector2 expected, Vector2 actual) - { - return Utils.AreFloatsEqual(expected.x, actual.x, AllowedError) && - Utils.AreFloatsEqual(expected.y, actual.y, AllowedError); - } - /// - /// Serves as the default hash function. - /// - /// A not null Vector2 - /// Returns 0 - public int GetHashCode(Vector2 vec2) - { - return 0; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Vector3ComparerWithEqualsOperator.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Vector3ComparerWithEqualsOperator.cs deleted file mode 100644 index c566725..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Vector3ComparerWithEqualsOperator.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System.Collections.Generic; - -namespace UnityEngine.TestTools.Utils -{ - /// - /// Use these classes to compare two objects of the same type for equality within the range of a given tolerance using NUnit or custom constraints . Call Instance to apply the default calculation error value to the comparison. - /// - public class Vector3ComparerWithEqualsOperator : IEqualityComparer - { - private static readonly Vector3ComparerWithEqualsOperator m_Instance = new Vector3ComparerWithEqualsOperator(); - /// - /// A singleton instance of the comparer with a predefined default error value. - /// - public static Vector3ComparerWithEqualsOperator Instance { get { return m_Instance; } } - - private Vector3ComparerWithEqualsOperator() {} - /// - /// Compares the actual and expected objects for equality using a custom comparison mechanism. - /// - /// Expected Vector3 used to compare - /// Actual Vector3 value to test. - /// Returns true if expected and actual objects are equal, otherwise it returns false. - /// - /// - /// [TestFixture] - /// public class Vector3Test - /// { - /// [Test] - /// public void VerifyThat_TwoVector3ObjectsAreEqual() - /// { - /// var actual = new Vector2(10e-7f, 10e-7f, 10e-7f); - /// var expected = new Vector2(0f, 0f, 0f); - /// - /// Assert.That(actual, Is.EqualTo(expected).Using(Vector3ComparerWithEqualsOperator.Instance)); - /// } - /// } - /// - /// - public bool Equals(Vector3 expected, Vector3 actual) - { - return expected == actual; - } - /// - /// Serves as the default hash function. - /// - /// A not null Vector3 object - /// Returns 0 - public int GetHashCode(Vector3 vec3) - { - return 0; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Vector3EqualityComparer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Vector3EqualityComparer.cs deleted file mode 100644 index 28471df..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Vector3EqualityComparer.cs +++ /dev/null @@ -1,82 +0,0 @@ -using System.Collections.Generic; - - -namespace UnityEngine.TestTools.Utils -{ - /// - /// Use this class to compare two Vector3 objects for equality with NUnit constraints. Call Vector3EqualityComparer.Instance comparer to perform a comparison with the default calculation error value 0.0001f. To specify a different error value, use the one argument constructor to instantiate a new comparer. - /// - public class Vector3EqualityComparer : IEqualityComparer - { - private const float k_DefaultError = 0.0001f; - private readonly float AllowedError; - - private static readonly Vector3EqualityComparer m_Instance = new Vector3EqualityComparer(); - - /// A comparer instance with the default calculation error value equal to 0.0001f. - /// - public static Vector3EqualityComparer Instance { get { return m_Instance; } } - - private Vector3EqualityComparer() : this(k_DefaultError) {} - - /// This value identifies the calculation error allowed. - /// A float number. - /// A comparer with custom allowed calculation error - public Vector3EqualityComparer(float allowedError) - { - this.AllowedError = allowedError; - } - /// - /// Compares the actual and expected Vector3 objects - /// for equality using to compare the x, y, and z attributes of Vector3. - /// - /// The expected Vector3 used for comparison - /// - /// The actual Vector3 to test - /// - /// True if the vectors are equals, false otherwise. - /// - /// The following example shows how to verify if two Vector3 are equals - /// - /// [TestFixture] - /// public class Vector3Test - /// { - /// [Test] - /// public void VerifyThat_TwoVector3ObjectsAreEqual() - /// { - /// //Custom error 10e-6f - /// var actual = new Vector3(10e-8f, 10e-8f, 10e-8f); - /// var expected = new Vector3(0f, 0f, 0f); - /// var comparer = new Vector3EqualityComparer(10e-6f); - /// - /// - /// Assert.That(actual, Is.EqualTo(expected).Using(comparer)); - /// - /// //Default error 0.0001f - /// actual = new Vector3(0.01f, 0.01f, 0f); - /// expected = new Vector3(0.01f, 0.01f, 0f); - /// - /// Assert.That(actual, Is.EqualTo(expected).Using(Vector3EqualityComparer.Instance)); - /// } - /// } - /// - /// - - public bool Equals(Vector3 expected, Vector3 actual) - { - return Utils.AreFloatsEqual(expected.x, actual.x, AllowedError) && - Utils.AreFloatsEqual(expected.y, actual.y, AllowedError) && - Utils.AreFloatsEqual(expected.z, actual.z, AllowedError); - } - - /// - /// Serves as the default hash function. - /// - /// A not null Vector3 - /// Returns 0 - public int GetHashCode(Vector3 vec3) - { - return 0; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Vector4ComparerWithEqualsOperator.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Vector4ComparerWithEqualsOperator.cs deleted file mode 100644 index d778954..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Vector4ComparerWithEqualsOperator.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System.Collections.Generic; - -namespace UnityEngine.TestTools.Utils -{ - /// - /// Use these classes to compare two objects of the same type for equality within the range of a given tolerance using NUnit or custom constraints . Call Instance to apply the default calculation error value to the comparison. - /// - public class Vector4ComparerWithEqualsOperator : IEqualityComparer - { - private static readonly Vector4ComparerWithEqualsOperator m_Instance = new Vector4ComparerWithEqualsOperator(); - /// - /// A singleton instance of the comparer with a predefined default error value. - /// - public static Vector4ComparerWithEqualsOperator Instance { get { return m_Instance; } } - - private Vector4ComparerWithEqualsOperator() {} - /// - /// Compares the actual and expected objects for equality using a custom comparison mechanism. - /// - /// Expected Vector4 used to compare - /// Actual Vector4 value to test. - /// Returns true if expected and actual objects are equal, otherwise it returns false. - /// - /// - /// [TestFixture] - /// public class Vector4Test - /// { - /// [Test] - /// public void VerifyThat_TwoVector4ObjectsAreEqual() - /// { - /// var actual = new Vector4(10e-7f, 10e-7f, 10e-7f, 10e-7f); - /// var expected = new Vector4(0f, 0f, 0f, 0f); - /// - /// Assert.That(actual, Is.EqualTo(expected).Using(Vector4ComparerWithEqualsOperator.Instance)); - /// } - /// } - /// - /// - public bool Equals(Vector4 expected, Vector4 actual) - { - return expected == actual; - } - /// - /// Serves as the default hash function. - /// - /// A not null Vector4 object - /// Returns 0 - public int GetHashCode(Vector4 vec4) - { - return 0; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Vector4EqualityComparer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Vector4EqualityComparer.cs deleted file mode 100644 index 3dc7940..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/UnityEngine.TestRunner/Utils/Vector4EqualityComparer.cs +++ /dev/null @@ -1,77 +0,0 @@ -using System.Collections.Generic; - -namespace UnityEngine.TestTools.Utils -{ - /// - /// Use this class to compare two Vector4 objects for equality with NUnit constraints. Call Vector4EqualityComparer.Instance to perform comparisons using default calculation error value 0.0001f. To set a custom test value, instantiate a new comparer using the one argument constructor. - /// - public class Vector4EqualityComparer : IEqualityComparer - { - private const float k_DefaultError = 0.0001f; - private readonly float AllowedError; - - private static readonly Vector4EqualityComparer m_Instance = new Vector4EqualityComparer(); - /// - /// A comparer instance with the default calculation error value set to 0.0001f. - /// - public static Vector4EqualityComparer Instance { get { return m_Instance; } } - - private Vector4EqualityComparer() : this(k_DefaultError) {} - /// - /// Creates an instance with a custom error value. - /// - /// This value identifies the calculation error allowed. - public Vector4EqualityComparer(float allowedError) - { - this.AllowedError = allowedError; - } - - /// - /// Compares the actual and expected Vector4 objects for equality using to compare the x, y, z, and w attributes of Vector4. - /// - /// The expected Vector4 used for comparison - /// The actual Vector4 to test - /// True if the vectors are equals, false otherwise. - /// - /// - ///[TestFixture] - /// public class Vector4Test - /// { - /// [Test] - /// public void VerifyThat_TwoVector4ObjectsAreEqual() - /// { - /// // Custom error 10e-6f - /// var actual = new Vector4(0, 0, 1e-6f, 1e-6f); - /// var expected = new Vector4(1e-6f, 0f, 0f, 0f); - /// var comparer = new Vector4EqualityComparer(10e-6f); - /// - /// Assert.That(actual, Is.EqualTo(expected).Using(comparer)); - /// - /// // Default error 0.0001f - /// actual = new Vector4(0.01f, 0.01f, 0f, 0f); - /// expected = new Vector4(0.01f, 0.01f, 0f, 0f); - /// - /// Assert.That(actual, Is.EqualTo(expected).Using(Vector4EqualityComparer.Instance)); - /// } - /// } - /// - /// - public bool Equals(Vector4 expected, Vector4 actual) - { - return Utils.AreFloatsEqual(expected.x, actual.x, AllowedError) && - Utils.AreFloatsEqual(expected.y, actual.y, AllowedError) && - Utils.AreFloatsEqual(expected.z, actual.z, AllowedError) && - Utils.AreFloatsEqual(expected.w, actual.w, AllowedError); - } - - /// - /// Serves as the default hash function. - /// - /// A not null Vector4 object - /// Returns 0 - public int GetHashCode(Vector4 vec4) - { - return 0; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/package.json b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/package.json deleted file mode 100644 index ad15da0..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.test-framework@1.1.20/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "com.unity.test-framework", - "displayName": "Test Framework", - "version": "1.1.20", - "unity": "2019.2", - "unityRelease": "0a10", - "description": "Test framework for running Edit mode and Play mode tests in Unity.", - "keywords": [ - "Test", - "TestFramework" - ], - "category": "Unity Test Framework", - "repository": { - "url": "https://github.com/Unity-Technologies/com.unity.test-framework.git", - "type": "git", - "revision": "f04391d9987f4a534f886a9638b011d53e5871d8" - }, - "dependencies": { - "com.unity.ext.nunit": "1.0.6", - "com.unity.modules.imgui": "1.0.0", - "com.unity.modules.jsonserialize": "1.0.0" - }, - "relatedPackages": { - "com.unity.test-framework.tests": "1.1.20" - }, - "upmCi": { - "footprint": "6bbcd578b4d1dff0f4db7da389f8cff13f752297" - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/CHANGELOG.md b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/CHANGELOG.md deleted file mode 100644 index 594a0e2..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/CHANGELOG.md +++ /dev/null @@ -1,449 +0,0 @@ -# Changelog -These are the release notes for the TextMesh Pro UPM package which was first introduced with Unity 2018.1. Please see the following link for the Release Notes for prior versions of TextMesh Pro. http://digitalnativestudios.com/forum/index.php?topic=1363.0 - -## [2.1.1] - 2020-07-26 -## [1.5.1] -## [3.0.1] -### Changes -- Addressed compiler warning related to the new virtual event OnPreRenderText. -- Added one additional layer of missing character search where in the even the missing glyph character \u0000 or space character \u0020 is not available in any font asset or potential fallbacks, the End of Text (ETX) \u0003 will be used instead. -- Input Field Integer or Decimal validation will now take into account the current culture. See [forum post](https://forum.unity.com/threads/currentculture-decimal-separator-in-input-fields.908999/) for details. -- Added Editor only font asset post processor to handle font assets being modified outside of the Unity Editor. -- Fixed potential Array Out of Bounds error that could occur when using </style> without first using a valid <style>. Case #1263787 and See [forum post](https://forum.unity.com/threads/missingreferenceexception-occurs-on-selecting-a-tmp-dropdown-in-the-hierarchy-after-a-play-occurs.728018/#post-6094317) for details. -- Fixed potential issue when using multiple <font> tag in the same text object where these referencing several font assets derived from the same font file. Since their Default Material all have the same name, this was causing an issue in the Material Reference Manager. See [forum post](https://forum.unity.com/threads/argumentexception-on-v2-1-0-unity-2019-4-4f1-identified-bug.934789/) for details. Case #1264596. - -## [2.1.0] - 2020-06-30 -## [1.5.0] -## [3.0.0] -### Changes -- Added support to control if a text object is Maskable and affected by UI Mask components. The new setting is found in the Extra Settings section of the <TextMeshProUGUI> component inspector. -- Fixed potential Null Reference Exception when trying to add characters and / or glyphs to a font asset via scripting and before it has been initialized or ReadFontAssetDefinition() has been called. -- Fixed incorrect preferred width values when using alternative font weight font assets. Case #1255336 -- Enabling or disabling the Mesh Renderer of a <TextMeshPro> text object should now also mirror that state on any sub text object renderers as well. -- Fixed <sprite> incorrect position when this sprite is the only character in the text and when the sprite asset face info has not been defined. -- Fixed potential Null Reference Exception related to culling when entering play mode. -- Added OnPreRenderText event delegate to allow potential modification of the text geometry before it is uploaded to the mesh and rendered. -- Fixed missing warning when the requested character is missing from the font asset or any potential fallbacks. Case #1256879 -- Fixed potential issue with Underline and StrikeThrough when using alternative typeface. Case #1255336 -- Fixed potential errors in the Text StyleSheet Inspector when adding or removing Text Styles after resetting the asset. Case #1254602 -- Fixed text Margin property values not being draggable in the Extra Settings section of the text inspector. Case #1253447 -- It will no longer be possible to create Editor Presets for the TMP_FontAsset, TMP_SpriteAsset, TMP_StyleSheet, TMP_ColorGradient and TMP_Settings as these are persistent and runtime assets. Case #1251229 - -## [2.1.0-preview.14] - 2020-06-08 -## [1.5.0-preview.14] -## [3.0.0-preview.14] -### Changes -- Fixed sprite character and sprite glyph scale not being reflected in the text layout. See [forum post](https://forum.unity.com/threads/glyph-scale-dont-change-line-height.898817/) for details. -- Fixed potential null reference exception in the CrossFadeColor or CrossFadeAlpha functions. See [forum post](https://forum.unity.com/threads/version-1-5-0-2-1-0-3-0-0-preview-13-now-available-for-testing.753587/page-4#post-5885075) for details. -- Minor improvements to the Sprite Asset Importer to improve allocations and address potential error encountered when creating multiple sprite assets. -- TMP GUID Remapping Tool - Removed "UnityEditor.Animations.AnimatorController" from the exclusion search list. -- Fixed potential culling issue when dynamically updating the content of child text objects of RectMask2D components. Case #1253625 -- Fixed InvalidOperationException that could occur when changing text Overflow linked components via code. Case #1251283 - -## [2.1.0-preview.13] - 2020-05-22 -## [1.5.0-preview.13] -## [3.0.0-preview.13] -### Changes -- Fixed potential issue where the Font Asset Creator could get stuck in the packing phase of the atlas generation process. See [forum post](https://forum.unity.com/threads/font-asset-creator-stuck-at-packing-glyphs-pass-8.811863/) for details. -- Fixed issue potentially affecting text layout as a result of the width of the RectTransform being incorrectly reported. See [forum post](https://forum.unity.com/threads/textmesh-pro-forcemeshupdate-true-not-working-when-object-inactive.524507/#post-5798515) for details. -- Previously created prefabs containing sub text objects will now have their HideFlags updated to HideFlags.DontSave to be consistent with newly created prefabs whose sub text objects are no longer serialized. Case #1247184 -- Fixed culling issue where lossy scale was not considered in the determination of the bounds of the text geometry. - -## [2.1.0-preview.12] - 2020-05-09 -## [1.5.0-preview.12] -## [3.0.0-preview.12] -### Changes -- Added synchronization of the RaycastTarget property of the parent <TextMeshProUGUI> with potential child sub text objects. Case #1240784 -- Fixed Font Asset Bold Spacing adjustment scaling based on the text object point size instead of current point size. Case #1241132 -- Improved text alignment when using RTL in conjunction with character, word and other spacing adjustments. -- Fixed TMP Input Field caret potentially not being visible when reaching the right side of the viewport. See [forum post](https://forum.unity.com/threads/inputfield-bug-2.879244/) for more details. -- Fixed TMP Input Field incorrect text RectTransform horizontal adjustment when using the Backspace key. See [forum post](https://forum.unity.com/threads/inputfield-bug4-delete-and-backspace-bug.879283/) for more details. -- Fixed potential null reference in the TextMeshProUGUI.Cull function when using a workflow that involves enabling / disabling Canvases in the scene. -- Fixed ArgumentOutOfRangeException when using the "Update Sprite Asset" inspector option on a sprite asset that does not contain any sprites. Case #1242936 -- Fixed incorrect culling of the text geometry by the RectMask2D component on newly created text objects. Case #1245445 -- It is now possible to use the Material Context Menu options to Copy / Paste Material Properties or Atlas Texture originally created for TMP with all other non TMP specific materials. Case #1242671 -- Fixed NullReferenceException when setting the Atlas Texture to None in the Debug Settings of the Material Inspector of a text object. Case #1245104 - -## [2.1.0-preview.11] - 2020-04-22 -## [1.5.0-preview.11] -## [3.0.0-preview.11] -### Changes -- Fixed incorrect culling of text object by RectMask2D component when the parent Canvas Render Mode is set to Screen Space - Camera or World Space. Case #1240595 -- Added special handling to ForceMeshUpdate() when the parent Canvas is disabled. - -## [2.1.0-preview.10] - 2020-04-21 -## [1.5.0-preview.10] -## [3.0.0-preview.10] -### Changes -- Revised caching of Preferred Width and Height to further reduce the amount of time it has to be recomputed when using a complex structure of Layout components. -- Fixed potential issue when using Text Overflow Ellipsis and Truncate modes when the text contains characters using superscript, subscript or using the <voffset> tag. -- Revised culling of text objects when using a RectMask2D where the bounds of the text geometry instead of the RectTransform define the culling rect. -- Added HDR support to material preset colors. -- Fixed various formatting issues in this ChangeLog. -- Added the ability to define a unicode value for a missing sprite character in the TMP Settings. -- Added support for displaying a missing sprite character when the requested sprite character is not present in the sprite asset or potential fallback(s). This new functionality is only available when trying to reference a sprite by name. -- Sprite Characters will now have a default Unicode value of 0xFFFE (Private NonCharacter) instead of a Unicode value of 0x0 (default unicode value for missing character). -- Using the sprite asset context menu option "Update Sprite Asset" will now remap sprite characters with unicode value of 0x0 to 0xFFFE in addition to its currently functionality. -- Updating TMP Essential Resources via the "Window - TextMeshPro - Import TMP Essential Resources" menu option will no longer override existing TMP Settings. -- Minor optimization where SDF Scale on some text objects could be unnecessarily updated due to floating point rounding errors in their lossy scale. Case #1230799 -- Fixed minor issue where text objects created before importing the required TMP Essential Resources would have no default text. -- Improvements to line breaking for CJK and mixed Latin and CJK characters. See the following [forum post](https://forum.unity.com/threads/tmp-bug.852733/#post-5688274) for more details. -- Fixed potential NullReferenceException that could occur in the TMP InputField on some platforms if the InputSystem reference is null. Case #1232433 -- Added small padding to bitmap character geometry to prevent potential clipping. -- Added optimization to ignore very small RectTransform pivot changes that are usually the result of rounding errors when using Layout Components. Case #1237700 -- Sorting Layer ID and Sorting Order properties located in the Extra Settings of <TextMeshPro> text objects will now serialized when creating Editor Presets. Case #1215750 -- TextMeshProUGUI sub text objects will now be set as first sibling of their parent to prevent them from being rendered over other non text object child in the scene hierarchy. -- Fixed text objects becoming visible when set to empty or null as a result of a scale change. Case #1238408 -- Fixed useMaxVisibleDescender property now getting set properly via scripting. Case #1218526 -- Fixed SortingLayerID and SortingOrder not getting set correctly when multiple <TextMeshPro> objects are selected. Case #1171272 -- Fixed default settings getting applied to disabled text objects in the scene hierarchy whose text property was set to null. Case #1151621 -- Fixed mouse cursor flickering when hovering the Text Input Box of a text prefab with RTL enabled. Case #1206395 - -## [2.1.0-preview.8] - 2020-03-14 -## [1.5.0-preview.8] -## [3.0.0-preview.8] -### Changes -- Fixed a minor issue where the preferred width of a text object can be incorrect when using multiple font assets, fallbacks and sprites in the same line of text. -- Added Alpha Fade Speed property to the TMP_DropDown inspector. -- Minor improvements to the LogWarning related to missing characters in a font asset or fallback being replaced by a space character. -- Fixed text object geometry not getting clipped when object is outside of RectMask2D. -- Improved search for potential missing character to include the primary font asset and potential fallbacks when the current font asset is not the primary. -- Ignorable / Synthesized characters in font assets will only be created if they do not exist in the source font file. -- Trying to use Text Overflow Ellipsis mode when no Ellipsis character is available in the primary font asset or potential fallbacks will now issue a warning and switch Text Overflow mode to Truncate. -- Added <color=lightblue> and <color=grey> to pre-defined rich text tag colors. -- Fixed compatibility issue when using TexturePacker - JSON (Array) mode and the TMP Sprite Asset Importer to create SpriteAssets. -- Simple fix to prevent the underline rich text tag becoming visible in the TMP Input Field when in IME composition mode with Rich Text disabled on the TMP Input Field. This is a temporary fix until a more robust and flexible solution is implemented. Case #1219969 -- Sub Text Objects which are created when the text requires the use of a fallback font asset or sprite asset will now use HideFlags.DontSave to prevent them from being save with Prefabs as they are created on demand. -- Fix incorrect material reference when current font asset is not the primary or a fallback that is missing a character which is present in the primary font asset. - -## [2.1.0-preview.7] - 2020-03-07 -## [1.5.0-preview.7] -## [3.0.0-preview.7] -### Changes -- Reverted recent change to the TMP_SubMeshUI OnDisable() function that could result in a Missing Reference Exception in the GraphicRaycaster.cs script. See the following [forum post](https://forum.unity.com/threads/version-1-5-0-2-1-0-preview-5-now-available-for-testing.753587/page-2#post-5523412). -- Added support for Stadia for Unity 2019.3 or newer. -- Addressed warning that would appear in the console in Unity 2019.3 related to recent Preset API changes. Case #1223257 -- Fixed glyph drawing issue in the Font Asset Inspector Glyph Adjustment Table when Multi Atlas Texture is enabled and the glyph is not located in the main atlas texture or at atlasTextures[0]. -- Added support for <ZWSP> tag which is internally replaced by a zero width space or \u200B. -- Improved line breaking handling when using <NBSP> and / or <NOBR> tags where instead of breaking these line segments per character, they will break at any possible soft breaking space when these segments exceed the width of the text container. -- Improved PreferredHeight calculations and handling when using Text Auto Size. -- Fixed incorrect color being applied to the underline or strikethrough line segments when using and / or tags along with a tag while at the same time applying an Underline or Strikethrough font style on the whole text object. -- Fixed SDF Scale not getting updated when using SetText() with StringBuilder when the lossyScale of the text object changes. Case #1216007 -- Added Non Breaking Space \u00A0 and Soft Hyphen \u00AD to list of synthesized characters in the event they are not present in the source font file. -- Fixed stack overflow issue when using TMP_FontAsset.HasCharacter and TMP_FontAsset.HasCharacters function on font assets that have circular fallback references. Case #1222574 -- Fixed atlas texture not getting set correctly to IsReadable when switching a static font asset to dynamic in the Generation Settings of the Font Asset Inspector. -- Added check for RectTransform.sizeDelta change when OnRectTransformDimensionsChange() is called by the Canvas system to get around potential rounding error that erroneously trigger this callback when the RectTransform is using Stretch Anchor mode. -- As requested by a few users, TMP_FontAsset.faceInfo setter is now public instead of internal. - -## [2.1.0-preview.5] - 2020-02-25 -## [1.5.0-preview.5] -## [3.0.0-preview.5] -### Changes -- Revised SetText function formatting options to including ability to specify padding for integral part of the value. Revised format is as follows: {Arg Index:Integral Padding.Decimal Precision} Example: TMP_Text.SetText("Value = {0:000.00}", 10.375f); result in "Value = 010.38". -- Fixed issue where text objects isTextObjectScaleStatic property would be ignored when OnCanvasHierarchyChanged() is called. -- Added a Character, Glyph and Record count to those respective tables in the Font Asset Inspector. -- Fixed potential Null Reference Exception that would occur when using text Overflow Ellipsis mode with a primary font asset that doesn't contain the Ellipsis character. Case #1209771 -- Fixed a potential Editor lockup when using text Overflow Page mode. Case #1219055 -- Fixed Input Field incorrect caret vertical alignment when using the Midline / Vertical Geometry alignment option. -- Added initial / minimal support for the New Input System. Please use with caution and report any issues. -- Changes to Font Asset Generation Settings via the Font Asset Inspector will now update the existing glyphs and characters for the new settings instead of clearing them. -- Text object InternalUpdate() used to handle potential scale changes of text objects now uses willRenderCanvases event instead of onPreCull. This avoids a potential one frame delay in updating of objects and no impact on objects. Case #1216007 - -## [2.1.0-preview.4] - 2020-01-31 -## [1.5.0-preview.4] -## [3.0.0-preview.4] -### Changes -- Fixed Input Field issue where scrolling events could prevent OnEndEdit event from firing. See [forum post](https://forum.unity.com/threads/mouse-wheel-on-multiline-input-field-with-no-scrollbar-hangs-input-field-stops-event-firing.794607/) for details. -- Improved Input Field handling of Vertical Scrollbar in conjunction with the ResetOnDeActivation property. Using the Vertical Scrollbar no longer triggers OnEndEdit event. -- Fixed MissingReferenceException when deleting a TMP prefab that is part of a nested prefab. Case #1207793 -- Improved handling of allocations of newly created text objects with large amount of text. As a result of these revisions, allocations will potentially be reduce by 10X. See #1205923 -- Fixed potential Null Reference Exception with the TMP DropDown that could occur when using the experimental Editor "Enter Play Mode" feature. Case #1207915 -- Fixed potential issue with the assignment of sub text object materials. -- Add support for hiding the soft keyboard for Switch in the TMP Input Field. -- Fixed incorrect Preferred Height when Word Wrapping is disabled on text objects. See [forum post](https://forum.unity.com/threads/incorrect-wordwrapping-preferredsize-textmespro-2-1-preview-3.812376/) for details. -- Added support for the new Selected state and color to the TMP Input Field. Case #1210496 -- Fixed additional instances of TMP Resource Importer window being created when deleting the "TextMesh Pro" folder just after having imported them. Case #1205848 -- Added public ITextPreprocessor textPreprocessor; property to allow setting the text preprocessor for a given text component. - -## [2.1.0-preview.3] - 2019-12-16 -## [1.5.0-preview.3] -### Changes -- Fixed potential issue with TMP Dropdown where calling Show() and Hide() in very short interval could result in additional Blockers. Case #1194114 -- Fixed potential issues that could occur when upgrading to version 1.5.0-preview.2 or newer of the TMP package without also updating the TMP Essential Resources in the project. -- Added check and warning when trying to create a font asset whose source font file has "Incl. Font Data" disabled in the Font Import Settings. Case #1198587 and #1198112 -- Fixed Ellipsis overflow mode issue when using small caps. Case #1198392 -- Fixed potential layout issue when adding a Layout Group to the text object itself. Case #1197614 -- Fixed Font Asset Creator issue where too many adjustment records with adjustment value of zero were added to the font asset. -- Added support for Line Separator \u2028 and Paragraph Separator \u2029. -- TMP shaders have been moved from "TextMesh Pro/Resources/Shaders" folder to "TextMesh Pro/Shaders" folder. See the following [post](https://forum.unity.com/threads/version-1-5-0-2-1-0-preview-2-now-available-for-testing.753587/#post-5206853) for details. -- Added new experimental SDF and Mobile SDF Shaders that use Screen Space Derivatives (SSD) where these shaders no longer require SDF Scale to be passed via Vertex Attributes. These shaders have higher performance overhead but are more flexible. This overhead should only be noticeable on mobile platforms. -- Fixed potential text alignment issue where upgrading from package version 1.4.1 to 1.5.0-preview.2 would result in incorrect alignment on prefabs. Case #1198833 -- Added \u061C Arabic Letter Mark, \u200E Left-to-Right Mark and \u200F Right-to-Left Mark to list of control and non renderable characters. -- Fixed Missing Reference Exception that would appear when expanding the Extra Settings of a TextMeshPro Preset asset. Case #1201072 -- Fixed Missing Reference Exception that would appear when editing the Vertex Color or Color Gradient of a TMP component Preset asset. Case #1201069 -- Fixed Inspector layout issue preventing enabling or disabling the Outline, Underlay, Lighting and Glow features when selecting a Preset asset material. Case #1196963 -- Revised the Create Material Preset context menu option to issue a warning and ignore materials outside the project. Case #1200109 -- Added experimental ITextPreprocessor interface to allow users to create custom components to handle text preprocessing and shaping. This interface includes a PreprocessText(string text) function that is called when the object contains a component that inherits from this interface. -- Added support for Unity Presets in the Editor for both and components. Case #1191793 -- Optimization to ensure the TMP Update Manager only rebuilds text objects once per frame regardless of the number of cameras in the scene. - -## [2.1.0-preview.2] - 2019-10-30 -## [1.5.0-preview.2] -### Changes -- Fixed Input Field issue when Read Only flag is set preventing the initial setting of the text. Also fixed Read Only flag not being respected when using IME input. -- Fixed potential infinite loop when using text overflow mode ScrollRect. See Case #1188867 -- Fixed Input Field culling related issue(s) where text would be incorrectly culled. See https://forum.unity.com/threads/version-1-5-0-2-1-0-preview-1-now-available-for-testing.753587/#post-5023700 -- Revised handling and referencing of the CanvasRenderer in anticipation of an incoming change to the MaskableGraphic class where it will no longer automatically add a CanvasRenderer to components inheriting from it. As a result, objects will no longer have a CanvasRenderer. -- Fixed potential NRE when using Overflow Truncate mode with sprites. See https://forum.unity.com/threads/tmpro-stackoverflow-caused-by-tmpro-textmeshprougui-generatetextmesh.750398/page-2#post-5042822 -- Fixed issue when using font weights in combination of font styles in the editor. -- Fixed for potential incorrect preferred height. -- Improved handling of StyleSheet options to reorder, add or delete styles. -- Fixed Input Field Caret & Selection Highlight potential culling issue when the object was instantiated outside the culling region. -- Fixed potential issue with registration of text objects in the TMP_UpdateManager. -- Optimization to suppress callback to InternalUpdate when parent Canvas is disabled. Case #1189820 -- Fixed Fallback material not getting updated correctly when changing Generation Settings on the Fallback Font Asset. -- Fixed a typo in the Font Weight section of the Font Asset Editor. -- Fixed potential ArgumentOutOfRangeException in the Input Field when using Hide Mobile Input and deleting a long string. Case #1162514 -- Added "Is Scale Static" option in the Extra Settings to exclude text objects from InternalUpdate callbacks to improve performance when the object's scale is static. This InternalUpdate callback is used to track potential changes to the scale of text objects to update their SDF Scale. -- Added the ability to control culling modes for the TMP Shaders. This new option is available in the Debug section of the Material Inspector. New feature requires updating the TMP Essential Resources. See the following post https://forum.unity.com/threads/not-see-textmeshpro-rendering-from-the-back.767510/#post-5112461. -- Fixed Material Inspector issue when toggling the Record button in the Animation window. Case #1174960 -- Improved Line Breaking handling for CJK. This also addresses a few reported issues. Case #1171603 -- Added support for <NBSP> tag which is internally replaced by a non-breaking space or \u00A0. -- Improved performance when retrieving glyph adjustment records when using dynamic font assets. -- Fixed potential Null Reference Exception in the Editor when assigning new font asset to disabled game object when no previous font asset was assigned. - -## [2.1.0-preview.1] - 2019-09-30 -## [1.5.0-preview.1] -### Changes -- Fixed an issue when using Overflow Ellipsis mode where the Ellipsis character would not be displayed correctly when the preceding character is a sprite. -- Added the ability to define the Resource path for Style Sheets in the TMP Settings. -- TMP Style Sheets can now be assigned to text objects in the Extra Settings section of the text object inspector. -- Added the ability to assign a Style to text objects using the new Text Style property in the text object inspector. A new public property TMP_Text.textStyle was also added. -- Improved Style Sheet editor to allow sorting of styles in the style sheet. -- Improved handling of nested styles. -- Added public TMP_Style GetStyle(string name) to get the potential style by name. -- Revised the ForceMeshUpdate() function as follows: public void ForceMeshUpdate(bool ignoreActiveState = false, bool forceTextReparsing = false). -- Fixed SubMeshUI objects text disappearing when saving a scene. -- Creating Material Presets via the Material Context menu with multi selection will now work as expected and assign the newly created material preset to all selected text objects. -- Fixed minor issue when changing Material Preset in prefab isolation mode with multiple text objects selected where the new material preset would not be assigned to disabled text objects. -- Revised Character, Word, Line and Paragraph spacing adjustments to be in font units (em) where a value of 1 represents 1/100 em. -- Added TMP_Text.onFontAssetRequest and TMP_Text.onSpriteAssetRequest events to allow users to implement custom asset loading when using the <font="Font Asset Name"> and <sprite="Sprite Asset Name"> tags. -- Additional Shader Channels on the Canvas will be set to TexCoord1, Normal and Tangents or Mixed when using TMP Surface Shaders. Otherwise it will be set to TexCoord1 only. Case #1100696 -- Added new attribute to the <mark> tag to allow users to define a padding value for the mark / highlight region. Example: <mark color=#FFFF0080 padding="1.0,1.0,0.0,0.0"> where padding="Left, Right, Top, Bottom". -- Fixed an issue which could result in out of range exception when referencing sprites contained in fallback sprite assets using unicode values. -- Fixed an issue in the Font Asset Creator where the source font file property of the newly created font asset was not getting set. -- Added .blend files to exclusion asset scan list of the Project GUID Remapping tool. -- Fixed issue where Caret position would be incorrect when using IME. Case #1146626 -- Clamped Outline Softness to a value of 0-1 in the TMP Distance Field shader which makes it consistent with other SDF Shaders. Case #1136161 -- Text Auto-Sizing Min and Max values are now clamped between 0 and 32767. Case #1067717 -- Text Font Size Min and Max values are now clamped between 0 and 32767. Case #1164407 -- Rich Text Tag values are now limited to a maximum value of 32767. -- Added Placeholder option to TMP Dropdown. Placeholder text is displayed when selection value is -1. Also added example scene in the TMP Examples & Extras. -- Added the ability to define Face Info metrics per Sprite Assets. This will provide for more consistent scaling of the sprites regardless of the font asset used. Sprite Assets with undefined Face Info will continue to inherit the Face Info metrics of the current font asset. -- Added Update Sprite Asset option in the header of the Sprite Asset inspector. This increases the discoverability of this option already available via the Sprite Asset Context Menu. -- Revised the text auto-sizing handling in regards to maximum iteration threshold which could result in a crash on some Android devices. Case #1141328 -- Font Asset Generation Settings are now disabled in the inspector if the Source Font File is missing or if the Atlas Population Mode is set to static. -- Fixed vertical alignment issue when using Overflow Page mode. -- Improved handling of text auto-size line adjustment spacing resulting in fewer iterations and more accurate resulting point size. -- Added support for Layout Elements to the TMP Input Field. -= Fixed text alignment issue with TMP Input Field when using Center alignment on the underlying text component. -- Setting ContentType.Custom on the TMP Input Field will no longer hide the Soft Keyboard. The Soft Keyboard can now be control independently via the shouldHideSoftKeyboard property. -- Added new Font Asset Context Menu option "Force Upgrade To Version 1.1.0" for convenience purposes in case a font asset didn't get upgraded automatically when migrating from version 1.3.0 to 1.4.x or 2.0.x. -- The <gradient> tag now as an optional attribute "tint=0" or "tint=1" controlling whether or not the gradient will be affect by vertex color. The alpha of the gradient will continue to be affected by the vertex color alpha. -- Added new angle=x attribute to the <i> tag where the value of x define the italic slant angle. -- Since the legacy TextContainer used by TMP has been deprecated, it was removed from the Layout Context Menu options. -- Improved character positioning when using italic text where large angle / slant would potentially result in uneven spacing between normal and italic blocks of text. -- Fixed an issue where <mspace> and <cspace> tags would not be handled correctly in conjunction with word wrapping. -- Fixed issue in the TMP_Dropdown.cs that was affecting navigation. Case 1162600. See https://forum.unity.com/threads/huge-bug-missing-a-code-line-since-1-4-0.693421/ -- Fixed an issue related to kerning where the glyph adjustment values did not account for the upsampling of the legacy SDF modes like SDF8 / SDF16 and SDF32. -- Made the TMP_Text.text property virtual. -- Fixed Material Preset of fallback materials getting modified when the TMP Settings Match Material Preset option is disabled. -- Added ShaderUtilities.ID_GlowInner to list of material property IDs. -- Fixed potential null reference exception when creating new text objects when no default font asset has been assigned in the TMP Settings and the LiberationSans SDF font asset has been deleted from the project. Case #1161120 -- Fixed import TMP Essential Resources button being disabled when importing the TMP Examples & Extras first. Case #1163979 -- Fixed potential ArgumentOutOfRangeException when Hide Mobile Input is enabled and deleting the last character in the text. Case #1162514 -- Improved handling of manual addition of glyph positional adjustment pairs for both dynamic and static font assets. Case #1165763 -- Fixed issue where text in the TMP_InputField would disappear due to incorrect culling. Case #1164096 -- Fixed potential IndexOutOfRangeException that could be thrown when using the Pinyin IME interface and typing very fast to enter Chinese text. Case #1164383 -- Added support for Vertical Tab \v which inserts a line break but not a paragraph break. -- Added support for Shift Enter in the TMP Input Field which inserts a Vertical Tab in the text in Multi Line mode. -- Fixed text horizontal alignment when lines of text only contain the Ellipsis \u2026 Unicode character. Case #1162685 -- Text alignment is now serialized into separate fields for horizontal and vertical alignment and can now be get / set independently via TMP_Text.horizontalAlignment and TMP_Text.verticalAlignment. The TMP_Text.alignment property remains and uses the new serialized fields for horizontal and vertical alignment. -- Improved handling of Soft Hyphens when using Text Auto-Size. -- Fixed Null character being passed to Validate method of the TMP_InputField. Case #1172102 -- Fixed an issue where the Preferred Width and Height were not correct when using Tabs. -- The Cull Transparent Mesh flag on TMP_SubMeshUI objects will now mirror the settings on the parent text object's CanvasRenderer. -- Updated Sprite Importer to improve compatibility with Texture Packer Json Array export format. -- Newly created StyleSheets will be pinged in the project tab. Case #1182117 -- Added new option in the TMP Settings to control line breaking rules for Hangul to enabled Modern line breaking or traditional line breaking. -- Fixed potential issue related to SDF Scaling when the scale of the text object is negative. See https://forum.unity.com/threads/version-1-4-1-preview-1-with-dynamic-sdf-for-unity-2018-3-now-available.622420/page-5#post-4958240 for details. -- Added validation check for Sprite Data Source file in the Sprite Asset Importer. Case #1186620 -- Added warning when using Create - TextMeshPro - Sprite Asset menu when no valid texture is selected. Case #1163982 -- Fixed potential cosmetic issue in the text component inspector when using Overflow Linked mode. Case #1177640 - -## [1.4.1] - 2019-04-12 -### Changes -- Improved handling of font asset automatic upgrade to version 1.1.0 which is required to support the new Dynamic SDF system. -- Made release compatible with .Net 3.5 scripting runtime. - -## [1.4.0] - 2019-03-07 -### Changes -- Same release as 1.4.0-preview.3a. - -## [1.4.0-preview.3a] - 2019-02-28 -### Changes -- Improved performance of the Project Files GUID Remapping Tool. -- Fixed an issue with the TMP_FontAsset.TryAddCharacters() functions which was resulting in an error when added characters exceeded the capacity of the atlas texture. -- Updated TMP_FontAsset.TryAddCharacters functions to add new overloads returning list of characters that could not be added. -- Added function in OnEnable of FontAsset Editor's to clean up Fallback list to remove any null / empty entries. -- Added support for Stereo rendering to the TMP Distance Field and Mobile Distance Field shaders. - -## [1.4.0-preview.2a] - 2019-02-14 -### Changes -- Fixed an issue with SDF Scale handling where the text object would not render correctly after the object scale had been set to zero. -- Fixed an issue with the TMP_UpdateManager where text objects were not getting unregistered correctly. -- Any changes to Font Asset Creation Settings' padding, atlas width and / or atlas height will now result in all Material Presets for the given font asset to also be updated. -- Added new section in the TMP Settings related to the new Dynamic Font System. -- Added new property in the Dynamic Font System section to determine if OpenType Font Features will be retrieved from source font files at runtime as new characters are added to font assets. Glyph Adjustment Data (Kerning) is the only feature currently supported. -- Fix an issue where font assets created at runtime were not getting their asset version number set to "1.1.0". -- Improved parsing of the text file used in the Font Asset Creator and "Characters from File" option to handle UTF16 "\u" and UTF32 "\U" escape character sequences. -- Fixed a Null Reference Error (NRE) that could occur when using the <font> tag with an invalid font name followed by the <sprite> tag. -- The Glyph Adjustment Table presentation and internal data structure has been changed to facilitate the future addition of OpenType font features. See https://forum.unity.com/threads/version-1-4-0-preview-with-dynamic-sdf-for-unity-2018-3-now-available.622420/#post-4206595 for more details. -- Fixed an issue with the <rotate> tag incorrectly affecting character spacing. - -## [1.4.0-preview.1] - 2019-01-30 -### Changes -- Renamed TMPro_FontUtilities to TMP_FontAssetCommon to more accurately reflect the content of this file. -- Accessing the TextMesh Pro Settings via the new Edit - Settings menu when TMP Essential Resources have not yet been imported in the project will no longer open a new window to provide the options to import these resources. -- Fixed an issue where using int.MaxValue, int.MinValue, float.MaxValue and float.MinValue in conjunction with SetText() would display incorrect numerical values. Case #1078521. -- Added public setter to the TMP Settings' missingGlyphCharacter to allow changing which character will be used for missing characters via scripting. -- Fixed a potential Null Reference Exception related to loading the Default Style Sheet. -- Added compiler conditional to TMP_UpdateManager.cs to address changes to SRP. -- Improved the <margin> tag to make it possible to define both left and right margin values. Example: <margin left=10% right=10px>. -- Added new menu option to allow the quick creation of a UI Button using TMP. New menu option is located in Create - UI - Button (TextMeshPro). -- Renamed TMP related create menu options. -- Fixed TMP object creation handling when using Prefab isolation mode. Case #1077392 -- Fixed another issue related to Prefabs where some serialized properties of the text object would incorrectly show up in the Overrides prefab options. Case #1093101 -- Fixed issue where changing the Sorting Layer or Sorting Order of a object would not dirty the scene. Case #1069776 -- Fixed a text alignment issue when setting text alignment on disabled text objects. Case #1047771 -- Fixed an issue where text object bounds were not set correctly on newly created text objects or in some cases when setting the text to null or string.empty. Case #1093388 -- Fixed an issue in the IntToString() function that could result in Index Out Of Bounds error. Case #1102007 -- Changed the TMP_InputField IsValidChar function to protected virtual. -- The "Allow Rich Text Editing" property of the TMP_InputField is now set to false by default. -- Added new option to the Sprite Asset context menu to make it easier to update sprite glyphs edited via the Unity Sprite Editor. -- Added new Sharpness slider in the Debug section of the SDF Material inspector. -- Fixed an error that would occur when using the context menu Reset on text component. Case #1044726 -- Fixed issue where CharacterInfo.index would be incorrect as a result of using Surrogate Pairs in the text. Case #1037828 -- The TMP_EditorPanel and TMP_UiEditorPanel now have their "UseForChildren" flag set to true to enable user / custom inspectors to inherit from them. -- Fixed an issue where rich text tags using pixel (px) or font units (em) were not correctly accounting for orthographic camera mode. This change only affects the normal TMP text component. -- Fixed an inspector issue related to changes to the margin in the TMP Extra Settings panel. Case #1114253 -- Added new property to Glyph Adjustment Pairs which determines if Character Spacing Adjustments should affect the given pair. -- Updated the Glyph Adjustment Table where ID now represents the unicode (hex) value for the character instead of its decimal value. -- Added new SetValueWithoutNotify() function to TMP_DropDown and SetTextWithoutNotify() function to TMP_InputField allowing these to be set without triggering OnValueChanged event. -- Geometry buffer deallocation which normally takes place when current allocations exceed those of the new text by more than 256 characters will no longer occur if the new text is set to null or string.empty. -- Fixed a minor issue where the underline SDF scale would be incorrect when the underline text sequence contained normal size characters and ended with a subscript or superscript character. -- Fixed an error that would occur when using the Reset Context menu on a Material using the SDF Surface or Mobile SDF Surface Shaders. Case #1122279 -- Resolved a Null Reference Error that would appear when cycling through the text overflow modes. Case #1121624 - -## [1.3.0] - 2018-08-09 -### Changes -- Revamped UI to conform to Unity Human Interface Guidelines. -- Updated the title text on the Font Asset Creator window tab to "Font Asset Creator". -- Using TMP_Text.SetCharArray() with an empty char[] array will now clear the text. -- Made a small improvement to the TMP Input Field when using nested 2d RectMasks. -- Renamed symbol defines used by TMP to append TMP_ in front of the define to avoid potential conflicts with user defines. -- Improved the Project Files GUID Remapping tool to allow specifying a target folder to scan. -- Added the ability to cancel the scanning process used by the Project Files GUID Remapping tool. -- Moved TMP Settings to universal settings window in 2018.3 and above. -- Changing style sheet in the TMP Settings will now be reflected automatically on existing text objects in the editor. -- Added new function TMP_StyleSheet.UpdateStyleSheet() to update the internal reference to which style sheet text objects should be using in conjunction with the style tag. - -## [1.2.4] - 2018-06-10 -### Changes -- Fixed a minor issue when using Justified and Flush alignment in conjunction with \u00A0. -- The Font Asset creationSettings field is no longer an Editor only serialized field. - -## [1.2.3] - 2018-05-29 -### Changes -- Added new bitmap shader with support for Custom Font Atlas texture. This shader also includes a new property "Padding" to provide control over the geometry padding to closely fit a modified / custom font atlas texture. -- Fixed an issue with ForceMeshUpdate(bool ignoreActiveState) not being handled correctly. -- Cleaned up memory allocations from repeated use of the Font Asset Creator. -- Sprites are now scaled based on the current font instead of the primary font asset assigned to the text object. -- It is now possible to recall the most recent settings used when creating a font asset in the Font Asset Creator. -- Newly created font assets now contain the settings used when they were last created. This will make the process of updating / regenerating font assets much easier. -- New context menu "Update Font Asset" was added to the Font Asset inspector which will open the Font Asset Creator with the most recently used settings for that font asset. -- New Context Menu "Create Font Asset" was added to the Font inspector panel which will open the Font Asset Creator with this source font file already selected. -- Fixed 3 compiler warnings that would appear when using .Net 4.x. -- Modified the TMP Settings to place the Missing Glyph options in their own section. -- Renamed a symbol used for internal debugging to avoid potential conflicts with other user project defines. -- TMP Sprite Importer "Create Sprite Asset" and "Save Sprite Asset" options are disabled unless a Sprite Data Source, Import Format and Sprite Texture Atlas are provided. -- Improved the performance of the Project Files GUID Remapping tool. -- Users will now be prompted to import the TMP Essential Resources when using the Font Asset Creator if such resources have not already been imported. - -## [1.2.2] - 2018-03-28 -### Changes -- Calling SetAllDirty() on a TMP text component will now force a regeneration of the text object including re-parsing of the text. -- Fixed potential Null Reference Exception that could occur when assigning a new fallback font asset. -- Removed public from test classes. -- Fixed an issue where using nested links (which doesn't make sense conceptually) would result in an error. Should accidental use of nested links occurs, the last / most nested ends up being used. -- Fixed a potential text alignment issue where an hyphen at the end of a line followed by a new line containing a single word too long to fit the text container would result in miss alignment of the hyphen. -- Updated package license. -- Non-Breaking Space character (0xA0) will now be excluded from word spacing adjustments when using Justified or Flush text alignment. -- Improved handling of Underline, Strikethrough and Mark tag with regards to vertex color and Color tag alpha. -- Improved TMP_FontAsset.HasCharacter(char character, bool searchFallbacks) to include a recursive search of fallbacks as well as TMP Settings fallback list and default font asset. -- The <gradient> tag will now also apply to sprites provided the sprite tint attribute is set to a value of 1. Ex. <sprite="Sprite Asset" index=0 tint=1>. -- Updated Font Asset Creator Plugin to allow for cancellation of the font asset generation process. -- Added callback to support the Scriptable Render Pipeline (SRP) with the normal TextMeshPro component. -- Improved handling of some non-breaking space characters which should not be ignored at the end of a line. -- Sprite Asset fallbacks will now be searched when using the <sprite> tag and referencing a sprite by Unicode or by Name. -- Updated EmojiOne samples from https://www.emojione.com/ and added attribution. -- Removed the 32bit versions of the TMP Plugins used by the Font Asset Creator since the Unity Editor is now only available as 64bit. -- The isTextTruncated property is now serialized. -- Added new event handler to the TMP_TextEventHandler.cs script included in Example 12a to allow tracking of interactions with Sprites. - -## [1.2.1] - 2018-02-14 -### Changes -- Package is now backwards compatible with Unity 2018.1. -- Renamed Assembly Definitions (.asmdef) to new UPM package conventions. -- Added DisplayName for TMP UPM package. -- Revised Editor and Playmode tests to ignore / skip over the tests if the required resources are not present in the project. -- Revised implementation of Font Asset Creator progress bar to use Unity's EditorGUI.ProgressBar instead of custom texture. -- Fixed an issue where using the material tag in conjunction with fallback font assets was not handled correctly. -- Fixed an issue where changing the fontStyle property in conjunction with using alternative typefaces / font weights would not correctly trigger a regeneration of the text object. - -## [1.2.0] - 2018-01-23 -### Changes -- Package version # increased to 1.2.0 which is the first release for Unity 2018.2. - -## [1.1.0] - 2018-01-23 -### Changes -- Package version # increased to 1.1.0 which is the first release for Unity 2018.1. - -## [1.0.27] - 2018-01-16 -### Changes -- Fixed an issue where setting the TMP_InputField.text property to null would result in an error. -- Fixed issue with Raycast Target state not getting serialized properly when saving / reloading a scene. -- Changed reference to PrefabUtility.GetPrefabParent() to PrefabUtility.GetCorrespondingObjectFromSource() to reflect public API change in 2018.2 -- Option to import package essential resources will only be presented to users when accessing a TMP component or the TMP Settings file via the project menu. - -## [1.0.26] - 2018-01-10 -### Added -- Removed Tizen player references in the TMP_InputField as the Tizen player is no longer supported as of Unity 2018.1. - -## [1.0.25] - 2018-01-05 -### Added -- Fixed a minor issue with PreferredValues calculation in conjunction with using text auto-sizing. -- Improved Kerning handling where it is now possible to define positional adjustments for the first and second glyph in the pair. -- Renamed Kerning Info Table to Glyph Adjustment Table to better reflect the added functionality of this table. -- Added Search toolbar to the Glyph Adjustment Table. -- Fixed incorrect detection / handling of Asset Serialization mode in the Project Conversion Utility. -- Removed SelectionBase attribute from TMP components. -- Revised TMP Shaders to support the new UNITY_UI_CLIP_RECT shader keyword which can provide a performance improvement of up to 30% on some devices. -- Added TMP_PRESENT define as per the request of several third party asset publishers. - -## [1.0.23] - 2017-11-14 -### Added -- New menu option added to Import Examples and additional content like Font Assets, Materials Presets, etc for TextMesh Pro. This new menu option is located in "Window -> TextMeshPro -> Import Examples and Extra Content". -- New menu option added to Convert existing project files and assets created with either the Source Code or DLL only version of TextMesh Pro. Please be sure to backup your project before using this option. The new menu option is located in "Window -> TextMeshPro -> Project Files GUID Remapping Tool". -- Added Assembly Definitions for the TMP Runtime and Editor scripts. -- Added support for the UI DirtyLayoutCallback, DirtyVerticesCallback and DirtyMaterialCallback. \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Gizmos/TMP - Dropdown Icon.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Gizmos/TMP - Dropdown Icon.psd deleted file mode 100644 index 93f5a2c..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Gizmos/TMP - Dropdown Icon.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Gizmos/TMP - Font Asset Icon.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Gizmos/TMP - Font Asset Icon.psd deleted file mode 100644 index 2fb1164..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Gizmos/TMP - Font Asset Icon.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Gizmos/TMP - Input Field Icon.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Gizmos/TMP - Input Field Icon.psd deleted file mode 100644 index f0360d3..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Gizmos/TMP - Input Field Icon.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Gizmos/TMP - Sprite Asset Icon.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Gizmos/TMP - Sprite Asset Icon.psd deleted file mode 100644 index 7036296..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Gizmos/TMP - Sprite Asset Icon.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Gizmos/TMP - Text Component Icon.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Gizmos/TMP - Text Component Icon.psd deleted file mode 100644 index 3cc4163..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Gizmos/TMP - Text Component Icon.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Shaders/TMP_Properties.cginc b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Shaders/TMP_Properties.cginc deleted file mode 100644 index 2e96258..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Shaders/TMP_Properties.cginc +++ /dev/null @@ -1,85 +0,0 @@ -// UI Editable properties -uniform sampler2D _FaceTex; // Alpha : Signed Distance -uniform float _FaceUVSpeedX; -uniform float _FaceUVSpeedY; -uniform fixed4 _FaceColor; // RGBA : Color + Opacity -uniform float _FaceDilate; // v[ 0, 1] -uniform float _OutlineSoftness; // v[ 0, 1] - -uniform sampler2D _OutlineTex; // RGBA : Color + Opacity -uniform float _OutlineUVSpeedX; -uniform float _OutlineUVSpeedY; -uniform fixed4 _OutlineColor; // RGBA : Color + Opacity -uniform float _OutlineWidth; // v[ 0, 1] - -uniform float _Bevel; // v[ 0, 1] -uniform float _BevelOffset; // v[-1, 1] -uniform float _BevelWidth; // v[-1, 1] -uniform float _BevelClamp; // v[ 0, 1] -uniform float _BevelRoundness; // v[ 0, 1] - -uniform sampler2D _BumpMap; // Normal map -uniform float _BumpOutline; // v[ 0, 1] -uniform float _BumpFace; // v[ 0, 1] - -uniform samplerCUBE _Cube; // Cube / sphere map -uniform fixed4 _ReflectFaceColor; // RGB intensity -uniform fixed4 _ReflectOutlineColor; -//uniform float _EnvTiltX; // v[-1, 1] -//uniform float _EnvTiltY; // v[-1, 1] -uniform float3 _EnvMatrixRotation; -uniform float4x4 _EnvMatrix; - -uniform fixed4 _SpecularColor; // RGB intensity -uniform float _LightAngle; // v[ 0,Tau] -uniform float _SpecularPower; // v[ 0, 1] -uniform float _Reflectivity; // v[ 5, 15] -uniform float _Diffuse; // v[ 0, 1] -uniform float _Ambient; // v[ 0, 1] - -uniform fixed4 _UnderlayColor; // RGBA : Color + Opacity -uniform float _UnderlayOffsetX; // v[-1, 1] -uniform float _UnderlayOffsetY; // v[-1, 1] -uniform float _UnderlayDilate; // v[-1, 1] -uniform float _UnderlaySoftness; // v[ 0, 1] - -uniform fixed4 _GlowColor; // RGBA : Color + Intesity -uniform float _GlowOffset; // v[-1, 1] -uniform float _GlowOuter; // v[ 0, 1] -uniform float _GlowInner; // v[ 0, 1] -uniform float _GlowPower; // v[ 1, 1/(1+4*4)] - -// API Editable properties -uniform float _ShaderFlags; -uniform float _WeightNormal; -uniform float _WeightBold; - -uniform float _ScaleRatioA; -uniform float _ScaleRatioB; -uniform float _ScaleRatioC; - -uniform float _VertexOffsetX; -uniform float _VertexOffsetY; - -//uniform float _UseClipRect; -uniform float _MaskID; -uniform sampler2D _MaskTex; -uniform float4 _MaskCoord; -uniform float4 _ClipRect; // bottom left(x,y) : top right(z,w) -//uniform float _MaskWipeControl; -//uniform float _MaskEdgeSoftness; -//uniform fixed4 _MaskEdgeColor; -//uniform bool _MaskInverse; - -uniform float _MaskSoftnessX; -uniform float _MaskSoftnessY; - -// Font Atlas properties -uniform sampler2D _MainTex; -uniform float _TextureWidth; -uniform float _TextureHeight; -uniform float _GradientScale; -uniform float _ScaleX; -uniform float _ScaleY; -uniform float _PerspectiveFilter; -uniform float _Sharpness; diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Shaders/TMP_SDF Internal Editor.shader b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Shaders/TMP_SDF Internal Editor.shader deleted file mode 100644 index baf4501..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Shaders/TMP_SDF Internal Editor.shader +++ /dev/null @@ -1,75 +0,0 @@ -// Simplified SDF shader: -// - No Shading Option (bevel / bump / env map) -// - No Glow Option -// - Softness is applied on both side of the outline - -Shader "Hidden/TMP/Internal/Editor/Distance Field SSD" { - - Properties{ - _FaceColor("Face Color", Color) = (1,1,1,1) - _FaceDilate("Face Dilate", Range(-1,1)) = 0 - - _OutlineColor("Outline Color", Color) = (0,0,0,1) - _OutlineWidth("Outline Thickness", Range(0,1)) = 0 - _OutlineSoftness("Outline Softness", Range(0,1)) = 0 - - _UnderlayColor("Border Color", Color) = (0,0,0,.5) - _UnderlayOffsetX("Border OffsetX", Range(-1,1)) = 0 - _UnderlayOffsetY("Border OffsetY", Range(-1,1)) = 0 - _UnderlayDilate("Border Dilate", Range(-1,1)) = 0 - _UnderlaySoftness("Border Softness", Range(0,1)) = 0 - - _WeightNormal("Weight Normal", float) = 0 - _WeightBold("Weight Bold", float) = .5 - - _ShaderFlags("Flags", float) = 0 - _ScaleRatioA("Scale RatioA", float) = 1 - _ScaleRatioB("Scale RatioB", float) = 1 - _ScaleRatioC("Scale RatioC", float) = 1 - - _MainTex("Font Atlas", 2D) = "white" {} - _TextureWidth("Texture Width", float) = 1024 - _TextureHeight("Texture Height", float) = 1024 - _GradientScale("Gradient Scale", float) = 1 - _ScaleX("Scale X", float) = 1 - _ScaleY("Scale Y", float) = 1 - _PerspectiveFilter("Perspective Correction", Range(0, 1)) = 0.875 - _Sharpness("Sharpness", Range(-1,1)) = 0 - - _VertexOffsetX("Vertex OffsetX", float) = 0 - _VertexOffsetY("Vertex OffsetY", float) = 0 - } - - SubShader - { - Tags - { - "ForceSupported" = "True" - } - - Lighting Off - Blend One OneMinusSrcAlpha - Cull Off - ZWrite Off - ZTest Always - - Pass - { - CGPROGRAM - #pragma vertex VertShader - #pragma fragment PixShader - #pragma shader_feature __ OUTLINE_ON - #pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER - - #include "UnityCG.cginc" - #include "UnityUI.cginc" - #include "TMP_Properties.cginc" - - #include "TMP_SDF_SSD.cginc" - - ENDCG - } - } - - CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI" -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Shaders/TMP_SDF_SSD.cginc b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Shaders/TMP_SDF_SSD.cginc deleted file mode 100644 index 0f587bd..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Shaders/TMP_SDF_SSD.cginc +++ /dev/null @@ -1,132 +0,0 @@ -struct vertex_t -{ - float4 position : POSITION; - float3 normal : NORMAL; - float4 color : COLOR; - float2 texcoord0 : TEXCOORD0; - float2 texcoord1 : TEXCOORD1; -}; - -struct pixel_t -{ - float4 position : SV_POSITION; - float4 faceColor : COLOR; - float4 outlineColor : COLOR1; - float2 texcoord0 : TEXCOORD0; - float4 param : TEXCOORD1; // weight, scaleRatio - float2 clipUV : TEXCOORD2; - #if (UNDERLAY_ON || UNDERLAY_INNER) - float4 texcoord2 : TEXCOORD3; - float4 underlayColor : COLOR2; - #endif -}; - -sampler2D _GUIClipTexture; -uniform float4x4 unity_GUIClipTextureMatrix; -float4 _MainTex_TexelSize; - -float4 SRGBToLinear(float4 rgba) -{ - return float4(lerp(rgba.rgb / 12.92f, pow((rgba.rgb + 0.055f) / 1.055f, 2.4f), step(0.04045f, rgba.rgb)), rgba.a); -} - -pixel_t VertShader(vertex_t input) -{ - pixel_t output; - - float bold = step(input.texcoord1.y, 0); - - float4 vert = input.position; - vert.x += _VertexOffsetX; - vert.y += _VertexOffsetY; - - float4 vPosition = UnityObjectToClipPos(vert); - - float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0; - weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5; - - // Generate UV for the Clip Texture - float3 eyePos = UnityObjectToViewPos(input.position); - float2 clipUV = mul(unity_GUIClipTextureMatrix, float4(eyePos.xy, 0, 1.0)); - - float4 color = input.color; - #if (FORCE_LINEAR && !UNITY_COLORSPACE_GAMMA) - color = SRGBToLinear(input.color); - #endif - - float opacity = color.a; - #if (UNDERLAY_ON | UNDERLAY_INNER) - opacity = 1.0; - #endif - - float4 faceColor = float4(color.rgb, opacity) * _FaceColor; - faceColor.rgb *= faceColor.a; - - float4 outlineColor = _OutlineColor; - outlineColor.a *= opacity; - outlineColor.rgb *= outlineColor.a; - - output.position = vPosition; - output.faceColor = faceColor; - output.outlineColor = outlineColor; - output.texcoord0 = float2(input.texcoord0.xy); - output.param = float4(0.5 - weight, 1.3333 * _GradientScale * (_Sharpness + 1) / _MainTex_TexelSize.z , _OutlineWidth * _ScaleRatioA * 0.5, 0); - output.clipUV = clipUV; - - #if (UNDERLAY_ON || UNDERLAY_INNER) - float4 underlayColor = _UnderlayColor; - underlayColor.rgb *= underlayColor.a; - - float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _MainTex_TexelSize.z; - float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _MainTex_TexelSize.w; - - output.texcoord2 = float4(input.texcoord0 + float2(x, y), input.color.a, 0); - output.underlayColor = underlayColor; - #endif - - return output; -} - -float4 PixShader(pixel_t input) : SV_Target -{ - float d = tex2D(_MainTex, input.texcoord0.xy).a; - - float2 UV = input.texcoord0.xy; - float scale = rsqrt(abs(ddx(UV.x) * ddy(UV.y) - ddy(UV.x) * ddx(UV.y))) * input.param.y; - - #if (UNDERLAY_ON | UNDERLAY_INNER) - float layerScale = scale; - layerScale /= 1 + ((_UnderlaySoftness * _ScaleRatioC) * layerScale); - float layerBias = input.param.x * layerScale - .5 - ((_UnderlayDilate * _ScaleRatioC) * .5 * layerScale); - #endif - - scale /= 1 + (_OutlineSoftness * _ScaleRatioA * scale); - - float4 faceColor = input.faceColor * saturate((d - input.param.x) * scale + 0.5); - - #ifdef OUTLINE_ON - float4 outlineColor = lerp(input.faceColor, input.outlineColor, sqrt(min(1.0, input.param.z * scale * 2))); - faceColor = lerp(outlineColor, input.faceColor, saturate((d - input.param.x - input.param.z) * scale + 0.5)); - faceColor *= saturate((d - input.param.x + input.param.z) * scale + 0.5); - #endif - - #if UNDERLAY_ON - d = tex2D(_MainTex, input.texcoord2.xy).a * layerScale; - faceColor += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * saturate(d - layerBias) * (1 - faceColor.a); - #endif - - #if UNDERLAY_INNER - float bias = input.param.x * scale - 0.5; - float sd = saturate(d * scale - bias - input.param.z); - d = tex2D(_MainTex, input.texcoord2.xy).a * layerScale; - faceColor += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * (1 - saturate(d - layerBias)) * sd * (1 - faceColor.a); - #endif - - #if (UNDERLAY_ON | UNDERLAY_INNER) - faceColor *= input.texcoord2.z; - #endif - - faceColor *= tex2D(_GUIClipTexture, input.clipUV).a; - - return faceColor; -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/SectionHeader_Dark.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/SectionHeader_Dark.psd deleted file mode 100644 index 8ebaa27..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/SectionHeader_Dark.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/SectionHeader_Light.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/SectionHeader_Light.psd deleted file mode 100644 index e598e6d..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/SectionHeader_Light.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignBaseLine.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignBaseLine.psd deleted file mode 100644 index 3da358a..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignBaseLine.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignBaseLine_Light.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignBaseLine_Light.psd deleted file mode 100644 index cf49b6c..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignBaseLine_Light.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignBottom.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignBottom.psd deleted file mode 100644 index 1f35779..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignBottom.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignBottom_Light.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignBottom_Light.psd deleted file mode 100644 index d8af55b..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignBottom_Light.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignCapLine.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignCapLine.psd deleted file mode 100644 index 7eefe6b..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignCapLine.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignCapLine_Light.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignCapLine_Light.psd deleted file mode 100644 index f08bb6c..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignCapLine_Light.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignCenter.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignCenter.psd deleted file mode 100644 index 939bc6d..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignCenter.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignCenterGeo.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignCenterGeo.psd deleted file mode 100644 index f9ce9a8..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignCenterGeo.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignCenterGeo_Light.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignCenterGeo_Light.psd deleted file mode 100644 index e37b2e2..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignCenterGeo_Light.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignCenter_Light.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignCenter_Light.psd deleted file mode 100644 index 7274887..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignCenter_Light.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignFlush.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignFlush.psd deleted file mode 100644 index eeeea67..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignFlush.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignFlush_Light.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignFlush_Light.psd deleted file mode 100644 index b69f6a2..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignFlush_Light.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignJustified.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignJustified.psd deleted file mode 100644 index 3ce55c4..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignJustified.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignJustified_Light.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignJustified_Light.psd deleted file mode 100644 index d7fd5c8..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignJustified_Light.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignLeft.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignLeft.psd deleted file mode 100644 index fc7e10b..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignLeft.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignLeft_Light.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignLeft_Light.psd deleted file mode 100644 index 5522c37..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignLeft_Light.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignMidLine.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignMidLine.psd deleted file mode 100644 index 14d28a2..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignMidLine.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignMiddle.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignMiddle.psd deleted file mode 100644 index c4483db..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignMiddle.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignMiddle_Light.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignMiddle_Light.psd deleted file mode 100644 index 4263bf9..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignMiddle_Light.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignMidline_Light.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignMidline_Light.psd deleted file mode 100644 index a5bed37..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignMidline_Light.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignRight.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignRight.psd deleted file mode 100644 index 4ef1998..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignRight.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignRight_Light.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignRight_Light.psd deleted file mode 100644 index bdeff41..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignRight_Light.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignTop.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignTop.psd deleted file mode 100644 index b00d458..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignTop.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignTop_Light.psd b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignTop_Light.psd deleted file mode 100644 index 84f0e61..0000000 Binary files a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Editor Resources/Textures/btn_AlignTop_Light.psd and /dev/null differ diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/LICENSE.md b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/LICENSE.md deleted file mode 100644 index 37d0615..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/LICENSE.md +++ /dev/null @@ -1,5 +0,0 @@ -TextMesh Pro copyright © 2014-2019 Unity Technologies ApS - -Licensed under the Unity Companion License for Unity-dependent projects--see [Unity Companion License](http://www.unity3d.com/legal/licenses/Unity_Companion_License). - -Unless expressly provided otherwise, the Software under this license is made available strictly on an “AS IS” BASIS WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. Please review the license for details on these and other terms and conditions. \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/PackageConversionData.json b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/PackageConversionData.json deleted file mode 100644 index 05c193e..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/PackageConversionData.json +++ /dev/null @@ -1,654 +0,0 @@ -{ - "assetRecords": [ - { - "referencedResource": "Blue to Purple - Vertical.asset", - "target": "guid: 1e643bbd7e13d46418da3774e72bef60", - "replacement": "guid: 479a66fa4b094512a62b0a8e553ad95a" - }, - { - "referencedResource": "Dark to Light Green - Vertical.asset", - "target": "guid: 90c9133b254e2184b8084dea4f392337", - "replacement": "guid: 4c86a3366cd840348ebe8dc438570ee4" - }, - { - "referencedResource": "Light to Dark Green - Vertical.asset", - "target": "guid: 33c745f0979f3984182a138bcc6e57ec", - "replacement": "guid: 5cf8ae092ca54931b443bec5148f3c59" - }, - { - "referencedResource": "Yellow to Orange - Vertical.asset", - "target": "guid: e002cb2a36d9e4a439a062867fa24e1e", - "replacement": "guid: 69a525efa7e6472eab268f6ea605f06e" - }, - { - "referencedResource": "Crate - Surface Shader Scene.mat", - "target": "guid: e177c46c2a091564d88df2c2ca9dcf97", - "replacement": "guid: e6b9b44320f4448d9d5e0ee634259966" - }, - { - "referencedResource": "Ground - Logo Scene.mat", - "target": "guid: 504ae362e57fc464b847f1e9fd0e4035", - "replacement": "guid: c719e38f25a9480abd2480ab621a2949" - }, - { - "referencedResource": "Ground - Surface Shader Scene.mat", - "target": "guid: 9ed9aa864ec2d7f4dad266b9534c6d85", - "replacement": "guid: aadd5a709a48466c887296bb5b1b8110" - }, - { - "referencedResource": "Small Crate_diffuse.mat", - "target": "guid: 92f161029a6d3c54a92d9d283352a135", - "replacement": "guid: 22262639920f43d6be32430e4e58350d" - }, - { - "referencedResource": "Text Popup.prefab", - "target": "guid: c879e892866c8db4f8930b25672233ac", - "replacement": "guid: b06f0e6c1dfa4356ac918da1bb32c603" - }, - { - "referencedResource": "TextMeshPro - Prefab 1.prefab", - "target": "guid: a6a60659abb4d9d4b934feebd3dcc952", - "replacement": "guid: a6e39ced0ea046bcb636c3f0b2e2a745" - }, - { - "referencedResource": "TextMeshPro - Prefab 2.prefab", - "target": "guid: 1b190e3e0ab4c8e4881656b9160c59c2", - "replacement": "guid: fdad9d952ae84cafb74c63f2e694d042" - }, - { - "referencedResource": "Anton SDF.asset", - "target": "guid: f76ef802b8b940c46a31f9027f2b0158", - "replacement": "guid: 8a89fa14b10d46a99122fd4f73fca9a2" - }, - { - "referencedResource": "Anton SDF - Drop Shadow.mat", - "target": "guid: 250a1a103b3b4914c9707e6a423446d6", - "replacement": "guid: 749b9069dc4742c5bfa5c74644049926" - }, - { - "referencedResource": "Anton SDF - Outline.mat", - "target": "guid: e077dc203e948b740859c1c0ca8b9691", - "replacement": "guid: a00013af81304728b2be1f4309ee2433" - }, - { - "referencedResource": "Bangers SDF.asset", - "target": "guid: 808aa8f1ab804104aa7d0c337a6c1481", - "replacement": "guid: 125cb55b44b24c4393181402bc6200e6" - }, - { - "referencedResource": "Bangers SDF - Drop Shadow.mat", - "target": "guid: c26f698d4eee19e4a8b8f42cd299bab5", - "replacement": "guid: f2dcf029949142e28b974630369c8b4e" - }, - { - "referencedResource": "Bangers SDF - Outline.mat", - "target": "guid: db7f2cfbf23d6d54ca4e74a9abd55326", - "replacement": "guid: f629c6e43dba4bf38cb74d8860150664" - }, - { - "referencedResource": "Bangers SDF Glow.mat", - "target": "guid: 7dd7006c58d8a3148a73aa211d8c13d0", - "replacement": "guid: d75b8f41e959450c84ac6e967084d3e1" - }, - { - "referencedResource": "Bangers SDF Logo.mat", - "target": "guid: 4fb51aa7001a2244395ddf6a15d37389", - "replacement": "guid: f4e195ac1e204eff960149d1cb34e18c" - }, - { - "referencedResource": "Electronic Highway Sign SDF.asset", - "target": "guid: 163292f6f226d954593d45b079f8aae0", - "replacement": "guid: dc36b3fdc14f47ebb36fd484a67e268a" - }, - { - "referencedResource": "LiberationSans SDF - Drop Shadow.mat", - "target": "guid: 33db60c37b63f08448ded4b385e74e38", - "replacement": "guid: e73a58f6e2794ae7b1b7e50b7fb811b0" - }, - { - "referencedResource": "LiberationSans SDF - Metalic Green.mat", - "target": "guid: 4f9843c79516ed1468b9b5a4f32e67e3", - "replacement": "guid: 8b29aaa3eec7468097ff07adfcf29ac9" - }, - { - "referencedResource": "LiberationSans SDF - Outline.mat", - "target": "guid: 83a1b0fe6c3dbac44b66f09c82e1d509", - "replacement": "guid: 79459efec17a4d00a321bdcc27bbc385" - }, - { - "referencedResource": "LiberationSans SDF - Overlay.mat", - "target": "guid: 55eb086ae18c76e4bb6cc7106d0dd6e2", - "replacement": "guid: 9ad269c99dcf42b7aedefd83dd5a7b9d" - }, - { - "referencedResource": "LiberationSans SDF - Soft Mask.mat", - "target": "guid: 74e06d99c1657fc4abd33f20685ea9ff", - "replacement": "guid: 42df1c7856584b6b8db9a509b6b10074" - }, - { - "referencedResource": "Oswald Bold SDF.asset", - "target": "guid: 09641b029dfa78843902b548a9de7553", - "replacement": "guid: 0161d805a3764c089bef00bfe00793f5" - }, - { - "referencedResource": "Roboto-Bold SDF.asset", - "target": "guid: d62a573c923f5cb47b8ff65261033b90", - "replacement": "guid: 5302535af1044152a457ed104f1f4b91" - }, - { - "referencedResource": "Roboto-Bold SDF - Drop Shadow.mat", - "target": "guid: 102e7c5c5e3b1f3468518cb166967d77", - "replacement": "guid: b246c4190f4e46ec9352fe15a7b09ce0" - }, - { - "referencedResource": "Roboto-Bold SDF - Surface.mat", - "target": "guid: e2da38ead8f8238449c54a1ef49e080f", - "replacement": "guid: e6b276ec991f467aa14ef1f3cc665993" - }, - { - "referencedResource": "DropCap Numbers.asset", - "target": "guid: c4fd2a959a50b584b92dedfefec1ffda", - "replacement": "guid: 14aa93acbb234d16aaef0e8b46814db6" - }, - { - "referencedResource": "Benchmark01.cs", - "target": "guid: c5fb1b5c24460f745be29cc0eb06a58c", - "replacement": "guid: f970ea55f9f84bf79b05dab180b8c125" - }, - { - "referencedResource": "Benchmark01_UGUI.cs", - "target": "guid: 5e6abf300e36c0a4eb43969c3f2172f8", - "replacement": "guid: 8ef7be1c625941f7ba8ed7cc71718c0d" - }, - { - "referencedResource": "Benchmark02.cs", - "target": "guid: 3467f4170568a484d8b57e2051a27363", - "replacement": "guid: e8538afcddc14efbb5d9e94b7ae50197" - }, - { - "referencedResource": "Benchmark03.cs", - "target": "guid: e6e9d20624a23da4c8b2b6fb7608bb9a", - "replacement": "guid: a73109742c8d47ac822895a473300c29" - }, - { - "referencedResource": "Benchmark04.cs", - "target": "guid: 481dd67bdedc3104ea2156ed49f3acd5", - "replacement": "guid: dc20866c0d5e413ab7559440e15333ae" - }, - { - "referencedResource": "CameraController.cs", - "target": "guid: a9f0e07aefca0cc459134ff9df622278", - "replacement": "guid: 2d687537154440a3913a9a3c7977978c" - }, - { - "referencedResource": "ChatController.cs", - "target": "guid: eba5a4db2591a5844aea5f6f3ad8548e", - "replacement": "guid: 53d91f98a2664f5cb9af11de72ac54ec" - }, - { - "referencedResource": "EnvMapAnimator.cs", - "target": "guid: 7e69f3f28c520ce4d9ab9964b2895b1a", - "replacement": "guid: a4b6f99e8bc54541bbd149b014ff441c" - }, - { - "referencedResource": "ObjectSpin.cs", - "target": "guid: 5e7872ff51989434dabf7807265ada3c", - "replacement": "guid: 4f19c7f94c794c5097d8bd11e39c750d" - }, - { - "referencedResource": "ShaderPropAnimator.cs", - "target": "guid: c56cf968fb6a5b6488e709242718845d", - "replacement": "guid: 2787a46a4dc848c1b4b7b9307b614bfd" - }, - { - "referencedResource": "SimpleScript.cs", - "target": "guid: c64808ff5137c9044a583750e5b0468a", - "replacement": "guid: 9eff140b25d64601aabc6ba32245d099" - }, - { - "referencedResource": "SkewTextExample.cs", - "target": "guid: 48d40dfeb33b717488f55ddbf676643a", - "replacement": "guid: d412675cfb3441efa3bf8dcd9b7624dc" - }, - { - "referencedResource": "TeleType.cs", - "target": "guid: 9094c5c777af3f14489e8947748e86e6", - "replacement": "guid: e32c266ee6204b21a427753cb0694c81" - }, - { - "referencedResource": "TextConsoleSimulator.cs", - "target": "guid: 45757dcc8f119454dac6365e8fd15e8b", - "replacement": "guid: 43bcd35a1c0c40ccb6d472893fe2093f" - }, - { - "referencedResource": "TextMeshProFloatingText.cs", - "target": "guid: dd0e4b969aa70504382a89d2f208ae6c", - "replacement": "guid: a4d4c76e63944cba8c7d00f56334b98c" - }, - { - "referencedResource": "TextMeshSpawner.cs", - "target": "guid: 385939aed18e82d41894437798c30ed8", - "replacement": "guid: 76c11bbcfddf44e0ba17d6c2751c8d84" - }, - { - "referencedResource": "TMP_ExampleScript_01.cs", - "target": "guid: 36bafabb5572c6347923b971425ab3be", - "replacement": "guid: 6f2c5b59b6874405865e2616e4ec276a" - }, - { - "referencedResource": "TMP_FrameRateCounter.cs", - "target": "guid: c0357609254b68d4881cab18f04dd4dc", - "replacement": "guid: 686ec78b56aa445795335fbadafcfaa4" - }, - { - "referencedResource": "TMP_TextEventCheck.cs", - "target": "guid: ba181bda76b7f6047ba2188e94bf0894", - "replacement": "guid: d736ce056cf444ca96e424f4d9c42b76" - }, - { - "referencedResource": "TMP_TextEventHandler.cs", - "target": "guid: 48a2fdbd95acd794caf78a85a0b6926a", - "replacement": "guid: 1312ae25639a4bae8e25ae223209cc50" - }, - { - "referencedResource": "TMP_TextInfoDebugTool.cs", - "target": "guid: 5eeee4467ee5b6a4884a1ec94812d93e", - "replacement": "guid: 21256c5b62f346f18640dad779911e20" - }, - { - "referencedResource": "TMP_TextSelector_A.cs", - "target": "guid: 68baf2864c88f4a43a50f16709de8717", - "replacement": "guid: 103e0a6a1d404693b9fb1a5173e0e979" - }, - { - "referencedResource": "TMP_TextSelector_B.cs", - "target": "guid: f499ff45b9a3d0840a0df48d01b2877b", - "replacement": "guid: a05dcd8be7ec4ccbb35c26219884aa37" - }, - { - "referencedResource": "TMP_UiFrameRateCounter.cs", - "target": "guid: dc33b7a34d20d5e4e8d54b6867ce81e3", - "replacement": "guid: 24b0dc2d1d494adbbec1f4db26b4cf83" - }, - { - "referencedResource": "TMPro_InstructionOverlay.cs", - "target": "guid: 53b866620ba77504eaf52cab7dbd95c9", - "replacement": "guid: c3c1afeda5e545e0b19add5373896d2e" - }, - { - "referencedResource": "VertexColorCycler.cs", - "target": "guid: c8d54cdd5913d4e4bb7b655d7d16835b", - "replacement": "guid: 91b8ba3d52e041fab2d0e0f169855539" - }, - { - "referencedResource": "VertexJitter.cs", - "target": "guid: e4769cb37968ea948a763a9a89f9e583", - "replacement": "guid: 2ed57967c52645d390a89dcf8f61ba73" - }, - { - "referencedResource": "VertexShakeA.cs", - "target": "guid: eaa12d191e718c945ac55da73fa469db", - "replacement": "guid: f7cfa58e417a46ea8889989684c2522e" - }, - { - "referencedResource": "VertexShakeB.cs", - "target": "guid: 32c83a5d3ba42b84aa26386eac47566b", - "replacement": "guid: e4e0d9ccee5f4950be8979268c9014e0" - }, - { - "referencedResource": "VertexZoom.cs", - "target": "guid: 5305493000edc7d4ea4302757dc19a99", - "replacement": "guid: 52ec835d14bd486f900952b77698b7eb" - }, - { - "referencedResource": "WarpTextExample.cs", - "target": "guid: f3eef864a10f51045a7530e2afe7c179", - "replacement": "guid: 790744c462254b7ba8038e6ed28b3db2" - }, - { - "referencedResource": "DropCap Numbers.psd", - "target": "guid: 28b41fef228d6814f90e541deaf9f262", - "replacement": "guid: fd09957580ac4326916010f1f260975b" - }, - { - "referencedResource": "Brushed Metal 3.jpg", - "target": "guid: c30270e41dccf9441ab56d94261bdcfa", - "replacement": "guid: f88677df267a41d6be1e7a6133e7d227" - }, - { - "referencedResource": "Engraved Wall.jpg", - "target": "guid: 93d6f74f2ef358e41989d4152b195f88", - "replacement": "guid: e0f91e6569da4934a48d85bf8d3063f0" - }, - { - "referencedResource": "Engraved Wall Normal.jpg", - "target": "guid: 1edd0950293e8664094053a041548c23", - "replacement": "guid: 20f91c93e7fb490f9496609c52ef3904" - }, - { - "referencedResource": "Floor Cement.jpg", - "target": "guid: ac5a0a5373b36e049bb7f98f88dbc244", - "replacement": "guid: 283f897e4925411ebbaa758b4cb13fc2" - }, - { - "referencedResource": "Floor Tiles 1 - diffuse.jpg", - "target": "guid: 7bbfb8818476e4641ba3e75f5225eb69", - "replacement": "guid: 85ac55597b97403c82fc6601a93cf241" - }, - { - "referencedResource": "Floor Tiles 1 - normal.jpg", - "target": "guid: e00d5a9a0944134448432ccacf221b95", - "replacement": "guid: c45cd05946364f32aba704f0853a975b" - }, - { - "referencedResource": "Fruit Jelly (B&W).jpg", - "target": "guid: 74d8c208a0193e14ca6916bea88a2c52", - "replacement": "guid: 1cdc5b506b1a4a33a53c30669ced1f51" - }, - { - "referencedResource": "Gradient Diagonal (Color).jpg", - "target": "guid: 2421a4955e71725448211e6bfbc7d7fb", - "replacement": "guid: 2ce5c55e85304b819a1826ecbc839aa5" - }, - { - "referencedResource": "Gradient Horizontal (Color).jpg", - "target": "guid: 0bbb43aff4f7811419ffceb1b16cf3d6", - "replacement": "guid: 6eb184de103d4b3f812b38561065192f" - }, - { - "referencedResource": "Gradient Vertical (Color).jpg", - "target": "guid: 3359915af07779e4e9a966df9eed764f", - "replacement": "guid: 03d0538de6e24c0f819bfc9ce084dfa9" - }, - { - "referencedResource": "Mask Zig-n-Zag.psd", - "target": "guid: 04eb87e72b3c1c648ba47a869ee00505", - "replacement": "guid: bb8dfcd263ad4eb383a33d74a720be6f" - }, - { - "referencedResource": "Sand Normal Map.jpg", - "target": "guid: 89e1b1c005d29cf4598ea861deb35a80", - "replacement": "guid: 8b8c8a10edf94ddc8cc4cc4fcd5696a9" - }, - { - "referencedResource": "Small Crate_diffuse.jpg", - "target": "guid: 64734c9bc6df32149a0c9cb0b18693e1", - "replacement": "guid: 602cb87b6a29443b8636370ea0751574" - }, - { - "referencedResource": "Small Crate_normal.jpg", - "target": "guid: 81b50d9cb6f3104448ec54c00a80101a", - "replacement": "guid: 8878a782f4334ecbbcf683b3ac780966" - }, - { - "referencedResource": "Stainless 03.png", - "target": "guid: 40d7f27f614cc1043a1f7e19074f461c", - "replacement": "guid: 83cb272f9ee046f6ab6636ca38af8db4" - }, - { - "referencedResource": "Text Overflow - Linked Text Image 1.png", - "target": "guid: 1fd8c568b1fcdbe43be65c1619cf3293", - "replacement": "guid: 4ccf43d26c4748c792174516f4a8fcef" - }, - { - "referencedResource": "Text Overflow - Linked Text UI Screenshot.png", - "target": "guid: 7983d2ec0427c114a916ae3c4769dc10", - "replacement": "guid: c76d18757a194d618355f05f815cb0a1" - }, - { - "referencedResource": "Wipe Pattern - Circle.psd", - "target": "guid: 6f5e9497d22a7a84193ec825e2eb41ac", - "replacement": "guid: 10c49fcd9c64421db7c0133e61e55f97" - }, - { - "referencedResource": "Wipe Pattern - Diagonal.psd", - "target": "guid: 8ee4d366b96418044aa9f94b3e2de645", - "replacement": "guid: ed5290d8df18488780e2996b9b882f01" - }, - { - "referencedResource": "Wipe Pattern - Radial Double.psd", - "target": "guid: 3e0e22da7c9570b498205179ef58ef38", - "replacement": "guid: 7631f4eff8f74ed38eb3eb9db17134e1" - }, - { - "referencedResource": "Wipe Pattern - Radial Quad.psd", - "target": "guid: 05ffd580f33f74644a6025ec196860af", - "replacement": "guid: 2b5e9ae96c5644d8bae932f8b4ca68a2" - }, - { - "referencedResource": "LiberationSans SDF.asset", - "target": "guid: 715b80e429c437e40867928a4e1fc975", - "replacement": "guid: 8f586378b4e144a9851e7b34d9b748ee" - }, - { - "referencedResource": "LineBreaking Following Characters.txt", - "target": "guid: 312ba5b9e90627940866e19549a788cf", - "replacement": "guid: fade42e8bc714b018fac513c043d323b" - }, - { - "referencedResource": "LineBreaking Leading Characters.txt", - "target": "guid: 8d713940fcbede142ae4a33ea0062b33", - "replacement": "guid: d82c1b31c7e74239bff1220585707d2b" - }, - { - "referencedResource": "TMP_Bitmap.shader", - "target": "guid: edfcf888cd11d9245b91d2883049a57e", - "replacement": "guid: 128e987d567d4e2c824d754223b3f3b0" - }, - { - "referencedResource": "TMP_Bitmap-Mobile.shader", - "target": "guid: d1cf17907700cb647aa3ea423ba38f2e", - "replacement": "guid: 1e3b057af24249748ff873be7fafee47" - }, - { - "referencedResource": "TMP_SDF.shader", - "target": "guid: dca26082f9cb439469295791d9f76fe5", - "replacement": "guid: 68e6db2ebdc24f95958faec2be5558d6" - }, - { - "referencedResource": "TMP_SDF Overlay.shader", - "target": "guid: 4a7755d6b5b67874f89c85f56f95fe97", - "replacement": "guid: dd89cf5b9246416f84610a006f916af7" - }, - { - "referencedResource": "TMP_SDF-Mobile.shader", - "target": "guid: cafd18099dfc0114896e0a8b277b81b6", - "replacement": "guid: fe393ace9b354375a9cb14cdbbc28be4" - }, - { - "referencedResource": "TMP_SDF-Mobile Masking.shader", - "target": "guid: afc255f7c2be52e41973a3d10a2e632d", - "replacement": "guid: bc1ede39bf3643ee8e493720e4259791" - }, - { - "referencedResource": "TMP_SDF-Mobile Overlay.shader", - "target": "guid: 9ecb3fe313cb5f7478141eba4a2d54ed", - "replacement": "guid: a02a7d8c237544f1962732b55a9aebf1" - }, - { - "referencedResource": "TMP_SDF-Surface.shader", - "target": "guid: 8e6b9842dbb1a5a4887378afab854e63", - "replacement": "guid: f7ada0af4f174f0694ca6a487b8f543d" - }, - { - "referencedResource": "TMP_SDF-Surface-Mobile.shader", - "target": "guid: 3c2ea7753c1425145a74d106ec1cd852", - "replacement": "guid: 85187c2149c549c5b33f0cdb02836b17" - }, - { - "referencedResource": "TMP_Sprite.shader", - "target": "guid: 3a1c68c8292caf046bd21158886c5e40", - "replacement": "guid: cf81c85f95fe47e1a27f6ae460cf182c" - }, - { - "referencedResource": "Default Sprite Asset.asset", - "target": "guid: 273ca6c80b4b5d746b5e548f532bffd8", - "replacement": "guid: fbef3c704dce48f08a44612d6c856c8d" - }, - { - "referencedResource": "EmojiOne.asset", - "target": "guid: 9a952e2781ef26940ae089f1053ef4ef", - "replacement": "guid: c41005c129ba4d66911b75229fd70b45" - }, - { - "referencedResource": "TMP Default Style Sheet.asset", - "target": "guid: 54d1085f9a2fdea4587fcfc7dddcd4bc", - "replacement": "guid: f952c082cb03451daed3ee968ac6c63e" - }, - { - "referencedResource": "TMP Settings.asset", - "target": "guid: 69ed5bac41eebaa4c97e9d2a4168c54f", - "replacement": "guid: 3f5b5dff67a942289a9defa416b206f3" - }, - { - "referencedResource": "TextContainer.cs", - "target": "guid: 3b34fc186f40e8043b977d4fa70db8c5", - "replacement": "guid: 32d40088a6124c578ad6b428df586e2e" - }, - { - "referencedResource": "TextContainer.cs", - "target": "fileID: 311004786, guid: 89f0137620f6af44b9ba852b4190e64e", - "replacement": "fileID: 11500000, guid: 32d40088a6124c578ad6b428df586e2e" - }, - { - "referencedResource": "TextMeshPro.cs", - "target": "guid: 1a1578b9753d2604f98d608cb4239e2f", - "replacement": "guid: 9541d86e2fd84c1d9990edf0852d74ab" - }, - { - "referencedResource": "TextMeshPro.cs", - "target": "fileID: -806885394, guid: 89f0137620f6af44b9ba852b4190e64e", - "replacement": "fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab" - }, - { - "referencedResource": "TextMeshProUGUI.cs", - "target": "guid: 496f2e385b0c62542b5c739ccfafd8da", - "replacement": "guid: f4688fdb7df04437aeb418b961361dc5" - }, - { - "referencedResource": "TextMeshProUGUI.cs", - "target": "fileID: 1453722849, guid: 89f0137620f6af44b9ba852b4190e64e", - "replacement": "fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5" - }, - { - "referencedResource": "TMP_Asset.cs", - "target": "guid: e2c4405608b405a4680436e183e53c45", - "replacement": "guid: 3bda1886f58f4e0ab1139400b160c3ee" - }, - { - "referencedResource": "TMP_Asset.cs", - "target": "fileID: -659140726, guid: 89f0137620f6af44b9ba852b4190e64e", - "replacement": "fileID: 11500000, guid: 3bda1886f58f4e0ab1139400b160c3ee" - }, - { - "referencedResource": "TMP_ColorGradient.cs", - "target": "guid: e90e18dd4a044ff4394833216e6bf4d2", - "replacement": "guid: 54d21f6ece3b46479f0c328f8c6007e0" - }, - { - "referencedResource": "TMP_ColorGradient.cs", - "target": "fileID: 2108210716, guid: 89f0137620f6af44b9ba852b4190e64e", - "replacement": "fileID: 11500000, guid: 54d21f6ece3b46479f0c328f8c6007e0" - }, - { - "referencedResource": "TMP_Dropdown.cs", - "target": "guid: 44cb1d34ddab9d449a05fc3747876be1", - "replacement": "guid: 7b743370ac3e4ec2a1668f5455a8ef8a" - }, - { - "referencedResource": "TMP_Dropdown.cs", - "target": "fileID: 1148083418, guid: 89f0137620f6af44b9ba852b4190e64e", - "replacement": "fileID: 11500000, guid: 7b743370ac3e4ec2a1668f5455a8ef8a" - }, - { - "referencedResource": "TMP_FontAsset.cs", - "target": "guid: 74dfce233ddb29b4294c3e23c1d3650d", - "replacement": "guid: 71c1514a6bd24e1e882cebbe1904ce04" - }, - { - "referencedResource": "TMP_FontAsset.cs", - "target": "fileID: -667331979, guid: 89f0137620f6af44b9ba852b4190e64e", - "replacement": "fileID: 11500000, guid: 71c1514a6bd24e1e882cebbe1904ce04" - }, - { - "referencedResource": "TMP_InputField.cs", - "target": "guid: 7b85855a3deaa2e44ac6741a6bbc85f6", - "replacement": "guid: 2da0c512f12947e489f739169773d7ca" - }, - { - "referencedResource": "TMP_InputField.cs", - "target": "fileID: -1620774994, guid: 89f0137620f6af44b9ba852b4190e64e", - "replacement": "fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca" - }, - { - "referencedResource": "TMP_Settings.cs", - "target": "guid: aafc3c7b9e915d64e8ec3d2c88b3a231", - "replacement": "guid: 2705215ac5b84b70bacc50632be6e391" - }, - { - "referencedResource": "TMP_Settings.cs", - "target": "fileID: -395462249, guid: 89f0137620f6af44b9ba852b4190e64e", - "replacement": "fileID: 11500000, guid: 2705215ac5b84b70bacc50632be6e391" - }, - { - "referencedResource": "TMP_SpriteAsset.cs", - "target": "guid: 90940d439ca0ef746af0b48419b92d2e", - "replacement": "guid: 84a92b25f83d49b9bc132d206b370281" - }, - { - "referencedResource": "TMP_SpriteAsset.cs", - "target": "fileID: 2019389346, guid: 89f0137620f6af44b9ba852b4190e64e", - "replacement": "fileID: 11500000, guid: 84a92b25f83d49b9bc132d206b370281" - }, - { - "referencedResource": "TMP_StyleSheet.cs", - "target": "guid: 13259b4ce497b194eb52a33d8eda0bdc", - "replacement": "guid: ab2114bdc8544297b417dfefe9f1e410" - }, - { - "referencedResource": "TMP_StyleSheet.cs", - "target": "fileID: -1936749209, guid: 89f0137620f6af44b9ba852b4190e64e", - "replacement": "fileID: 11500000, guid: ab2114bdc8544297b417dfefe9f1e410" - }, - { - "referencedResource": "TMP_SubMesh.cs", - "target": "guid: bd950677b2d06c74494b1c1118584fff", - "replacement": "guid: 07994bfe8b0e4adb97d706de5dea48d5" - }, - { - "referencedResource": "TMP_SubMesh.cs", - "target": "fileID: 1330537494, guid: 89f0137620f6af44b9ba852b4190e64e", - "replacement": "fileID: 11500000, guid: 07994bfe8b0e4adb97d706de5dea48d5" - }, - { - "referencedResource": "TMP_SubMeshUI.cs", - "target": "guid: a5378e1f14d974d419f811d6b0861f20", - "replacement": "guid: 058cba836c1846c3aa1c5fd2e28aea77" - }, - { - "referencedResource": "TMP_SubMeshUI.cs", - "target": "fileID: 1908110080, guid: 89f0137620f6af44b9ba852b4190e64e", - "replacement": "fileID: 11500000, guid: 058cba836c1846c3aa1c5fd2e28aea77" - }, - { - "referencedResource": "TMP_Text.cs", - "target": "guid: 9ec8dc9c3fa2e5d41b939b5888d2f1e8", - "replacement": "guid: 5143f58107604835ab1a5efa2d8818fd" - }, - { - "referencedResource": "TMP_Text.cs", - "target": "fileID: -1385168320, guid: 89f0137620f6af44b9ba852b4190e64e", - "replacement": "fileID: 11500000, guid: 5143f58107604835ab1a5efa2d8818fd" - }, - { - "referencedResource": "Default Sprite Asset.png", - "target": "guid: 5b32c2d36abe44540bed74c1f787033b", - "replacement": "guid: a0fc465d6cf04254a2938578735e2383" - }, - { - "referencedResource": "EmojiOne.png", - "target": "guid: 6ec706981a919c3489f0b061a40054e2", - "replacement": "guid: dffef66376be4fa480fb02b19edbe903" - } - ] -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/PackageConversionData_Assets.json b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/PackageConversionData_Assets.json deleted file mode 100644 index f07aa23..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/PackageConversionData_Assets.json +++ /dev/null @@ -1,184 +0,0 @@ -{ - "assetRecords": [ - { - "referencedResource": "TMP_FontAsset.cs", - "target": "guid: 74dfce233ddb29b4294c3e23c1d3650d", - "replacement": "guid: 71c1514a6bd24e1e882cebbe1904ce04" - }, - { - "referencedResource": "TMP_FontAsset.cs", - "target": "fileID: -667331979, guid: 89f0137620f6af44b9ba852b4190e64e", - "replacement": "fileID: 11500000, guid: 71c1514a6bd24e1e882cebbe1904ce04" - }, - { - "referencedResource": "Anton SDF.asset", - "target": "guid: f76ef802b8b940c46a31f9027f2b0158", - "replacement": "guid: 8a89fa14b10d46a99122fd4f73fca9a2" - }, - { - "referencedResource": "Bangers SDF.asset", - "target": "guid: 808aa8f1ab804104aa7d0c337a6c1481", - "replacement": "guid: 125cb55b44b24c4393181402bc6200e6" - }, - { - "referencedResource": "Electronic Highway Sign SDF.asset", - "target": "guid: 163292f6f226d954593d45b079f8aae0", - "replacement": "guid: dc36b3fdc14f47ebb36fd484a67e268a" - }, - { - "referencedResource": "Oswald Bold SDF.asset", - "target": "guid: 09641b029dfa78843902b548a9de7553", - "replacement": "guid: 0161d805a3764c089bef00bfe00793f5" - }, - { - "referencedResource": "Roboto-Bold SDF.asset", - "target": "guid: d62a573c923f5cb47b8ff65261033b90", - "replacement": "guid: 5302535af1044152a457ed104f1f4b91" - }, - { - "referencedResource": "LiberationSans SDF.asset", - "target": "guid: 715b80e429c437e40867928a4e1fc975", - "replacement": "guid: 8f586378b4e144a9851e7b34d9b748ee" - }, - { - "referencedResource": "TMP_Bitmap.shader", - "target": "guid: edfcf888cd11d9245b91d2883049a57e", - "replacement": "guid: 128e987d567d4e2c824d754223b3f3b0" - }, - { - "referencedResource": "TMP_Bitmap-Mobile.shader", - "target": "guid: d1cf17907700cb647aa3ea423ba38f2e", - "replacement": "guid: 1e3b057af24249748ff873be7fafee47" - }, - { - "referencedResource": "TMP_SDF.shader", - "target": "guid: dca26082f9cb439469295791d9f76fe5", - "replacement": "guid: 68e6db2ebdc24f95958faec2be5558d6" - }, - { - "referencedResource": "TMP_SDF Overlay.shader", - "target": "guid: 4a7755d6b5b67874f89c85f56f95fe97", - "replacement": "guid: dd89cf5b9246416f84610a006f916af7" - }, - { - "referencedResource": "TMP_SDF-Mobile.shader", - "target": "guid: cafd18099dfc0114896e0a8b277b81b6", - "replacement": "guid: fe393ace9b354375a9cb14cdbbc28be4" - }, - { - "referencedResource": "TMP_SDF-Mobile Masking.shader", - "target": "guid: afc255f7c2be52e41973a3d10a2e632d", - "replacement": "guid: bc1ede39bf3643ee8e493720e4259791" - }, - { - "referencedResource": "TMP_SDF-Mobile Overlay.shader", - "target": "guid: 9ecb3fe313cb5f7478141eba4a2d54ed", - "replacement": "guid: a02a7d8c237544f1962732b55a9aebf1" - }, - { - "referencedResource": "TMP_SDF-Surface.shader", - "target": "guid: 8e6b9842dbb1a5a4887378afab854e63", - "replacement": "guid: f7ada0af4f174f0694ca6a487b8f543d" - }, - { - "referencedResource": "TMP_SDF-Surface-Mobile.shader", - "target": "guid: 3c2ea7753c1425145a74d106ec1cd852", - "replacement": "guid: 85187c2149c549c5b33f0cdb02836b17" - }, - { - "referencedResource": "TMP_Sprite.shader", - "target": "guid: 3a1c68c8292caf046bd21158886c5e40", - "replacement": "guid: cf81c85f95fe47e1a27f6ae460cf182c" - }, - { - "referencedResource": "TMP_ColorGradient.cs", - "target": "guid: e90e18dd4a044ff4394833216e6bf4d2", - "replacement": "guid: 54d21f6ece3b46479f0c328f8c6007e0" - }, - { - "referencedResource": "TMP_ColorGradient.cs", - "target": "fileID: 2108210716, guid: 89f0137620f6af44b9ba852b4190e64e", - "replacement": "fileID: 11500000, guid: 54d21f6ece3b46479f0c328f8c6007e0" - }, - { - "referencedResource": "TMP_Settings.cs", - "target": "guid: aafc3c7b9e915d64e8ec3d2c88b3a231", - "replacement": "guid: 2705215ac5b84b70bacc50632be6e391" - }, - { - "referencedResource": "TMP_Settings.cs", - "target": "fileID: -395462249, guid: 89f0137620f6af44b9ba852b4190e64e", - "replacement": "fileID: 11500000, guid: 2705215ac5b84b70bacc50632be6e391" - }, - { - "referencedResource": "TMP Settings.asset", - "target": "guid: 69ed5bac41eebaa4c97e9d2a4168c54f", - "replacement": "guid: 3f5b5dff67a942289a9defa416b206f3" - }, - { - "referencedResource": "LineBreaking Following Characters.txt", - "target": "guid: 312ba5b9e90627940866e19549a788cf", - "replacement": "guid: fade42e8bc714b018fac513c043d323b" - }, - { - "referencedResource": "LineBreaking Leading Characters.txt", - "target": "guid: 8d713940fcbede142ae4a33ea0062b33", - "replacement": "guid: d82c1b31c7e74239bff1220585707d2b" - }, - { - "referencedResource": "TMP_StyleSheet.cs", - "target": "guid: 13259b4ce497b194eb52a33d8eda0bdc", - "replacement": "guid: ab2114bdc8544297b417dfefe9f1e410" - }, - { - "referencedResource": "TMP_StyleSheet.cs", - "target": "fileID: -1936749209, guid: 89f0137620f6af44b9ba852b4190e64e", - "replacement": "fileID: 11500000, guid: ab2114bdc8544297b417dfefe9f1e410" - }, - { - "referencedResource": "TMP Default Style Sheet.asset", - "target": "guid: 54d1085f9a2fdea4587fcfc7dddcd4bc", - "replacement": "guid: f952c082cb03451daed3ee968ac6c63e" - }, - { - "referencedResource": "TMP_SpriteAsset.cs", - "target": "guid: 90940d439ca0ef746af0b48419b92d2e", - "replacement": "guid: 84a92b25f83d49b9bc132d206b370281" - }, - { - "referencedResource": "TMP_SpriteAsset.cs", - "target": "fileID: 2019389346, guid: 89f0137620f6af44b9ba852b4190e64e", - "replacement": "fileID: 11500000, guid: 84a92b25f83d49b9bc132d206b370281" - }, - { - "referencedResource": "Default Sprite Asset.asset", - "target": "guid: 273ca6c80b4b5d746b5e548f532bffd8", - "replacement": "guid: fbef3c704dce48f08a44612d6c856c8d" - }, - { - "referencedResource": "Default Sprite Asset.png", - "target": "guid: 5b32c2d36abe44540bed74c1f787033b", - "replacement": "guid: a0fc465d6cf04254a2938578735e2383" - }, - { - "referencedResource": "EmojiOne.asset", - "target": "guid: 9a952e2781ef26940ae089f1053ef4ef", - "replacement": "guid: c41005c129ba4d66911b75229fd70b45" - }, - { - "referencedResource": "EmojiOne.png", - "target": "guid: 6ec706981a919c3489f0b061a40054e2", - "replacement": "guid: dffef66376be4fa480fb02b19edbe903" - }, - { - "referencedResource": "DropCap Numbers.asset", - "target": "guid: c4fd2a959a50b584b92dedfefec1ffda", - "replacement": "guid: 14aa93acbb234d16aaef0e8b46814db6" - }, - { - "referencedResource": "DropCap Numbers.psd", - "target": "guid: 28b41fef228d6814f90e541deaf9f262", - "replacement": "guid: fd09957580ac4326916010f1f260975b" - } - ] -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/DropdownOptionListDrawer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/DropdownOptionListDrawer.cs deleted file mode 100644 index 2b7dc85..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/DropdownOptionListDrawer.cs +++ /dev/null @@ -1,60 +0,0 @@ -using UnityEditorInternal; -using UnityEngine; -using UnityEngine.UI; -using UnityEditor; - -namespace TMPro.EditorUtilities -{ - [CustomPropertyDrawer(typeof(TMP_Dropdown.OptionDataList), true)] - class DropdownOptionListDrawer : PropertyDrawer - { - private ReorderableList m_ReorderableList; - - private void Init(SerializedProperty property) - { - if (m_ReorderableList != null) - return; - - SerializedProperty array = property.FindPropertyRelative("m_Options"); - - m_ReorderableList = new ReorderableList(property.serializedObject, array); - m_ReorderableList.drawElementCallback = DrawOptionData; - m_ReorderableList.drawHeaderCallback = DrawHeader; - m_ReorderableList.elementHeight += 16; - } - - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - Init(property); - - m_ReorderableList.DoList(position); - } - - private void DrawHeader(Rect rect) - { - GUI.Label(rect, "Options"); - } - - private void DrawOptionData(Rect rect, int index, bool isActive, bool isFocused) - { - SerializedProperty itemData = m_ReorderableList.serializedProperty.GetArrayElementAtIndex(index); - SerializedProperty itemText = itemData.FindPropertyRelative("m_Text"); - SerializedProperty itemImage = itemData.FindPropertyRelative("m_Image"); - - RectOffset offset = new RectOffset(0, 0, -1, -3); - rect = offset.Add(rect); - rect.height = EditorGUIUtility.singleLineHeight; - - EditorGUI.PropertyField(rect, itemText, GUIContent.none); - rect.y += EditorGUIUtility.singleLineHeight; - EditorGUI.PropertyField(rect, itemImage, GUIContent.none); - } - - public override float GetPropertyHeight(SerializedProperty property, GUIContent label) - { - Init(property); - - return m_ReorderableList.GetHeight(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/GlyphInfoDrawer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/GlyphInfoDrawer.cs deleted file mode 100644 index 0936dc7..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/GlyphInfoDrawer.cs +++ /dev/null @@ -1,61 +0,0 @@ -/* -using UnityEngine; -using UnityEditor; -using System.Collections; - - -namespace TMPro.EditorUtilities -{ - - [CustomPropertyDrawer(typeof(TMP_Glyph))] - public class GlyphInfoDrawer : PropertyDrawer - { - - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - SerializedProperty prop_id = property.FindPropertyRelative("id"); - SerializedProperty prop_x = property.FindPropertyRelative("x"); - SerializedProperty prop_y = property.FindPropertyRelative("y"); - SerializedProperty prop_width = property.FindPropertyRelative("width"); - SerializedProperty prop_height = property.FindPropertyRelative("height"); - SerializedProperty prop_xOffset = property.FindPropertyRelative("xOffset"); - SerializedProperty prop_yOffset = property.FindPropertyRelative("yOffset"); - SerializedProperty prop_xAdvance = property.FindPropertyRelative("xAdvance"); - SerializedProperty prop_scale = property.FindPropertyRelative("scale"); - - - // We get Rect since a valid position may not be provided by the caller. - Rect rect = GUILayoutUtility.GetRect(position.width, 48); - rect.y -= 15; - - //GUI.enabled = false; - EditorGUIUtility.labelWidth = 40f; - EditorGUIUtility.fieldWidth = 45f; - - bool prevGuiState = GUI.enabled; - GUI.enabled = true; - EditorGUI.LabelField(new Rect(rect.x + 5f, rect.y, 80f, 18), new GUIContent("Ascii: " + prop_id.intValue + ""), TMP_UIStyleManager.label); - EditorGUI.LabelField(new Rect(rect.x + 90f, rect.y, 80f, 18), new GUIContent("Hex: " + prop_id.intValue.ToString("X") + ""), TMP_UIStyleManager.label); - EditorGUI.LabelField(new Rect(rect.x + 170f, rect.y, 80, 18), "Char: [ " + (char)prop_id.intValue + " ]", TMP_UIStyleManager.label); - GUI.enabled = prevGuiState; - - EditorGUIUtility.labelWidth = 35f; - EditorGUIUtility.fieldWidth = 10f; - - float width = (rect.width - 5f) / 4; - EditorGUI.PropertyField(new Rect(rect.x + 5f + width * 0, rect.y + 22, width - 5f, 18), prop_x, new GUIContent("X:")); - EditorGUI.PropertyField(new Rect(rect.x + 5f + width * 1, rect.y + 22, width - 5f, 18), prop_y, new GUIContent("Y:")); - EditorGUI.PropertyField(new Rect(rect.x + 5f + width * 2, rect.y + 22, width - 5f, 18), prop_width, new GUIContent("W:")); - EditorGUI.PropertyField(new Rect(rect.x + 5f + width * 3, rect.y + 22, width - 5f, 18), prop_height, new GUIContent("H:")); - - //GUI.enabled = true; - EditorGUI.PropertyField(new Rect(rect.x + 5f + width * 0, rect.y + 44, width - 5f, 18), prop_xOffset, new GUIContent("OX:")); - EditorGUI.PropertyField(new Rect(rect.x + 5f + width * 1, rect.y + 44, width - 5f, 18), prop_yOffset, new GUIContent("OY:")); - //GUI.enabled = true; - EditorGUI.PropertyField(new Rect(rect.x + 5f + width * 2, rect.y + 44, width - 5f, 18), prop_xAdvance, new GUIContent("ADV:")); - EditorGUI.PropertyField(new Rect(rect.x + 5f + width * 3, rect.y + 44, width - 5f, 18), prop_scale, new GUIContent("SF:")); - } - - } -} -*/ \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/GlyphMetricsPropertyDrawer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/GlyphMetricsPropertyDrawer.cs deleted file mode 100644 index bcd25a6..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/GlyphMetricsPropertyDrawer.cs +++ /dev/null @@ -1,53 +0,0 @@ -using UnityEngine; -using UnityEngine.TextCore; -using UnityEditor; -using System.Collections; - - -namespace TMPro.EditorUtilities -{ - - [CustomPropertyDrawer(typeof(GlyphMetrics))] - public class GlyphMetricsPropertyDrawer : PropertyDrawer - { - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - SerializedProperty prop_Width = property.FindPropertyRelative("m_Width"); - SerializedProperty prop_Height = property.FindPropertyRelative("m_Height"); - SerializedProperty prop_HoriBearingX = property.FindPropertyRelative("m_HorizontalBearingX"); - SerializedProperty prop_HoriBearingY = property.FindPropertyRelative("m_HorizontalBearingY"); - SerializedProperty prop_HoriAdvance = property.FindPropertyRelative("m_HorizontalAdvance"); - - // We get Rect since a valid position may not be provided by the caller. - Rect rect = new Rect(position.x, position.y, position.width, 49); - - EditorGUI.LabelField(new Rect(rect.x, rect.y - 2.5f, rect.width, 18), new GUIContent("Glyph Metrics")); - - EditorGUIUtility.labelWidth = 50f; - EditorGUIUtility.fieldWidth = 15f; - - //GUI.enabled = false; - float width = (rect.width - 75f) / 2; - EditorGUI.PropertyField(new Rect(rect.x + width * 0, rect.y + 20, width - 5f, 18), prop_Width, new GUIContent("W:")); - EditorGUI.PropertyField(new Rect(rect.x + width * 1, rect.y + 20, width - 5f, 18), prop_Height, new GUIContent("H:")); - - //GUI.enabled = true; - - width = (rect.width - 75f) / 3; - EditorGUI.BeginChangeCheck(); - EditorGUI.PropertyField(new Rect(rect.x + width * 0, rect.y + 40, width - 5f, 18), prop_HoriBearingX, new GUIContent("BX:")); - EditorGUI.PropertyField(new Rect(rect.x + width * 1, rect.y + 40, width - 5f, 18), prop_HoriBearingY, new GUIContent("BY:")); - EditorGUI.PropertyField(new Rect(rect.x + width * 2, rect.y + 40, width - 5f, 18), prop_HoriAdvance, new GUIContent("AD:")); - if (EditorGUI.EndChangeCheck()) - { - - } - } - - public override float GetPropertyHeight(SerializedProperty property, GUIContent label) - { - return 65f; - } - - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/GlyphRectPropertyDrawer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/GlyphRectPropertyDrawer.cs deleted file mode 100644 index c9be74e..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/GlyphRectPropertyDrawer.cs +++ /dev/null @@ -1,44 +0,0 @@ -using UnityEngine; -using UnityEngine.TextCore; -using UnityEditor; -using System.Collections; - - -namespace TMPro.EditorUtilities -{ - - [CustomPropertyDrawer(typeof(GlyphRect))] - public class GlyphRectPropertyDrawer : PropertyDrawer - { - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - //EditorGUI.BeginProperty(position, label, property); - - SerializedProperty prop_X = property.FindPropertyRelative("m_X"); - SerializedProperty prop_Y = property.FindPropertyRelative("m_Y"); - SerializedProperty prop_Width = property.FindPropertyRelative("m_Width"); - SerializedProperty prop_Height = property.FindPropertyRelative("m_Height"); - - // We get Rect since a valid position may not be provided by the caller. - Rect rect = new Rect(position.x, position.y, position.width, 49); - EditorGUI.LabelField(new Rect(rect.x, rect.y - 2.5f, rect.width, 18), new GUIContent("Glyph Rect")); - - EditorGUIUtility.labelWidth = 50f; - EditorGUIUtility.fieldWidth = 20f; - - //GUI.enabled = false; - float width = (rect.width - 75f) / 4; - EditorGUI.PropertyField(new Rect(rect.x + width * 0, rect.y + 20, width - 5f, 18), prop_X, new GUIContent("X:")); - EditorGUI.PropertyField(new Rect(rect.x + width * 1, rect.y + 20, width - 5f, 18), prop_Y, new GUIContent("Y:")); - EditorGUI.PropertyField(new Rect(rect.x + width * 2, rect.y + 20, width - 5f, 18), prop_Width, new GUIContent("W:")); - EditorGUI.PropertyField(new Rect(rect.x + width * 3, rect.y + 20, width - 5f, 18), prop_Height, new GUIContent("H:")); - - //EditorGUI.EndProperty(); - } - - public override float GetPropertyHeight(SerializedProperty property, GUIContent label) - { - return 45f; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_BaseEditorPanel.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_BaseEditorPanel.cs deleted file mode 100644 index 5896c33..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_BaseEditorPanel.cs +++ /dev/null @@ -1,1336 +0,0 @@ -using UnityEngine; -using UnityEditor; -using System.Collections.Generic; -using System.Linq; - - -namespace TMPro.EditorUtilities -{ - public abstract class TMP_BaseEditorPanel : Editor - { - //Labels and Tooltips - static readonly GUIContent k_RtlToggleLabel = new GUIContent("Enable RTL Editor", "Reverses text direction and allows right to left editing."); - //static readonly GUIContent k_MainSettingsLabel = new GUIContent("Main Settings"); - static readonly GUIContent k_FontAssetLabel = new GUIContent("Font Asset", "The Font Asset containing the glyphs that can be rendered for this text."); - static readonly GUIContent k_MaterialPresetLabel = new GUIContent("Material Preset", "The material used for rendering. Only materials created from the Font Asset can be used."); - static readonly GUIContent k_StyleLabel = new GUIContent("Text Style", "The style from a style sheet to be applied to the text."); - static readonly GUIContent k_AutoSizeLabel = new GUIContent("Auto Size", "Auto sizes the text to fit the available space."); - static readonly GUIContent k_FontSizeLabel = new GUIContent("Font Size", "The size the text will be rendered at in points."); - static readonly GUIContent k_AutoSizeOptionsLabel = new GUIContent("Auto Size Options"); - static readonly GUIContent k_MinLabel = new GUIContent("Min", "The minimum font size."); - static readonly GUIContent k_MaxLabel = new GUIContent("Max", "The maximum font size."); - static readonly GUIContent k_WdLabel = new GUIContent("WD%", "Compresses character width up to this value before reducing font size."); - static readonly GUIContent k_LineLabel = new GUIContent("Line", "Negative value only. Compresses line height down to this value before reducing font size."); - static readonly GUIContent k_FontStyleLabel = new GUIContent("Font Style", "Styles to apply to the text such as Bold or Italic."); - - static readonly GUIContent k_BoldLabel = new GUIContent("B", "Bold"); - static readonly GUIContent k_ItalicLabel = new GUIContent("I", "Italic"); - static readonly GUIContent k_UnderlineLabel = new GUIContent("U", "Underline"); - static readonly GUIContent k_StrikethroughLabel = new GUIContent("S", "Strikethrough"); - static readonly GUIContent k_LowercaseLabel = new GUIContent("ab", "Lowercase"); - static readonly GUIContent k_UppercaseLabel = new GUIContent("AB", "Uppercase"); - static readonly GUIContent k_SmallcapsLabel = new GUIContent("SC", "Smallcaps"); - - static readonly GUIContent k_ColorModeLabel = new GUIContent("Color Mode", "The type of gradient to use."); - static readonly GUIContent k_BaseColorLabel = new GUIContent("Vertex Color", "The base color of the text vertices."); - static readonly GUIContent k_ColorPresetLabel = new GUIContent("Color Preset", "A Color Preset which override the local color settings."); - static readonly GUIContent k_ColorGradientLabel = new GUIContent("Color Gradient", "The gradient color applied over the Vertex Color. Can be locally set or driven by a Gradient Asset."); - static readonly GUIContent k_CorenerColorsLabel = new GUIContent("Colors", "The color composition of the gradient."); - static readonly GUIContent k_OverrideTagsLabel = new GUIContent("Override Tags", "Whether the color settings override the tag."); - - static readonly GUIContent k_SpacingOptionsLabel = new GUIContent("Spacing Options (em)", "Spacing adjustments between different elements of the text. Values are in font units where a value of 1 equals 1/100em."); - static readonly GUIContent k_CharacterSpacingLabel = new GUIContent("Character"); - static readonly GUIContent k_WordSpacingLabel = new GUIContent("Word"); - static readonly GUIContent k_LineSpacingLabel = new GUIContent("Line"); - static readonly GUIContent k_ParagraphSpacingLabel = new GUIContent("Paragraph"); - - static readonly GUIContent k_AlignmentLabel = new GUIContent("Alignment", "Horizontal and vertical aligment of the text within its container."); - static readonly GUIContent k_WrapMixLabel = new GUIContent("Wrap Mix (W <-> C)", "How much to favor words versus characters when distributing the text."); - - static readonly GUIContent k_WrappingLabel = new GUIContent("Wrapping", "Wraps text to the next line when reaching the edge of the container."); - static readonly GUIContent[] k_WrappingOptions = { new GUIContent("Disabled"), new GUIContent("Enabled") }; - static readonly GUIContent k_OverflowLabel = new GUIContent("Overflow", "How to display text which goes past the edge of the container."); - - static readonly GUIContent k_MarginsLabel = new GUIContent("Margins", "The space between the text and the edge of its container."); - static readonly GUIContent k_GeometrySortingLabel = new GUIContent("Geometry Sorting", "The order in which text geometry is sorted. Used to adjust the way overlapping characters are displayed."); - static readonly GUIContent k_IsTextObjectScaleStatic = new GUIContent("Is Scale Static", "Controls whether a text object will be excluded from the InteralUpdate callback to handle scale changes of the text object or its parent(s)."); - static readonly GUIContent k_RichTextLabel = new GUIContent("Rich Text", "Enables the use of rich text tags such as and ."); - static readonly GUIContent k_EscapeCharactersLabel = new GUIContent("Parse Escape Characters", "Whether to display strings such as \"\\n\" as is or replace them by the character they represent."); - static readonly GUIContent k_VisibleDescenderLabel = new GUIContent("Visible Descender", "Compute descender values from visible characters only. Used to adjust layout behavior when hiding and revealing characters dynamically."); - static readonly GUIContent k_SpriteAssetLabel = new GUIContent("Sprite Asset", "The Sprite Asset used when NOT specifically referencing one using ."); - static readonly GUIContent k_StyleSheetAssetLabel = new GUIContent("Style Sheet Asset", "The Style Sheet Asset used by this text object."); - - static readonly GUIContent k_HorizontalMappingLabel = new GUIContent("Horizontal Mapping", "Horizontal UV mapping when using a shader with a texture face option."); - static readonly GUIContent k_VerticalMappingLabel = new GUIContent("Vertical Mapping", "Vertical UV mapping when using a shader with a texture face option."); - static readonly GUIContent k_LineOffsetLabel = new GUIContent("Line Offset", "Adds an horizontal offset to each successive line. Used for slanted texturing."); - - static readonly GUIContent k_KerningLabel = new GUIContent("Kerning", "Enables character specific spacing between pairs of characters."); - static readonly GUIContent k_PaddingLabel = new GUIContent("Extra Padding", "Adds some padding between the characters and the edge of the text mesh. Can reduce graphical errors when displaying small text."); - - static readonly GUIContent k_LeftLabel = new GUIContent("Left"); - static readonly GUIContent k_TopLabel = new GUIContent("Top"); - static readonly GUIContent k_RightLabel = new GUIContent("Right"); - static readonly GUIContent k_BottomLabel = new GUIContent("Bottom"); - - protected static readonly GUIContent k_ExtraSettingsLabel = new GUIContent("Extra Settings"); - protected static string[] k_UiStateLabel = new string[] { "(Click to collapse) ", "(Click to expand) " }; - - static Dictionary k_AvailableStyles = new Dictionary(); - protected Dictionary m_TextStyleIndexLookup = new Dictionary(); - - protected struct Foldout - { - // Track Inspector foldout panel states, globally. - public static bool extraSettings = false; - public static bool materialInspector = true; - } - - protected static int s_EventId; - - public int selAlignGridA; - public int selAlignGridB; - - protected SerializedProperty m_TextProp; - - protected SerializedProperty m_IsRightToLeftProp; - protected string m_RtlText; - - protected SerializedProperty m_FontAssetProp; - - protected SerializedProperty m_FontSharedMaterialProp; - protected Material[] m_MaterialPresets; - protected GUIContent[] m_MaterialPresetNames; - protected Dictionary m_MaterialPresetIndexLookup = new Dictionary(); - protected int m_MaterialPresetSelectionIndex; - protected bool m_IsPresetListDirty; - - protected List m_Styles = new List(); - protected GUIContent[] m_StyleNames; - protected int m_StyleSelectionIndex; - - protected SerializedProperty m_FontStyleProp; - - protected SerializedProperty m_FontColorProp; - protected SerializedProperty m_EnableVertexGradientProp; - protected SerializedProperty m_FontColorGradientProp; - protected SerializedProperty m_FontColorGradientPresetProp; - protected SerializedProperty m_OverrideHtmlColorProp; - - protected SerializedProperty m_FontSizeProp; - protected SerializedProperty m_FontSizeBaseProp; - - protected SerializedProperty m_AutoSizingProp; - protected SerializedProperty m_FontSizeMinProp; - protected SerializedProperty m_FontSizeMaxProp; - - protected SerializedProperty m_LineSpacingMaxProp; - protected SerializedProperty m_CharWidthMaxAdjProp; - - protected SerializedProperty m_CharacterSpacingProp; - protected SerializedProperty m_WordSpacingProp; - protected SerializedProperty m_LineSpacingProp; - protected SerializedProperty m_ParagraphSpacingProp; - - protected SerializedProperty m_TextAlignmentProp; - - protected SerializedProperty m_HorizontalAlignmentProp; - protected SerializedProperty m_VerticalAlignmentProp; - - protected SerializedProperty m_HorizontalMappingProp; - protected SerializedProperty m_VerticalMappingProp; - protected SerializedProperty m_UvLineOffsetProp; - - protected SerializedProperty m_EnableWordWrappingProp; - protected SerializedProperty m_WordWrappingRatiosProp; - protected SerializedProperty m_TextOverflowModeProp; - protected SerializedProperty m_PageToDisplayProp; - protected SerializedProperty m_LinkedTextComponentProp; - protected SerializedProperty m_ParentLinkedTextComponentProp; - - protected SerializedProperty m_EnableKerningProp; - - protected SerializedProperty m_IsRichTextProp; - - protected SerializedProperty m_HasFontAssetChangedProp; - - protected SerializedProperty m_EnableExtraPaddingProp; - protected SerializedProperty m_CheckPaddingRequiredProp; - protected SerializedProperty m_EnableEscapeCharacterParsingProp; - protected SerializedProperty m_UseMaxVisibleDescenderProp; - protected SerializedProperty m_GeometrySortingOrderProp; - protected SerializedProperty m_IsTextObjectScaleStaticProp; - - protected SerializedProperty m_SpriteAssetProp; - - protected SerializedProperty m_StyleSheetAssetProp; - protected SerializedProperty m_TextStyleHashCodeProp; - - protected SerializedProperty m_MarginProp; - - protected SerializedProperty m_ColorModeProp; - - protected bool m_HavePropertiesChanged; - - protected TMP_Text m_TextComponent; - protected TMP_Text m_PreviousLinkedTextComponent; - protected RectTransform m_RectTransform; - - protected Material m_TargetMaterial; - - protected Vector3[] m_RectCorners = new Vector3[4]; - protected Vector3[] m_HandlePoints = new Vector3[4]; - - protected virtual void OnEnable() - { - m_TextProp = serializedObject.FindProperty("m_text"); - m_IsRightToLeftProp = serializedObject.FindProperty("m_isRightToLeft"); - m_FontAssetProp = serializedObject.FindProperty("m_fontAsset"); - m_FontSharedMaterialProp = serializedObject.FindProperty("m_sharedMaterial"); - - m_FontStyleProp = serializedObject.FindProperty("m_fontStyle"); - - m_FontSizeProp = serializedObject.FindProperty("m_fontSize"); - m_FontSizeBaseProp = serializedObject.FindProperty("m_fontSizeBase"); - - m_AutoSizingProp = serializedObject.FindProperty("m_enableAutoSizing"); - m_FontSizeMinProp = serializedObject.FindProperty("m_fontSizeMin"); - m_FontSizeMaxProp = serializedObject.FindProperty("m_fontSizeMax"); - - m_LineSpacingMaxProp = serializedObject.FindProperty("m_lineSpacingMax"); - m_CharWidthMaxAdjProp = serializedObject.FindProperty("m_charWidthMaxAdj"); - - // Colors & Gradient - m_FontColorProp = serializedObject.FindProperty("m_fontColor"); - m_EnableVertexGradientProp = serializedObject.FindProperty("m_enableVertexGradient"); - m_FontColorGradientProp = serializedObject.FindProperty("m_fontColorGradient"); - m_FontColorGradientPresetProp = serializedObject.FindProperty("m_fontColorGradientPreset"); - m_OverrideHtmlColorProp = serializedObject.FindProperty("m_overrideHtmlColors"); - - m_CharacterSpacingProp = serializedObject.FindProperty("m_characterSpacing"); - m_WordSpacingProp = serializedObject.FindProperty("m_wordSpacing"); - m_LineSpacingProp = serializedObject.FindProperty("m_lineSpacing"); - m_ParagraphSpacingProp = serializedObject.FindProperty("m_paragraphSpacing"); - - m_TextAlignmentProp = serializedObject.FindProperty("m_textAlignment"); - m_HorizontalAlignmentProp = serializedObject.FindProperty("m_HorizontalAlignment"); - m_VerticalAlignmentProp = serializedObject.FindProperty("m_VerticalAlignment"); - - m_HorizontalMappingProp = serializedObject.FindProperty("m_horizontalMapping"); - m_VerticalMappingProp = serializedObject.FindProperty("m_verticalMapping"); - m_UvLineOffsetProp = serializedObject.FindProperty("m_uvLineOffset"); - - m_EnableWordWrappingProp = serializedObject.FindProperty("m_enableWordWrapping"); - m_WordWrappingRatiosProp = serializedObject.FindProperty("m_wordWrappingRatios"); - m_TextOverflowModeProp = serializedObject.FindProperty("m_overflowMode"); - m_PageToDisplayProp = serializedObject.FindProperty("m_pageToDisplay"); - m_LinkedTextComponentProp = serializedObject.FindProperty("m_linkedTextComponent"); - m_ParentLinkedTextComponentProp = serializedObject.FindProperty("parentLinkedComponent"); - - m_EnableKerningProp = serializedObject.FindProperty("m_enableKerning"); - - m_EnableExtraPaddingProp = serializedObject.FindProperty("m_enableExtraPadding"); - m_IsRichTextProp = serializedObject.FindProperty("m_isRichText"); - m_CheckPaddingRequiredProp = serializedObject.FindProperty("checkPaddingRequired"); - m_EnableEscapeCharacterParsingProp = serializedObject.FindProperty("m_parseCtrlCharacters"); - m_UseMaxVisibleDescenderProp = serializedObject.FindProperty("m_useMaxVisibleDescender"); - - m_GeometrySortingOrderProp = serializedObject.FindProperty("m_geometrySortingOrder"); - m_IsTextObjectScaleStaticProp = serializedObject.FindProperty("m_IsTextObjectScaleStatic"); - - m_SpriteAssetProp = serializedObject.FindProperty("m_spriteAsset"); - - m_StyleSheetAssetProp = serializedObject.FindProperty("m_StyleSheet"); - m_TextStyleHashCodeProp = serializedObject.FindProperty("m_TextStyleHashCode"); - - m_MarginProp = serializedObject.FindProperty("m_margin"); - - m_HasFontAssetChangedProp = serializedObject.FindProperty("m_hasFontAssetChanged"); - - m_ColorModeProp = serializedObject.FindProperty("m_colorMode"); - - m_TextComponent = (TMP_Text)target; - m_RectTransform = m_TextComponent.rectTransform; - - // Restore Previous Linked Text Component - m_PreviousLinkedTextComponent = m_TextComponent.linkedTextComponent; - - // Create new Material Editor if one does not exists - m_TargetMaterial = m_TextComponent.fontSharedMaterial; - - // Set material inspector visibility - if (m_TargetMaterial != null) - UnityEditorInternal.InternalEditorUtility.SetIsInspectorExpanded(m_TargetMaterial, Foldout.materialInspector); - - // Find all Material Presets matching the current Font Asset Material - m_MaterialPresetNames = GetMaterialPresets(); - - // Get Styles from Style Sheet - if (!m_TextComponent.m_isWaitingOnResourceLoad) - m_StyleNames = GetStyleNames(); - - // Register to receive events when style sheets are modified. - TMPro_EventManager.TEXT_STYLE_PROPERTY_EVENT.Add(ON_TEXT_STYLE_CHANGED); - - // Initialize the Event Listener for Undo Events. - Undo.undoRedoPerformed += OnUndoRedo; - } - - protected virtual void OnDisable() - { - // Set material inspector visibility - if (m_TargetMaterial != null) - Foldout.materialInspector = UnityEditorInternal.InternalEditorUtility.GetIsInspectorExpanded(m_TargetMaterial); - - if (Undo.undoRedoPerformed != null) - Undo.undoRedoPerformed -= OnUndoRedo; - - // Unregister from style sheet related events. - TMPro_EventManager.TEXT_STYLE_PROPERTY_EVENT.Remove(ON_TEXT_STYLE_CHANGED); - } - - // Event received when Text Styles are changed. - void ON_TEXT_STYLE_CHANGED(bool isChanged) - { - m_StyleNames = GetStyleNames(); - } - - public override void OnInspectorGUI() - { - // Make sure Multi selection only includes TMP Text objects. - if (IsMixSelectionTypes()) return; - - serializedObject.Update(); - - DrawTextInput(); - - DrawMainSettings(); - - DrawExtraSettings(); - - EditorGUILayout.Space(); - - if (serializedObject.ApplyModifiedProperties() || m_HavePropertiesChanged) - { - m_TextComponent.havePropertiesChanged = true; - m_HavePropertiesChanged = false; - EditorUtility.SetDirty(target); - } - } - - public void OnSceneGUI() - { - if (IsMixSelectionTypes()) return; - - // Margin Frame & Handles - m_RectTransform.GetWorldCorners(m_RectCorners); - Vector4 marginOffset = m_TextComponent.margin; - Vector3 lossyScale = m_RectTransform.lossyScale; - - m_HandlePoints[0] = m_RectCorners[0] + m_RectTransform.TransformDirection(new Vector3(marginOffset.x * lossyScale.x, marginOffset.w * lossyScale.y, 0)); - m_HandlePoints[1] = m_RectCorners[1] + m_RectTransform.TransformDirection(new Vector3(marginOffset.x * lossyScale.x, -marginOffset.y * lossyScale.y, 0)); - m_HandlePoints[2] = m_RectCorners[2] + m_RectTransform.TransformDirection(new Vector3(-marginOffset.z * lossyScale.x, -marginOffset.y * lossyScale.y, 0)); - m_HandlePoints[3] = m_RectCorners[3] + m_RectTransform.TransformDirection(new Vector3(-marginOffset.z * lossyScale.x, marginOffset.w * lossyScale.y, 0)); - - Handles.DrawSolidRectangleWithOutline(m_HandlePoints, new Color32(255, 255, 255, 0), new Color32(255, 255, 0, 255)); - - // Draw & process FreeMoveHandles - - // LEFT HANDLE - Vector3 oldLeft = (m_HandlePoints[0] + m_HandlePoints[1]) * 0.5f; - Vector3 newLeft = Handles.FreeMoveHandle(oldLeft, Quaternion.identity, HandleUtility.GetHandleSize(m_RectTransform.position) * 0.05f, Vector3.zero, Handles.DotHandleCap); - bool hasChanged = false; - if (oldLeft != newLeft) - { - float delta = oldLeft.x - newLeft.x; - marginOffset.x += -delta / lossyScale.x; - //Debug.Log("Left Margin H0:" + handlePoints[0] + " H1:" + handlePoints[1]); - hasChanged = true; - } - - // TOP HANDLE - Vector3 oldTop = (m_HandlePoints[1] + m_HandlePoints[2]) * 0.5f; - Vector3 newTop = Handles.FreeMoveHandle(oldTop, Quaternion.identity, HandleUtility.GetHandleSize(m_RectTransform.position) * 0.05f, Vector3.zero, Handles.DotHandleCap); - if (oldTop != newTop) - { - float delta = oldTop.y - newTop.y; - marginOffset.y += delta / lossyScale.y; - //Debug.Log("Top Margin H1:" + handlePoints[1] + " H2:" + handlePoints[2]); - hasChanged = true; - } - - // RIGHT HANDLE - Vector3 oldRight = (m_HandlePoints[2] + m_HandlePoints[3]) * 0.5f; - Vector3 newRight = Handles.FreeMoveHandle(oldRight, Quaternion.identity, HandleUtility.GetHandleSize(m_RectTransform.position) * 0.05f, Vector3.zero, Handles.DotHandleCap); - if (oldRight != newRight) - { - float delta = oldRight.x - newRight.x; - marginOffset.z += delta / lossyScale.x; - hasChanged = true; - //Debug.Log("Right Margin H2:" + handlePoints[2] + " H3:" + handlePoints[3]); - } - - // BOTTOM HANDLE - Vector3 oldBottom = (m_HandlePoints[3] + m_HandlePoints[0]) * 0.5f; - Vector3 newBottom = Handles.FreeMoveHandle(oldBottom, Quaternion.identity, HandleUtility.GetHandleSize(m_RectTransform.position) * 0.05f, Vector3.zero, Handles.DotHandleCap); - if (oldBottom != newBottom) - { - float delta = oldBottom.y - newBottom.y; - marginOffset.w += -delta / lossyScale.y; - hasChanged = true; - //Debug.Log("Bottom Margin H0:" + handlePoints[0] + " H3:" + handlePoints[3]); - } - - if (hasChanged) - { - Undo.RecordObjects(new Object[] {m_RectTransform, m_TextComponent }, "Margin Changes"); - m_TextComponent.margin = marginOffset; - EditorUtility.SetDirty(target); - } - } - - protected void DrawTextInput() - { - EditorGUILayout.Space(); - - Rect rect = EditorGUILayout.GetControlRect(false, 22); - GUI.Label(rect, new GUIContent("Text Input"), TMP_UIStyleManager.sectionHeader); - - EditorGUI.indentLevel = 0; - - // If the text component is linked, disable the text input box. - if (m_ParentLinkedTextComponentProp.objectReferenceValue != null) - { - EditorGUILayout.HelpBox("The Text Input Box is disabled due to this text component being linked to another.", MessageType.Info); - } - else - { - // Display RTL Toggle - float labelWidth = EditorGUIUtility.labelWidth; - EditorGUIUtility.labelWidth = 110f; - - m_IsRightToLeftProp.boolValue = EditorGUI.Toggle(new Rect(rect.width - 120, rect.y + 3, 130, 20), k_RtlToggleLabel, m_IsRightToLeftProp.boolValue); - - EditorGUIUtility.labelWidth = labelWidth; - - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_TextProp, GUIContent.none); - - if (EditorGUI.EndChangeCheck()) - { - m_TextComponent.m_inputSource = TMP_Text.TextInputSources.Text; - m_TextComponent.m_isInputParsingRequired = true; - m_HavePropertiesChanged = true; - } - - if (m_IsRightToLeftProp.boolValue) - { - // Copy source text to RTL string - m_RtlText = string.Empty; - string sourceText = m_TextProp.stringValue; - - // Reverse Text displayed in Text Input Box - for (int i = 0; i < sourceText.Length; i++) - m_RtlText += sourceText[sourceText.Length - i - 1]; - - GUILayout.Label("RTL Text Input"); - - EditorGUI.BeginChangeCheck(); - m_RtlText = EditorGUILayout.TextArea(m_RtlText, TMP_UIStyleManager.wrappingTextArea, GUILayout.Height(EditorGUI.GetPropertyHeight(m_TextProp) - EditorGUIUtility.singleLineHeight), GUILayout.ExpandWidth(true)); - - if (EditorGUI.EndChangeCheck()) - { - // Convert RTL input - sourceText = string.Empty; - - // Reverse Text displayed in Text Input Box - for (int i = 0; i < m_RtlText.Length; i++) - sourceText += m_RtlText[m_RtlText.Length - i - 1]; - - m_TextProp.stringValue = sourceText; - } - } - - // TEXT STYLE - if (m_StyleNames != null) - { - rect = EditorGUILayout.GetControlRect(false, 17); - - m_TextStyleIndexLookup.TryGetValue(m_TextStyleHashCodeProp.intValue, out m_StyleSelectionIndex); - - EditorGUI.BeginChangeCheck(); - m_StyleSelectionIndex = EditorGUI.Popup(rect, k_StyleLabel, m_StyleSelectionIndex, m_StyleNames); - if (EditorGUI.EndChangeCheck()) - { - m_TextStyleHashCodeProp.intValue = m_Styles[m_StyleSelectionIndex].hashCode; - m_TextComponent.m_TextStyle = m_Styles[m_StyleSelectionIndex]; - m_HavePropertiesChanged = true; - } - } - } - } - - protected void DrawMainSettings() - { - // MAIN SETTINGS SECTION - GUILayout.Label(new GUIContent("Main Settings"), TMP_UIStyleManager.sectionHeader); - - //EditorGUI.indentLevel += 1; - - DrawFont(); - - DrawColor(); - - DrawSpacing(); - - DrawAlignment(); - - DrawWrappingOverflow(); - - DrawTextureMapping(); - - //EditorGUI.indentLevel -= 1; - } - - void DrawFont() - { - bool isFontAssetDirty = false; - - // FONT ASSET - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_FontAssetProp, k_FontAssetLabel); - if (EditorGUI.EndChangeCheck()) - { - m_HavePropertiesChanged = true; - m_HasFontAssetChangedProp.boolValue = true; - - // Get new Material Presets for the new font asset - m_MaterialPresetNames = GetMaterialPresets(); - m_MaterialPresetSelectionIndex = 0; - - isFontAssetDirty = true; - } - - Rect rect; - - // MATERIAL PRESET - if (m_MaterialPresetNames != null && !isFontAssetDirty ) - { - EditorGUI.BeginChangeCheck(); - rect = EditorGUILayout.GetControlRect(false, 17); - - float oldHeight = EditorStyles.popup.fixedHeight; - EditorStyles.popup.fixedHeight = rect.height; - - int oldSize = EditorStyles.popup.fontSize; - EditorStyles.popup.fontSize = 11; - - if (m_FontSharedMaterialProp.objectReferenceValue != null) - m_MaterialPresetIndexLookup.TryGetValue(m_FontSharedMaterialProp.objectReferenceValue.GetInstanceID(), out m_MaterialPresetSelectionIndex); - - m_MaterialPresetSelectionIndex = EditorGUI.Popup(rect, k_MaterialPresetLabel, m_MaterialPresetSelectionIndex, m_MaterialPresetNames); - if (EditorGUI.EndChangeCheck()) - { - m_FontSharedMaterialProp.objectReferenceValue = m_MaterialPresets[m_MaterialPresetSelectionIndex]; - m_HavePropertiesChanged = true; - } - - EditorStyles.popup.fixedHeight = oldHeight; - EditorStyles.popup.fontSize = oldSize; - } - - // FONT STYLE - EditorGUI.BeginChangeCheck(); - - int v1, v2, v3, v4, v5, v6, v7; - - if (EditorGUIUtility.wideMode) - { - rect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight + 2f); - - EditorGUI.PrefixLabel(rect, k_FontStyleLabel); - - int styleValue = m_FontStyleProp.intValue; - - rect.x += EditorGUIUtility.labelWidth; - rect.width -= EditorGUIUtility.labelWidth; - - rect.width = Mathf.Max(25f, rect.width / 7f); - - v1 = TMP_EditorUtility.EditorToggle(rect, (styleValue & 1) == 1, k_BoldLabel, TMP_UIStyleManager.alignmentButtonLeft) ? 1 : 0; // Bold - rect.x += rect.width; - v2 = TMP_EditorUtility.EditorToggle(rect, (styleValue & 2) == 2, k_ItalicLabel, TMP_UIStyleManager.alignmentButtonMid) ? 2 : 0; // Italics - rect.x += rect.width; - v3 = TMP_EditorUtility.EditorToggle(rect, (styleValue & 4) == 4, k_UnderlineLabel, TMP_UIStyleManager.alignmentButtonMid) ? 4 : 0; // Underline - rect.x += rect.width; - v7 = TMP_EditorUtility.EditorToggle(rect, (styleValue & 64) == 64, k_StrikethroughLabel, TMP_UIStyleManager.alignmentButtonRight) ? 64 : 0; // Strikethrough - rect.x += rect.width; - - int selected = 0; - - EditorGUI.BeginChangeCheck(); - v4 = TMP_EditorUtility.EditorToggle(rect, (styleValue & 8) == 8, k_LowercaseLabel, TMP_UIStyleManager.alignmentButtonLeft) ? 8 : 0; // Lowercase - if (EditorGUI.EndChangeCheck() && v4 > 0) - { - selected = v4; - } - rect.x += rect.width; - EditorGUI.BeginChangeCheck(); - v5 = TMP_EditorUtility.EditorToggle(rect, (styleValue & 16) == 16, k_UppercaseLabel, TMP_UIStyleManager.alignmentButtonMid) ? 16 : 0; // Uppercase - if (EditorGUI.EndChangeCheck() && v5 > 0) - { - selected = v5; - } - rect.x += rect.width; - EditorGUI.BeginChangeCheck(); - v6 = TMP_EditorUtility.EditorToggle(rect, (styleValue & 32) == 32, k_SmallcapsLabel, TMP_UIStyleManager.alignmentButtonRight) ? 32 : 0; // Smallcaps - if (EditorGUI.EndChangeCheck() && v6 > 0) - { - selected = v6; - } - - if (selected > 0) - { - v4 = selected == 8 ? 8 : 0; - v5 = selected == 16 ? 16 : 0; - v6 = selected == 32 ? 32 : 0; - } - } - else - { - rect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight + 2f); - - EditorGUI.PrefixLabel(rect, k_FontStyleLabel); - - int styleValue = m_FontStyleProp.intValue; - - rect.x += EditorGUIUtility.labelWidth; - rect.width -= EditorGUIUtility.labelWidth; - rect.width = Mathf.Max(25f, rect.width / 4f); - - v1 = TMP_EditorUtility.EditorToggle(rect, (styleValue & 1) == 1, k_BoldLabel, TMP_UIStyleManager.alignmentButtonLeft) ? 1 : 0; // Bold - rect.x += rect.width; - v2 = TMP_EditorUtility.EditorToggle(rect, (styleValue & 2) == 2, k_ItalicLabel, TMP_UIStyleManager.alignmentButtonMid) ? 2 : 0; // Italics - rect.x += rect.width; - v3 = TMP_EditorUtility.EditorToggle(rect, (styleValue & 4) == 4, k_UnderlineLabel, TMP_UIStyleManager.alignmentButtonMid) ? 4 : 0; // Underline - rect.x += rect.width; - v7 = TMP_EditorUtility.EditorToggle(rect, (styleValue & 64) == 64, k_StrikethroughLabel, TMP_UIStyleManager.alignmentButtonRight) ? 64 : 0; // Strikethrough - - rect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight + 2f); - - rect.x += EditorGUIUtility.labelWidth; - rect.width -= EditorGUIUtility.labelWidth; - - rect.width = Mathf.Max(25f, rect.width / 4f); - - int selected = 0; - - EditorGUI.BeginChangeCheck(); - v4 = TMP_EditorUtility.EditorToggle(rect, (styleValue & 8) == 8, k_LowercaseLabel, TMP_UIStyleManager.alignmentButtonLeft) ? 8 : 0; // Lowercase - if (EditorGUI.EndChangeCheck() && v4 > 0) - { - selected = v4; - } - rect.x += rect.width; - EditorGUI.BeginChangeCheck(); - v5 = TMP_EditorUtility.EditorToggle(rect, (styleValue & 16) == 16, k_UppercaseLabel, TMP_UIStyleManager.alignmentButtonMid) ? 16 : 0; // Uppercase - if (EditorGUI.EndChangeCheck() && v5 > 0) - { - selected = v5; - } - rect.x += rect.width; - EditorGUI.BeginChangeCheck(); - v6 = TMP_EditorUtility.EditorToggle(rect, (styleValue & 32) == 32, k_SmallcapsLabel, TMP_UIStyleManager.alignmentButtonRight) ? 32 : 0; // Smallcaps - if (EditorGUI.EndChangeCheck() && v6 > 0) - { - selected = v6; - } - - if (selected > 0) - { - v4 = selected == 8 ? 8 : 0; - v5 = selected == 16 ? 16 : 0; - v6 = selected == 32 ? 32 : 0; - } - } - - if (EditorGUI.EndChangeCheck()) - { - m_FontStyleProp.intValue = v1 + v2 + v3 + v4 + v5 + v6 + v7; - m_HavePropertiesChanged = true; - } - - // FONT SIZE - EditorGUI.BeginChangeCheck(); - - EditorGUI.BeginDisabledGroup(m_AutoSizingProp.boolValue); - EditorGUILayout.PropertyField(m_FontSizeProp, k_FontSizeLabel, GUILayout.MaxWidth(EditorGUIUtility.labelWidth + 50f)); - EditorGUI.EndDisabledGroup(); - - if (EditorGUI.EndChangeCheck()) - { - float fontSize = Mathf.Clamp(m_FontSizeProp.floatValue, 0, 32767); - - m_FontSizeProp.floatValue = fontSize; - m_FontSizeBaseProp.floatValue = fontSize; - m_HavePropertiesChanged = true; - } - - EditorGUI.indentLevel += 1; - - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_AutoSizingProp, k_AutoSizeLabel); - if (EditorGUI.EndChangeCheck()) - { - if (m_AutoSizingProp.boolValue == false) - m_FontSizeProp.floatValue = m_FontSizeBaseProp.floatValue; - - m_HavePropertiesChanged = true; - } - - // Show auto sizing options - if (m_AutoSizingProp.boolValue) - { - rect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight); - - EditorGUI.PrefixLabel(rect, k_AutoSizeOptionsLabel); - - int previousIndent = EditorGUI.indentLevel; - - EditorGUI.indentLevel = 0; - - rect.width = (rect.width - EditorGUIUtility.labelWidth) / 4f; - rect.x += EditorGUIUtility.labelWidth; - - EditorGUIUtility.labelWidth = 24; - EditorGUI.BeginChangeCheck(); - EditorGUI.PropertyField(rect, m_FontSizeMinProp, k_MinLabel); - if (EditorGUI.EndChangeCheck()) - { - float minSize = m_FontSizeMinProp.floatValue; - - minSize = Mathf.Max(0, minSize); - - m_FontSizeMinProp.floatValue = Mathf.Min(minSize, m_FontSizeMaxProp.floatValue); - m_HavePropertiesChanged = true; - } - rect.x += rect.width; - - EditorGUIUtility.labelWidth = 27; - EditorGUI.BeginChangeCheck(); - EditorGUI.PropertyField(rect, m_FontSizeMaxProp, k_MaxLabel); - if (EditorGUI.EndChangeCheck()) - { - float maxSize = Mathf.Clamp(m_FontSizeMaxProp.floatValue, 0, 32767); - - m_FontSizeMaxProp.floatValue = Mathf.Max(m_FontSizeMinProp.floatValue, maxSize); - m_HavePropertiesChanged = true; - } - rect.x += rect.width; - - EditorGUI.BeginChangeCheck(); - EditorGUIUtility.labelWidth = 36; - EditorGUI.PropertyField(rect, m_CharWidthMaxAdjProp, k_WdLabel); - rect.x += rect.width; - EditorGUIUtility.labelWidth = 28; - EditorGUI.PropertyField(rect, m_LineSpacingMaxProp, k_LineLabel); - - EditorGUIUtility.labelWidth = 0; - - if (EditorGUI.EndChangeCheck()) - { - m_CharWidthMaxAdjProp.floatValue = Mathf.Clamp(m_CharWidthMaxAdjProp.floatValue, 0, 50); - m_LineSpacingMaxProp.floatValue = Mathf.Min(0, m_LineSpacingMaxProp.floatValue); - m_HavePropertiesChanged = true; - } - - EditorGUI.indentLevel = previousIndent; - } - - EditorGUI.indentLevel -= 1; - - - - EditorGUILayout.Space(); - } - - void DrawColor() - { - // FACE VERTEX COLOR - EditorGUI.BeginChangeCheck(); - Color vertexColor = EditorGUILayout.ColorField(k_BaseColorLabel, m_FontColorProp.colorValue, false, true, false); - if (EditorGUI.EndChangeCheck()) - { - m_FontColorProp.colorValue = vertexColor; - m_HavePropertiesChanged = true; - } - - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_EnableVertexGradientProp, k_ColorGradientLabel); - if (EditorGUI.EndChangeCheck()) - { - m_HavePropertiesChanged = true; - } - - EditorGUIUtility.fieldWidth = 0; - - if (m_EnableVertexGradientProp.boolValue) - { - EditorGUI.indentLevel += 1; - - EditorGUI.BeginChangeCheck(); - - EditorGUILayout.PropertyField(m_FontColorGradientPresetProp, k_ColorPresetLabel); - - SerializedObject obj = null; - - SerializedProperty colorMode; - - SerializedProperty topLeft; - SerializedProperty topRight; - SerializedProperty bottomLeft; - SerializedProperty bottomRight; - - if (m_FontColorGradientPresetProp.objectReferenceValue == null) - { - colorMode = m_ColorModeProp; - topLeft = m_FontColorGradientProp.FindPropertyRelative("topLeft"); - topRight = m_FontColorGradientProp.FindPropertyRelative("topRight"); - bottomLeft = m_FontColorGradientProp.FindPropertyRelative("bottomLeft"); - bottomRight = m_FontColorGradientProp.FindPropertyRelative("bottomRight"); - } - else - { - obj = new SerializedObject(m_FontColorGradientPresetProp.objectReferenceValue); - colorMode = obj.FindProperty("colorMode"); - topLeft = obj.FindProperty("topLeft"); - topRight = obj.FindProperty("topRight"); - bottomLeft = obj.FindProperty("bottomLeft"); - bottomRight = obj.FindProperty("bottomRight"); - } - - EditorGUILayout.PropertyField(colorMode, k_ColorModeLabel); - - var rect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight * (EditorGUIUtility.wideMode ? 1 : 2)); - - EditorGUI.PrefixLabel(rect, k_CorenerColorsLabel); - - rect.x += EditorGUIUtility.labelWidth; - rect.width = rect.width - EditorGUIUtility.labelWidth; - - switch ((ColorMode)colorMode.enumValueIndex) - { - case ColorMode.Single: - TMP_EditorUtility.DrawColorProperty(rect, topLeft); - - topRight.colorValue = topLeft.colorValue; - bottomLeft.colorValue = topLeft.colorValue; - bottomRight.colorValue = topLeft.colorValue; - break; - case ColorMode.HorizontalGradient: - rect.width /= 2f; - - TMP_EditorUtility.DrawColorProperty(rect, topLeft); - - rect.x += rect.width; - - TMP_EditorUtility.DrawColorProperty(rect, topRight); - - bottomLeft.colorValue = topLeft.colorValue; - bottomRight.colorValue = topRight.colorValue; - break; - case ColorMode.VerticalGradient: - TMP_EditorUtility.DrawColorProperty(rect, topLeft); - - rect = EditorGUILayout.GetControlRect(false, EditorGUIUtility.singleLineHeight * (EditorGUIUtility.wideMode ? 1 : 2)); - rect.x += EditorGUIUtility.labelWidth; - - TMP_EditorUtility.DrawColorProperty(rect, bottomLeft); - - topRight.colorValue = topLeft.colorValue; - bottomRight.colorValue = bottomLeft.colorValue; - break; - case ColorMode.FourCornersGradient: - rect.width /= 2f; - - TMP_EditorUtility.DrawColorProperty(rect, topLeft); - - rect.x += rect.width; - - TMP_EditorUtility.DrawColorProperty(rect, topRight); - - rect = EditorGUILayout.GetControlRect(false, EditorGUIUtility.singleLineHeight * (EditorGUIUtility.wideMode ? 1 : 2)); - rect.x += EditorGUIUtility.labelWidth; - rect.width = (rect.width - EditorGUIUtility.labelWidth) / 2f; - - TMP_EditorUtility.DrawColorProperty(rect, bottomLeft); - - rect.x += rect.width; - - TMP_EditorUtility.DrawColorProperty(rect, bottomRight); - break; - } - - if (EditorGUI.EndChangeCheck()) - { - m_HavePropertiesChanged = true; - if (obj != null) - { - obj.ApplyModifiedProperties(); - TMPro_EventManager.ON_COLOR_GRADIENT_PROPERTY_CHANGED(m_FontColorGradientPresetProp.objectReferenceValue as TMP_ColorGradient); - } - } - - EditorGUI.indentLevel -= 1; - } - - EditorGUILayout.PropertyField(m_OverrideHtmlColorProp, k_OverrideTagsLabel); - - EditorGUILayout.Space(); - } - - void DrawSpacing() - { - // CHARACTER, LINE & PARAGRAPH SPACING - EditorGUI.BeginChangeCheck(); - - Rect rect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight); - - EditorGUI.PrefixLabel(rect, k_SpacingOptionsLabel); - - int oldIndent = EditorGUI.indentLevel; - EditorGUI.indentLevel = 0; - - rect.x += EditorGUIUtility.labelWidth; - rect.width = (rect.width - EditorGUIUtility.labelWidth - 3f) / 2f; - - EditorGUIUtility.labelWidth = Mathf.Min(rect.width * 0.55f, 80f); - - EditorGUI.PropertyField(rect, m_CharacterSpacingProp, k_CharacterSpacingLabel); - rect.x += rect.width + 3f; - EditorGUI.PropertyField(rect, m_WordSpacingProp, k_WordSpacingLabel); - - rect = EditorGUILayout.GetControlRect(false, EditorGUIUtility.singleLineHeight); - EditorGUIUtility.labelWidth = 0; - rect.x += EditorGUIUtility.labelWidth; - rect.width = (rect.width - EditorGUIUtility.labelWidth -3f) / 2f; - EditorGUIUtility.labelWidth = Mathf.Min(rect.width * 0.55f, 80f); - - EditorGUI.PropertyField(rect, m_LineSpacingProp, k_LineSpacingLabel); - rect.x += rect.width + 3f; - EditorGUI.PropertyField(rect, m_ParagraphSpacingProp, k_ParagraphSpacingLabel); - - EditorGUIUtility.labelWidth = 0; - EditorGUI.indentLevel = oldIndent; - - if (EditorGUI.EndChangeCheck()) - { - m_HavePropertiesChanged = true; - } - - EditorGUILayout.Space(); - } - - void DrawAlignment() - { - // TEXT ALIGNMENT - EditorGUI.BeginChangeCheck(); - - Rect rect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.currentViewWidth > 504 ? 20 : 40 + 3); - - EditorGUI.PrefixLabel(rect, k_AlignmentLabel); - rect.x += EditorGUIUtility.labelWidth; - - EditorGUI.PropertyField(rect, m_HorizontalAlignmentProp, GUIContent.none); - EditorGUI.PropertyField(rect, m_VerticalAlignmentProp, GUIContent.none); - - // WRAPPING RATIOS shown if Justified mode is selected. - if (((HorizontalAlignmentOptions)m_HorizontalAlignmentProp.intValue & HorizontalAlignmentOptions.Justified) == HorizontalAlignmentOptions.Justified || ((HorizontalAlignmentOptions)m_HorizontalAlignmentProp.intValue & HorizontalAlignmentOptions.Flush) == HorizontalAlignmentOptions.Flush) - DrawPropertySlider(k_WrapMixLabel, m_WordWrappingRatiosProp); - - if (EditorGUI.EndChangeCheck()) - m_HavePropertiesChanged = true; - - EditorGUILayout.Space(); - } - - void DrawWrappingOverflow() - { - // TEXT WRAPPING - EditorGUI.BeginChangeCheck(); - int wrapSelection = EditorGUILayout.Popup(k_WrappingLabel, m_EnableWordWrappingProp.boolValue ? 1 : 0, k_WrappingOptions); - if (EditorGUI.EndChangeCheck()) - { - m_EnableWordWrappingProp.boolValue = wrapSelection == 1; - m_HavePropertiesChanged = true; - m_TextComponent.m_isInputParsingRequired = true; - } - - // TEXT OVERFLOW - EditorGUI.BeginChangeCheck(); - - if ((TextOverflowModes)m_TextOverflowModeProp.enumValueIndex == TextOverflowModes.Linked) - { - EditorGUILayout.BeginHorizontal(); - - float fieldWidth = EditorGUIUtility.fieldWidth; - EditorGUIUtility.fieldWidth = 65; - EditorGUILayout.PropertyField(m_TextOverflowModeProp, k_OverflowLabel); - EditorGUIUtility.fieldWidth = fieldWidth; - - EditorGUILayout.PropertyField(m_LinkedTextComponentProp, GUIContent.none); - - EditorGUILayout.EndHorizontal(); - - if (GUI.changed) - { - TMP_Text linkedComponent = m_LinkedTextComponentProp.objectReferenceValue as TMP_Text; - - if (linkedComponent == null) - { - m_LinkedTextComponentProp.objectReferenceValue = null; - - if (m_PreviousLinkedTextComponent != null) - m_TextComponent.ReleaseLinkedTextComponent(m_PreviousLinkedTextComponent); - } - else if (m_TextComponent.IsSelfOrLinkedAncestor(linkedComponent)) - { - m_LinkedTextComponentProp.objectReferenceValue = m_PreviousLinkedTextComponent; - } - else - { - if (m_PreviousLinkedTextComponent != null) - m_TextComponent.ReleaseLinkedTextComponent(m_PreviousLinkedTextComponent); - - m_LinkedTextComponentProp.objectReferenceValue = linkedComponent; - linkedComponent.parentLinkedComponent = m_TextComponent; - m_PreviousLinkedTextComponent = linkedComponent; - } - } - } - else if ((TextOverflowModes)m_TextOverflowModeProp.enumValueIndex == TextOverflowModes.Page) - { - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.PropertyField(m_TextOverflowModeProp, k_OverflowLabel); - EditorGUILayout.PropertyField(m_PageToDisplayProp, GUIContent.none); - EditorGUILayout.EndHorizontal(); - - if (m_PreviousLinkedTextComponent) - { - m_TextComponent.ReleaseLinkedTextComponent(m_PreviousLinkedTextComponent); - - m_TextComponent.linkedTextComponent = null; - } - } - else - { - EditorGUILayout.PropertyField(m_TextOverflowModeProp, k_OverflowLabel); - - if (m_PreviousLinkedTextComponent) - { - m_TextComponent.ReleaseLinkedTextComponent(m_PreviousLinkedTextComponent); - - m_TextComponent.linkedTextComponent = null; - } - } - - if (EditorGUI.EndChangeCheck()) - { - m_HavePropertiesChanged = true; - m_TextComponent.m_isInputParsingRequired = true; - } - - EditorGUILayout.Space(); - } - - protected abstract void DrawExtraSettings(); - - protected void DrawMargins() - { - EditorGUI.BeginChangeCheck(); - DrawMarginProperty(m_MarginProp, k_MarginsLabel); - if (EditorGUI.EndChangeCheck()) - { - m_HavePropertiesChanged = true; - } - - EditorGUILayout.Space(); - } - - protected void DrawGeometrySorting() - { - EditorGUI.BeginChangeCheck(); - - EditorGUILayout.PropertyField(m_GeometrySortingOrderProp, k_GeometrySortingLabel); - - if (EditorGUI.EndChangeCheck()) - m_HavePropertiesChanged = true; - - EditorGUILayout.Space(); - } - - protected void DrawIsTextObjectScaleStatic() - { - EditorGUI.BeginChangeCheck(); - - EditorGUILayout.PropertyField(m_IsTextObjectScaleStaticProp, k_IsTextObjectScaleStatic); - - if (EditorGUI.EndChangeCheck()) - { - m_TextComponent.isTextObjectScaleStatic = m_IsTextObjectScaleStaticProp.boolValue; - m_HavePropertiesChanged = true; - } - - EditorGUILayout.Space(); - } - - - protected void DrawRichText() - { - EditorGUI.BeginChangeCheck(); - - EditorGUILayout.PropertyField(m_IsRichTextProp, k_RichTextLabel); - if (EditorGUI.EndChangeCheck()) - m_HavePropertiesChanged = true; - } - - protected void DrawParsing() - { - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_EnableEscapeCharacterParsingProp, k_EscapeCharactersLabel); - EditorGUILayout.PropertyField(m_UseMaxVisibleDescenderProp, k_VisibleDescenderLabel); - - if (EditorGUI.EndChangeCheck()) - m_HavePropertiesChanged = true; - - EditorGUILayout.Space(); - } - - protected void DrawSpriteAsset() - { - EditorGUI.BeginChangeCheck(); - - EditorGUILayout.PropertyField(m_SpriteAssetProp, k_SpriteAssetLabel, true); - - if (EditorGUI.EndChangeCheck()) - m_HavePropertiesChanged = true; - - EditorGUILayout.Space(); - } - - protected void DrawStyleSheet() - { - EditorGUI.BeginChangeCheck(); - - EditorGUILayout.PropertyField(m_StyleSheetAssetProp, k_StyleSheetAssetLabel, true); - - if (EditorGUI.EndChangeCheck()) - { - m_StyleNames = GetStyleNames(); - m_HavePropertiesChanged = true; - } - - EditorGUILayout.Space(); - } - - protected void DrawTextureMapping() - { - // TEXTURE MAPPING OPTIONS - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_HorizontalMappingProp, k_HorizontalMappingLabel); - EditorGUILayout.PropertyField(m_VerticalMappingProp, k_VerticalMappingLabel); - if (EditorGUI.EndChangeCheck()) - { - m_HavePropertiesChanged = true; - } - - // UV OPTIONS - if (m_HorizontalMappingProp.enumValueIndex > 0) - { - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_UvLineOffsetProp, k_LineOffsetLabel, GUILayout.MinWidth(70f)); - if (EditorGUI.EndChangeCheck()) - { - m_HavePropertiesChanged = true; - } - } - - EditorGUILayout.Space(); - } - - protected void DrawKerning() - { - // KERNING - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_EnableKerningProp, k_KerningLabel); - if (EditorGUI.EndChangeCheck()) - { - m_HavePropertiesChanged = true; - } - } - - protected void DrawPadding() - { - // EXTRA PADDING - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_EnableExtraPaddingProp, k_PaddingLabel); - if (EditorGUI.EndChangeCheck()) - { - m_HavePropertiesChanged = true; - m_CheckPaddingRequiredProp.boolValue = true; - } - } - - /// - /// Method to retrieve the material presets that match the currently selected font asset. - /// - protected GUIContent[] GetMaterialPresets() - { - TMP_FontAsset fontAsset = m_FontAssetProp.objectReferenceValue as TMP_FontAsset; - if (fontAsset == null) return null; - - m_MaterialPresets = TMP_EditorUtility.FindMaterialReferences(fontAsset); - m_MaterialPresetNames = new GUIContent[m_MaterialPresets.Length]; - - m_MaterialPresetIndexLookup.Clear(); - - for (int i = 0; i < m_MaterialPresetNames.Length; i++) - { - m_MaterialPresetNames[i] = new GUIContent(m_MaterialPresets[i].name); - - m_MaterialPresetIndexLookup.Add(m_MaterialPresets[i].GetInstanceID(), i); - - //if (m_TargetMaterial.GetInstanceID() == m_MaterialPresets[i].GetInstanceID()) - // m_MaterialPresetSelectionIndex = i; - } - - m_IsPresetListDirty = false; - - return m_MaterialPresetNames; - } - - protected GUIContent[] GetStyleNames() - { - k_AvailableStyles.Clear(); - m_TextStyleIndexLookup.Clear(); - m_Styles.Clear(); - - // First style on the list is always the Normal default style. - TMP_Style styleNormal = TMP_Style.NormalStyle; - - m_Styles.Add(styleNormal); - m_TextStyleIndexLookup.Add(styleNormal.hashCode, 0); - - k_AvailableStyles.Add(styleNormal.hashCode, styleNormal); - - // Get styles from Style Sheet potentially assigned to the text object. - TMP_StyleSheet localStyleSheet = (TMP_StyleSheet)m_StyleSheetAssetProp.objectReferenceValue; - - if (localStyleSheet != null) - { - int styleCount = localStyleSheet.styles.Count; - - for (int i = 0; i < styleCount; i++) - { - TMP_Style style = localStyleSheet.styles[i]; - - if (k_AvailableStyles.ContainsKey(style.hashCode) == false) - { - k_AvailableStyles.Add(style.hashCode, style); - m_Styles.Add(style); - m_TextStyleIndexLookup.Add(style.hashCode, m_TextStyleIndexLookup.Count); - } - } - } - - // Get styles from TMP Settings' default style sheet. - TMP_StyleSheet globalStyleSheet = TMP_Settings.defaultStyleSheet; - - if (globalStyleSheet != null) - { - int styleCount = globalStyleSheet.styles.Count; - - for (int i = 0; i < styleCount; i++) - { - TMP_Style style = globalStyleSheet.styles[i]; - - if (k_AvailableStyles.ContainsKey(style.hashCode) == false) - { - k_AvailableStyles.Add(style.hashCode, style); - m_Styles.Add(style); - m_TextStyleIndexLookup.Add(style.hashCode, m_TextStyleIndexLookup.Count); - } - } - } - - // Create array that will contain the list of available styles. - GUIContent[] styleNames = k_AvailableStyles.Values.Select(item => new GUIContent(item.name)).ToArray(); - - // Set text style index - m_TextStyleIndexLookup.TryGetValue(m_TextStyleHashCodeProp.intValue, out m_StyleSelectionIndex); - - return styleNames; - } - - // DRAW MARGIN PROPERTY - protected void DrawMarginProperty(SerializedProperty property, GUIContent label) - { - Rect rect = EditorGUILayout.GetControlRect(false, 2 * 18); - - EditorGUI.BeginProperty(rect, label, property); - - Rect pos0 = new Rect(rect.x, rect.y + 2, rect.width - 15, 18); - - float width = rect.width + 3; - pos0.width = EditorGUIUtility.labelWidth; - EditorGUI.PrefixLabel(pos0, label); - - Vector4 margins = property.vector4Value; - - float widthB = width - EditorGUIUtility.labelWidth; - float fieldWidth = widthB / 4; - pos0.width = Mathf.Max(fieldWidth - 5, 45f); - - // Labels - pos0.x = EditorGUIUtility.labelWidth + 15; - margins.x = DrawMarginField(pos0, "Left", margins.x); - - pos0.x += fieldWidth; - margins.y = DrawMarginField(pos0, "Top", margins.y); - - pos0.x += fieldWidth; - margins.z = DrawMarginField(pos0, "Right", margins.z); - - pos0.x += fieldWidth; - margins.w = DrawMarginField(pos0, "Bottom", margins.w); - - property.vector4Value = margins; - - EditorGUI.EndProperty(); - } - - float DrawMarginField(Rect position, string label, float value) - { - int controlId = GUIUtility.GetControlID(FocusType.Keyboard, position); - EditorGUI.PrefixLabel(position, controlId, new GUIContent(label)); - - Rect dragZone = new Rect(position.x, position.y, position.width, position.height); - position.y += EditorGUIUtility.singleLineHeight; - - return EditorGUI.DoFloatField(EditorGUI.s_RecycledEditor, position, dragZone, controlId, value, EditorGUI.kFloatFieldFormatString, EditorStyles.numberField, true); - } - - protected void DrawPropertySlider(GUIContent label, SerializedProperty property) - { - Rect rect = EditorGUILayout.GetControlRect(false, 17); - - GUIContent content = label ?? GUIContent.none; - EditorGUI.Slider(new Rect(rect.x, rect.y, rect.width, rect.height), property, 0.0f, 1.0f, content); - } - - protected abstract bool IsMixSelectionTypes(); - - // Special Handling of Undo / Redo Events. - protected abstract void OnUndoRedo(); - - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_BaseShaderGUI.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_BaseShaderGUI.cs deleted file mode 100644 index 5fd33ce..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_BaseShaderGUI.cs +++ /dev/null @@ -1,551 +0,0 @@ -using UnityEngine; -using UnityEditor; - -namespace TMPro.EditorUtilities -{ - /// Base class for TextMesh Pro shader GUIs. - public abstract class TMP_BaseShaderGUI : ShaderGUI - { - /// Representation of a #pragma shader_feature. - /// It is assumed that the first feature option is for no keyword (underscores). - protected class ShaderFeature - { - public string undoLabel; - - public GUIContent label; - - /// The keyword labels, for display. Include the no-keyword as the first option. - public GUIContent[] keywordLabels; - - /// The shader keywords. Exclude the no-keyword option. - public string[] keywords; - - int m_State; - - public bool Active - { - get { return m_State >= 0; } - } - - public int State - { - get { return m_State; } - } - - public void ReadState(Material material) - { - for (int i = 0; i < keywords.Length; i++) - { - if (material.IsKeywordEnabled(keywords[i])) - { - m_State = i; - return; - } - } - - m_State = -1; - } - - public void SetActive(bool active, Material material) - { - m_State = active ? 0 : -1; - SetStateKeywords(material); - } - - public void DoPopup(MaterialEditor editor, Material material) - { - EditorGUI.BeginChangeCheck(); - int selection = EditorGUILayout.Popup(label, m_State + 1, keywordLabels); - if (EditorGUI.EndChangeCheck()) - { - m_State = selection - 1; - editor.RegisterPropertyChangeUndo(undoLabel); - SetStateKeywords(material); - } - } - - void SetStateKeywords(Material material) - { - for (int i = 0; i < keywords.Length; i++) - { - if (i == m_State) - { - material.EnableKeyword(keywords[i]); - } - else - { - material.DisableKeyword(keywords[i]); - } - } - } - } - - static GUIContent s_TempLabel = new GUIContent(); - - protected static bool s_DebugExtended; - - static int s_UndoRedoCount, s_LastSeenUndoRedoCount; - - static float[][] s_TempFloats = - { - null, new float[1], new float[2], new float[3], new float[4] - }; - - protected static GUIContent[] s_XywhVectorLabels = - { - new GUIContent("X"), - new GUIContent("Y"), - new GUIContent("W", "Width"), - new GUIContent("H", "Height") - }; - - protected static GUIContent[] s_LbrtVectorLabels = - { - new GUIContent("L", "Left"), - new GUIContent("B", "Bottom"), - new GUIContent("R", "Right"), - new GUIContent("T", "Top") - }; - - protected static GUIContent[] s_CullingTypeLabels = - { - new GUIContent("Off"), - new GUIContent("Front"), - new GUIContent("Back") - }; - - static TMP_BaseShaderGUI() - { - // Keep track of how many undo/redo events happened. - Undo.undoRedoPerformed += () => s_UndoRedoCount += 1; - } - - bool m_IsNewGUI = true; - - float m_DragAndDropMinY; - - protected MaterialEditor m_Editor; - - protected Material m_Material; - - protected MaterialProperty[] m_Properties; - - void PrepareGUI() - { - m_IsNewGUI = false; - ShaderUtilities.GetShaderPropertyIDs(); - - // New GUI just got constructed. This happens in response to a selection, - // but also after undo/redo events. - if (s_LastSeenUndoRedoCount != s_UndoRedoCount) - { - // There's been at least one undo/redo since the last time this GUI got constructed. - // Maybe the undo/redo was for this material? Assume that is was. - TMPro_EventManager.ON_MATERIAL_PROPERTY_CHANGED(true, m_Material as Material); - } - - s_LastSeenUndoRedoCount = s_UndoRedoCount; - } - - public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties) - { - m_Editor = materialEditor; - m_Material = materialEditor.target as Material; - this.m_Properties = properties; - - if (m_IsNewGUI) - { - PrepareGUI(); - } - - DoDragAndDropBegin(); - EditorGUI.BeginChangeCheck(); - DoGUI(); - if (EditorGUI.EndChangeCheck()) - { - TMPro_EventManager.ON_MATERIAL_PROPERTY_CHANGED(true, m_Material); - } - - DoDragAndDropEnd(); - } - - /// Override this method to create the specific shader GUI. - protected abstract void DoGUI(); - - static string[] s_PanelStateLabel = new string[] { "\t- Click to collapse -", "\t- Click to expand -" }; - - protected bool BeginPanel(string panel, bool expanded) - { - EditorGUI.indentLevel = 0; - - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - Rect r = EditorGUI.IndentedRect(GUILayoutUtility.GetRect(20, 18)); - r.x += 20; - r.width += 6; - - bool enabled = GUI.enabled; - GUI.enabled = true; - expanded = TMP_EditorUtility.EditorToggle(r, expanded, new GUIContent(panel), TMP_UIStyleManager.panelTitle); - r.width -= 30; - EditorGUI.LabelField(r, new GUIContent(expanded ? s_PanelStateLabel[0] : s_PanelStateLabel[1]), TMP_UIStyleManager.rightLabel); - GUI.enabled = enabled; - - EditorGUI.indentLevel += 1; - EditorGUI.BeginDisabledGroup(false); - - return expanded; - } - - protected bool BeginPanel(string panel, ShaderFeature feature, bool expanded, bool readState = true) - { - EditorGUI.indentLevel = 0; - - if (readState) - { - feature.ReadState(m_Material); - } - - EditorGUI.BeginChangeCheck(); - - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - GUILayout.BeginHorizontal(); - - Rect r = EditorGUI.IndentedRect(GUILayoutUtility.GetRect(20, 20, GUILayout.Width(20f))); - bool active = EditorGUI.Toggle(r, feature.Active); - - if (EditorGUI.EndChangeCheck()) - { - m_Editor.RegisterPropertyChangeUndo(feature.undoLabel); - feature.SetActive(active, m_Material); - } - - r = EditorGUI.IndentedRect(GUILayoutUtility.GetRect(20, 18)); - r.width += 6; - - bool enabled = GUI.enabled; - GUI.enabled = true; - expanded = TMP_EditorUtility.EditorToggle(r, expanded, new GUIContent(panel), TMP_UIStyleManager.panelTitle); - r.width -= 10; - EditorGUI.LabelField(r, new GUIContent(expanded ? s_PanelStateLabel[0] : s_PanelStateLabel[1]), TMP_UIStyleManager.rightLabel); - GUI.enabled = enabled; - - GUILayout.EndHorizontal(); - - EditorGUI.indentLevel += 1; - EditorGUI.BeginDisabledGroup(!active); - - return expanded; - } - - public void EndPanel() - { - EditorGUI.EndDisabledGroup(); - EditorGUI.indentLevel -= 1; - EditorGUILayout.EndVertical(); - } - - MaterialProperty BeginProperty(string name) - { - MaterialProperty property = FindProperty(name, m_Properties); - EditorGUI.BeginChangeCheck(); - EditorGUI.showMixedValue = property.hasMixedValue; - m_Editor.BeginAnimatedCheck(Rect.zero, property); - - return property; - } - - bool EndProperty() - { - m_Editor.EndAnimatedCheck(); - EditorGUI.showMixedValue = false; - return EditorGUI.EndChangeCheck(); - } - - protected void DoPopup(string name, string label, GUIContent[] options) - { - MaterialProperty property = BeginProperty(name); - s_TempLabel.text = label; - int index = EditorGUILayout.Popup(s_TempLabel, (int)property.floatValue, options); - if (EndProperty()) - { - property.floatValue = index; - } - } - - protected void DoCubeMap(string name, string label) - { - DoTexture(name, label, typeof(Cubemap)); - } - - protected void DoTexture2D(string name, string label, bool withTilingOffset = false, string[] speedNames = null) - { - DoTexture(name, label, typeof(Texture2D), withTilingOffset, speedNames); - } - - void DoTexture(string name, string label, System.Type type, bool withTilingOffset = false, string[] speedNames = null) - { - MaterialProperty property = FindProperty(name, m_Properties); - m_Editor.BeginAnimatedCheck(Rect.zero, property); - - Rect rect = EditorGUILayout.GetControlRect(true, 60f); - float totalWidth = rect.width; - rect.width = EditorGUIUtility.labelWidth + 60f; - s_TempLabel.text = label; - - EditorGUI.BeginChangeCheck(); - Object tex = EditorGUI.ObjectField(rect, s_TempLabel, property.textureValue, type, false); - if (EditorGUI.EndChangeCheck()) - { - property.textureValue = tex as Texture; - } - - rect.x += rect.width + 4f; - rect.width = totalWidth - rect.width - 4f; - rect.height = EditorGUIUtility.singleLineHeight; - - if (withTilingOffset) - { - DoTilingOffset(rect, property); - rect.y += (rect.height + 2f) * 2f; - } - - m_Editor.EndAnimatedCheck(); - - if (speedNames != null) - { - DoUVSpeed(rect, speedNames); - } - } - - void DoTilingOffset(Rect rect, MaterialProperty property) - { - float labelWidth = EditorGUIUtility.labelWidth; - int indentLevel = EditorGUI.indentLevel; - EditorGUI.indentLevel = 0; - EditorGUIUtility.labelWidth = Mathf.Min(40f, rect.width * 0.20f); - - Vector4 vector = property.textureScaleAndOffset; - - bool changed = false; - float[] values = s_TempFloats[2]; - - s_TempLabel.text = "Tiling"; - Rect vectorRect = EditorGUI.PrefixLabel(rect, s_TempLabel); - values[0] = vector.x; - values[1] = vector.y; - - EditorGUI.BeginChangeCheck(); - EditorGUI.MultiFloatField(vectorRect, s_XywhVectorLabels, values); - if (EditorGUI.EndChangeCheck()) - { - vector.x = values[0]; - vector.y = values[1]; - changed = true; - } - - rect.y += rect.height + 2f; - s_TempLabel.text = "Offset"; - vectorRect = EditorGUI.PrefixLabel(rect, s_TempLabel); - values[0] = vector.z; - values[1] = vector.w; - - EditorGUI.BeginChangeCheck(); - EditorGUI.MultiFloatField(vectorRect, s_XywhVectorLabels, values); - if (EditorGUI.EndChangeCheck()) - { - vector.z = values[0]; - vector.w = values[1]; - changed = true; - } - - if (changed) - { - property.textureScaleAndOffset = vector; - } - - EditorGUIUtility.labelWidth = labelWidth; - EditorGUI.indentLevel = indentLevel; - } - - protected void DoUVSpeed(Rect rect, string[] names) - { - float labelWidth = EditorGUIUtility.labelWidth; - int indentLevel = EditorGUI.indentLevel; - EditorGUI.indentLevel = 0; - EditorGUIUtility.labelWidth = Mathf.Min(40f, rect.width * 0.20f); - - s_TempLabel.text = "Speed"; - rect = EditorGUI.PrefixLabel(rect, s_TempLabel); - - EditorGUIUtility.labelWidth = 13f; - rect.width = rect.width * 0.5f - 1f; - DoFloat(rect, names[0], "X"); - rect.x += rect.width + 2f; - DoFloat(rect, names[1], "Y"); - EditorGUIUtility.labelWidth = labelWidth; - EditorGUI.indentLevel = indentLevel; - } - - protected void DoToggle(string name, string label) - { - MaterialProperty property = BeginProperty(name); - s_TempLabel.text = label; - bool value = EditorGUILayout.Toggle(s_TempLabel, property.floatValue == 1f); - if (EndProperty()) - { - property.floatValue = value ? 1f : 0f; - } - } - - protected void DoFloat(string name, string label) - { - MaterialProperty property = BeginProperty(name); - Rect rect = EditorGUILayout.GetControlRect(); - rect.width = EditorGUIUtility.labelWidth + 55f; - s_TempLabel.text = label; - float value = EditorGUI.FloatField(rect, s_TempLabel, property.floatValue); - if (EndProperty()) - { - property.floatValue = value; - } - } - - protected void DoColor(string name, string label) - { - MaterialProperty property = BeginProperty(name); - s_TempLabel.text = label; - Color value = EditorGUI.ColorField(EditorGUILayout.GetControlRect(), s_TempLabel, property.colorValue, false, true, true); - if (EndProperty()) - { - property.colorValue = value; - } - } - - void DoFloat(Rect rect, string name, string label) - { - MaterialProperty property = BeginProperty(name); - s_TempLabel.text = label; - float value = EditorGUI.FloatField(rect, s_TempLabel, property.floatValue); - if (EndProperty()) - { - property.floatValue = value; - } - } - - protected void DoSlider(string name, string label) - { - MaterialProperty property = BeginProperty(name); - Vector2 range = property.rangeLimits; - s_TempLabel.text = label; - float value = EditorGUI.Slider( - EditorGUILayout.GetControlRect(), s_TempLabel, property.floatValue, range.x, range.y - ); - if (EndProperty()) - { - property.floatValue = value; - } - } - - protected void DoVector3(string name, string label) - { - MaterialProperty property = BeginProperty(name); - s_TempLabel.text = label; - Vector4 value = EditorGUILayout.Vector3Field(s_TempLabel, property.vectorValue); - if (EndProperty()) - { - property.vectorValue = value; - } - } - - protected void DoVector(string name, string label, GUIContent[] subLabels) - { - MaterialProperty property = BeginProperty(name); - Rect rect = EditorGUILayout.GetControlRect(); - s_TempLabel.text = label; - rect = EditorGUI.PrefixLabel(rect, s_TempLabel); - Vector4 vector = property.vectorValue; - - float[] values = s_TempFloats[subLabels.Length]; - for (int i = 0; i < subLabels.Length; i++) - { - values[i] = vector[i]; - } - - EditorGUI.MultiFloatField(rect, subLabels, values); - if (EndProperty()) - { - for (int i = 0; i < subLabels.Length; i++) - { - vector[i] = values[i]; - } - - property.vectorValue = vector; - } - } - - void DoDragAndDropBegin() - { - m_DragAndDropMinY = GUILayoutUtility.GetRect(0f, 0f, GUILayout.ExpandWidth(true)).y; - } - - void DoDragAndDropEnd() - { - Rect rect = GUILayoutUtility.GetRect(0f, 0f, GUILayout.ExpandWidth(true)); - Event evt = Event.current; - if (evt.type == EventType.DragUpdated) - { - DragAndDrop.visualMode = DragAndDropVisualMode.Generic; - evt.Use(); - } - else if ( - evt.type == EventType.DragPerform && - Rect.MinMaxRect(rect.xMin, m_DragAndDropMinY, rect.xMax, rect.yMax).Contains(evt.mousePosition) - ) - { - DragAndDrop.AcceptDrag(); - evt.Use(); - Material droppedMaterial = DragAndDrop.objectReferences[0] as Material; - if (droppedMaterial && droppedMaterial != m_Material) - { - PerformDrop(droppedMaterial); - } - } - } - - void PerformDrop(Material droppedMaterial) - { - Texture droppedTex = droppedMaterial.GetTexture(ShaderUtilities.ID_MainTex); - if (!droppedTex) - { - return; - } - - Texture currentTex = m_Material.GetTexture(ShaderUtilities.ID_MainTex); - TMP_FontAsset requiredFontAsset = null; - if (droppedTex != currentTex) - { - requiredFontAsset = TMP_EditorUtility.FindMatchingFontAsset(droppedMaterial); - if (!requiredFontAsset) - { - return; - } - } - - foreach (GameObject o in Selection.gameObjects) - { - if (requiredFontAsset) - { - TMP_Text textComponent = o.GetComponent(); - if (textComponent) - { - Undo.RecordObject(textComponent, "Font Asset Change"); - textComponent.font = requiredFontAsset; - } - } - - TMPro_EventManager.ON_DRAG_AND_DROP_MATERIAL_CHANGED(o, m_Material, droppedMaterial); - EditorUtility.SetDirty(o); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_BitmapShaderGUI.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_BitmapShaderGUI.cs deleted file mode 100644 index be39959..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_BitmapShaderGUI.cs +++ /dev/null @@ -1,93 +0,0 @@ -using UnityEngine; -using UnityEditor; - -namespace TMPro.EditorUtilities -{ - public class TMP_BitmapShaderGUI : TMP_BaseShaderGUI - { - static bool s_Face = true; - - protected override void DoGUI() - { - s_Face = BeginPanel("Face", s_Face); - if (s_Face) - { - DoFacePanel(); - } - - EndPanel(); - - s_DebugExtended = BeginPanel("Debug Settings", s_DebugExtended); - if (s_DebugExtended) - { - DoDebugPanel(); - } - - EndPanel(); - } - - void DoFacePanel() - { - EditorGUI.indentLevel += 1; - if (m_Material.HasProperty(ShaderUtilities.ID_FaceTex)) - { - DoColor("_FaceColor", "Color"); - DoTexture2D("_FaceTex", "Texture", true); - } - else - { - DoColor("_Color", "Color"); - DoSlider("_DiffusePower", "Diffuse Power"); - } - - EditorGUI.indentLevel -= 1; - - EditorGUILayout.Space(); - } - - void DoDebugPanel() - { - EditorGUI.indentLevel += 1; - DoTexture2D("_MainTex", "Font Atlas"); - if (m_Material.HasProperty(ShaderUtilities.ID_VertexOffsetX)) - { - if (m_Material.HasProperty(ShaderUtilities.ID_Padding)) - { - EditorGUILayout.Space(); - DoFloat("_Padding", "Padding"); - } - - EditorGUILayout.Space(); - DoFloat("_VertexOffsetX", "Offset X"); - DoFloat("_VertexOffsetY", "Offset Y"); - } - - if (m_Material.HasProperty(ShaderUtilities.ID_MaskSoftnessX)) - { - EditorGUILayout.Space(); - DoFloat("_MaskSoftnessX", "Softness X"); - DoFloat("_MaskSoftnessY", "Softness Y"); - DoVector("_ClipRect", "Clip Rect", s_LbrtVectorLabels); - } - - if (m_Material.HasProperty(ShaderUtilities.ID_StencilID)) - { - EditorGUILayout.Space(); - DoFloat("_Stencil", "Stencil ID"); - DoFloat("_StencilComp", "Stencil Comp"); - } - - if (m_Material.HasProperty(ShaderUtilities.ShaderTag_CullMode)) - { - EditorGUILayout.Space(); - DoPopup("_CullMode", "Cull Mode", s_CullingTypeLabels); - } - - EditorGUILayout.Space(); - - EditorGUI.indentLevel -= 1; - - EditorGUILayout.Space(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_CharacterPropertyDrawer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_CharacterPropertyDrawer.cs deleted file mode 100644 index 98f32c7..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_CharacterPropertyDrawer.cs +++ /dev/null @@ -1,235 +0,0 @@ -using UnityEngine; -using UnityEngine.TextCore; -using UnityEngine.TextCore.LowLevel; -using UnityEditor; -using System.Collections; - - -namespace TMPro.EditorUtilities -{ - [CustomPropertyDrawer(typeof(TMP_Character))] - public class TMP_CharacterPropertyDrawer : PropertyDrawer - { - private string k_ColorProperty = "_Color"; - - int m_GlyphSelectedForEditing = -1; - - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - SerializedProperty prop_Unicode = property.FindPropertyRelative("m_Unicode"); - SerializedProperty prop_GlyphIndex = property.FindPropertyRelative("m_GlyphIndex"); - SerializedProperty prop_Scale = property.FindPropertyRelative("m_Scale"); - - - GUIStyle style = new GUIStyle(EditorStyles.label); - style.richText = true; - - EditorGUIUtility.labelWidth = 40f; - EditorGUIUtility.fieldWidth = 50; - - Rect rect = new Rect(position.x + 50, position.y, position.width, 49); - - // Display non-editable fields - if (GUI.enabled == false) - { - int unicode = prop_Unicode.intValue; - EditorGUI.LabelField(new Rect(rect.x, rect.y, 120f, 18), new GUIContent("Unicode: 0x" + unicode.ToString("X") + ""), style); - EditorGUI.LabelField(new Rect(rect.x + 115, rect.y, 120f, 18), unicode <= 0xFFFF ? new GUIContent("UTF16: \\u" + unicode.ToString("X4") + "") : new GUIContent("UTF32: \\U" + unicode.ToString("X8") + ""), style); - EditorGUI.LabelField(new Rect(rect.x, rect.y + 18, 120, 18), new GUIContent("Glyph ID: " + prop_GlyphIndex.intValue + ""), style); - EditorGUI.LabelField(new Rect(rect.x, rect.y + 36, 80, 18), new GUIContent("Scale: " + prop_Scale.floatValue + ""), style); - - // Draw Glyph (if exists) - DrawGlyph(position, property); - } - else // Display editable fields - { - EditorGUIUtility.labelWidth = 55f; - GUI.SetNextControlName("Unicode Input"); - EditorGUI.BeginChangeCheck(); - string unicode = EditorGUI.TextField(new Rect(rect.x, rect.y, 120, 18), "Unicode:", prop_Unicode.intValue.ToString("X")); - - if (GUI.GetNameOfFocusedControl() == "Unicode Input") - { - //Filter out unwanted characters. - char chr = Event.current.character; - if ((chr < '0' || chr > '9') && (chr < 'a' || chr > 'f') && (chr < 'A' || chr > 'F')) - { - Event.current.character = '\0'; - } - } - - if (EditorGUI.EndChangeCheck()) - { - // Update Unicode value - prop_Unicode.intValue = TMP_TextUtilities.StringHexToInt(unicode); - } - - // Cache current glyph index in case it needs to be restored if the new glyph index is invalid. - int currentGlyphIndex = prop_GlyphIndex.intValue; - - EditorGUIUtility.labelWidth = 59f; - EditorGUI.BeginChangeCheck(); - EditorGUI.DelayedIntField(new Rect(rect.x, rect.y + 18, 100, 18), prop_GlyphIndex, new GUIContent("Glyph ID:")); - if (EditorGUI.EndChangeCheck()) - { - // Get a reference to the font asset - TMP_FontAsset fontAsset = property.serializedObject.targetObject as TMP_FontAsset; - - // Make sure new glyph index is valid. - int elementIndex = fontAsset.glyphTable.FindIndex(item => item.index == prop_GlyphIndex.intValue); - - if (elementIndex == -1) - prop_GlyphIndex.intValue = currentGlyphIndex; - else - fontAsset.IsFontAssetLookupTablesDirty = true; - } - - int glyphIndex = prop_GlyphIndex.intValue; - - // Reset glyph selection if new character has been selected. - if (GUI.enabled && m_GlyphSelectedForEditing != glyphIndex) - m_GlyphSelectedForEditing = -1; - - // Display button to edit the glyph data. - if (GUI.Button(new Rect(rect.x + 120, rect.y + 18, 75, 18), new GUIContent("Edit Glyph"))) - { - if (m_GlyphSelectedForEditing == -1) - m_GlyphSelectedForEditing = glyphIndex; - else - m_GlyphSelectedForEditing = -1; - - // Button clicks should not result in potential change. - GUI.changed = false; - } - - // Show the glyph property drawer if selected - if (glyphIndex == m_GlyphSelectedForEditing && GUI.enabled) - { - // Get a reference to the font asset - TMP_FontAsset fontAsset = property.serializedObject.targetObject as TMP_FontAsset; - - if (fontAsset != null) - { - // Get the index of the glyph in the font asset glyph table. - int elementIndex = fontAsset.glyphTable.FindIndex(item => item.index == glyphIndex); - - if (elementIndex != -1) - { - SerializedProperty prop_GlyphTable = property.serializedObject.FindProperty("m_GlyphTable"); - SerializedProperty prop_Glyph = prop_GlyphTable.GetArrayElementAtIndex(elementIndex); - - SerializedProperty prop_GlyphMetrics = prop_Glyph.FindPropertyRelative("m_Metrics"); - SerializedProperty prop_GlyphRect = prop_Glyph.FindPropertyRelative("m_GlyphRect"); - - Rect newRect = EditorGUILayout.GetControlRect(false, 115); - EditorGUI.DrawRect(new Rect(newRect.x + 52, newRect.y - 20, newRect.width - 52, newRect.height - 5), new Color(0.1f, 0.1f, 0.1f, 0.45f)); - EditorGUI.DrawRect(new Rect(newRect.x + 53, newRect.y - 19, newRect.width - 54, newRect.height - 7), new Color(0.3f, 0.3f, 0.3f, 0.8f)); - - // Display GlyphRect - newRect.x += 55; - newRect.y -= 18; - newRect.width += 5; - EditorGUI.PropertyField(newRect, prop_GlyphRect); - - // Display GlyphMetrics - newRect.y += 45; - EditorGUI.PropertyField(newRect, prop_GlyphMetrics); - - rect.y += 120; - } - } - } - - EditorGUIUtility.labelWidth = 39f; - EditorGUI.PropertyField(new Rect(rect.x, rect.y + 36, 80, 18), prop_Scale, new GUIContent("Scale:")); - - // Draw Glyph (if exists) - DrawGlyph(position, property); - } - } - - public override float GetPropertyHeight(SerializedProperty property, GUIContent label) - { - return 58; - } - - void DrawGlyph(Rect position, SerializedProperty property) - { - // Get a reference to the atlas texture - TMP_FontAsset fontAsset = property.serializedObject.targetObject as TMP_FontAsset; - - if (fontAsset == null) - return; - - // Get a reference to the Glyph Table - SerializedProperty prop_GlyphTable = property.serializedObject.FindProperty("m_GlyphTable"); - int glyphIndex = property.FindPropertyRelative("m_GlyphIndex").intValue; - int elementIndex = fontAsset.glyphTable.FindIndex(item => item.index == glyphIndex); - - // Return if we can't find the glyph - if (elementIndex == -1) - return; - - SerializedProperty prop_Glyph = prop_GlyphTable.GetArrayElementAtIndex(elementIndex); - - // Get reference to atlas texture. - int atlasIndex = prop_Glyph.FindPropertyRelative("m_AtlasIndex").intValue; - Texture2D atlasTexture = fontAsset.atlasTextures.Length > atlasIndex ? fontAsset.atlasTextures[atlasIndex] : null; - - if (atlasTexture == null) - return; - - Material mat; - if (((GlyphRasterModes)fontAsset.atlasRenderMode & GlyphRasterModes.RASTER_MODE_BITMAP) == GlyphRasterModes.RASTER_MODE_BITMAP) - { - mat = TMP_FontAssetEditor.internalBitmapMaterial; - - if (mat == null) - return; - - mat.mainTexture = atlasTexture; - mat.SetColor(k_ColorProperty, Color.white); - } - else - { - mat = TMP_FontAssetEditor.internalSDFMaterial; - - if (mat == null) - return; - - mat.mainTexture = atlasTexture; - mat.SetFloat(ShaderUtilities.ID_GradientScale, fontAsset.atlasPadding + 1); - } - - // Draw glyph - Rect glyphDrawPosition = new Rect(position.x, position.y, 48, 58); - - SerializedProperty glyphRectProperty = prop_Glyph.FindPropertyRelative("m_GlyphRect"); - - int padding = fontAsset.atlasPadding; - - int glyphOriginX = glyphRectProperty.FindPropertyRelative("m_X").intValue - padding; - int glyphOriginY = glyphRectProperty.FindPropertyRelative("m_Y").intValue - padding; - int glyphWidth = glyphRectProperty.FindPropertyRelative("m_Width").intValue + padding * 2; - int glyphHeight = glyphRectProperty.FindPropertyRelative("m_Height").intValue + padding * 2; - - float normalizedHeight = fontAsset.faceInfo.ascentLine - fontAsset.faceInfo.descentLine; - float scale = glyphDrawPosition.width / normalizedHeight; - - // Compute the normalized texture coordinates - Rect texCoords = new Rect((float)glyphOriginX / atlasTexture.width, (float)glyphOriginY / atlasTexture.height, (float)glyphWidth / atlasTexture.width, (float)glyphHeight / atlasTexture.height); - - if (Event.current.type == EventType.Repaint) - { - glyphDrawPosition.x += (glyphDrawPosition.width - glyphWidth * scale) / 2; - glyphDrawPosition.y += (glyphDrawPosition.height - glyphHeight * scale) / 2; - glyphDrawPosition.width = glyphWidth * scale; - glyphDrawPosition.height = glyphHeight * scale; - - // Could switch to using the default material of the font asset which would require passing scale to the shader. - Graphics.DrawTexture(glyphDrawPosition, atlasTexture, texCoords, 0, 0, 0, 0, new Color(1f, 1f, 1f), mat); - } - } - - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_ColorGradientAssetMenu.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_ColorGradientAssetMenu.cs deleted file mode 100644 index d7ca885..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_ColorGradientAssetMenu.cs +++ /dev/null @@ -1,50 +0,0 @@ -using UnityEditor; -using UnityEngine; -using System.IO; -using System.Collections; - - - -namespace TMPro.EditorUtilities -{ - - public static class TMP_ColorGradientAssetMenu - { - [MenuItem("Assets/Create/TextMeshPro/Color Gradient", false, 115)] - public static void CreateColorGradient(MenuCommand context) - { - string filePath; - - if (Selection.assetGUIDs.Length == 0) - filePath = "Assets/New TMP Color Gradient.asset"; - else - filePath = AssetDatabase.GUIDToAssetPath(Selection.assetGUIDs[0]); - - if (Directory.Exists(filePath)) - { - filePath += "/New TMP Color Gradient.asset"; - } - else - { - filePath = Path.GetDirectoryName(filePath) + "/New TMP Color Gradient.asset"; - } - - filePath = AssetDatabase.GenerateUniqueAssetPath(filePath); - - // Create new Color Gradient Asset. - TMP_ColorGradient colorGradient = ScriptableObject.CreateInstance(); - - // Create Asset - AssetDatabase.CreateAsset(colorGradient, filePath); - - //EditorUtility.SetDirty(colorGradient); - - AssetDatabase.SaveAssets(); - - AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(colorGradient)); - - EditorUtility.FocusProjectWindow(); - EditorGUIUtility.PingObject(colorGradient); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_ColorGradientEditor.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_ColorGradientEditor.cs deleted file mode 100644 index ca79435..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_ColorGradientEditor.cs +++ /dev/null @@ -1,146 +0,0 @@ -using UnityEngine; -using UnityEditor; -using System.Collections; - - -namespace TMPro.EditorUtilities -{ - [CustomEditor(typeof(TMP_ColorGradient))] - public class TMP_ColorGradientEditor : Editor - { - SerializedProperty m_ColorMode; - SerializedProperty m_TopLeftColor; - SerializedProperty m_TopRightColor; - SerializedProperty m_BottomLeftColor; - SerializedProperty m_BottomRightColor; - - void OnEnable() - { - m_ColorMode = serializedObject.FindProperty("colorMode"); - m_TopLeftColor = serializedObject.FindProperty("topLeft"); - m_TopRightColor = serializedObject.FindProperty("topRight"); - m_BottomLeftColor = serializedObject.FindProperty("bottomLeft"); - m_BottomRightColor = serializedObject.FindProperty("bottomRight"); - } - - public override void OnInspectorGUI() - { - serializedObject.Update(); - - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_ColorMode, new GUIContent("Color Mode")); - if (EditorGUI.EndChangeCheck()) - { - switch ((ColorMode)m_ColorMode.enumValueIndex) - { - case ColorMode.Single: - m_TopRightColor.colorValue = m_TopLeftColor.colorValue; - m_BottomLeftColor.colorValue = m_TopLeftColor.colorValue; - m_BottomRightColor.colorValue = m_TopLeftColor.colorValue; - break; - case ColorMode.HorizontalGradient: - m_BottomLeftColor.colorValue = m_TopLeftColor.colorValue; - m_BottomRightColor.colorValue = m_TopRightColor.colorValue; - break; - case ColorMode.VerticalGradient: - m_TopRightColor.colorValue = m_TopLeftColor.colorValue; - m_BottomRightColor.colorValue = m_BottomLeftColor.colorValue; - break; - } - } - Rect rect; - switch ((ColorMode)m_ColorMode.enumValueIndex) - { - case ColorMode.Single: - EditorGUI.BeginChangeCheck(); - rect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight * (EditorGUIUtility.wideMode ? 1 : 2)); - EditorGUI.PrefixLabel(rect, new GUIContent("Colors")); - rect.x += EditorGUIUtility.labelWidth; - rect.width = (rect.width - EditorGUIUtility.labelWidth) / (EditorGUIUtility.wideMode ? 1f : 2f); - TMP_EditorUtility.DrawColorProperty(rect, m_TopLeftColor); - if (EditorGUI.EndChangeCheck()) - { - m_TopRightColor.colorValue = m_TopLeftColor.colorValue; - m_BottomLeftColor.colorValue = m_TopLeftColor.colorValue; - m_BottomRightColor.colorValue = m_TopLeftColor.colorValue; - } - break; - - case ColorMode.HorizontalGradient: - rect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight * (EditorGUIUtility.wideMode ? 1 : 2)); - EditorGUI.PrefixLabel(rect, new GUIContent("Colors")); - rect.x += EditorGUIUtility.labelWidth; - rect.width = (rect.width - EditorGUIUtility.labelWidth) / 2f; - - EditorGUI.BeginChangeCheck(); - TMP_EditorUtility.DrawColorProperty(rect, m_TopLeftColor); - if (EditorGUI.EndChangeCheck()) - { - m_BottomLeftColor.colorValue = m_TopLeftColor.colorValue; - } - - rect.x += rect.width; - - EditorGUI.BeginChangeCheck(); - TMP_EditorUtility.DrawColorProperty(rect, m_TopRightColor); - if (EditorGUI.EndChangeCheck()) - { - m_BottomRightColor.colorValue = m_TopRightColor.colorValue; - } - break; - - case ColorMode.VerticalGradient: - rect = EditorGUILayout.GetControlRect(false, EditorGUIUtility.singleLineHeight * (EditorGUIUtility.wideMode ? 1 : 2)); - EditorGUI.PrefixLabel(rect, new GUIContent("Colors")); - rect.x += EditorGUIUtility.labelWidth; - rect.width = (rect.width - EditorGUIUtility.labelWidth) / (EditorGUIUtility.wideMode ? 1f : 2f); - rect.height = EditorGUIUtility.singleLineHeight * (EditorGUIUtility.wideMode ? 1 : 2); - - EditorGUI.BeginChangeCheck(); - TMP_EditorUtility.DrawColorProperty(rect, m_TopLeftColor); - if (EditorGUI.EndChangeCheck()) - { - m_TopRightColor.colorValue = m_TopLeftColor.colorValue; - } - - rect = EditorGUILayout.GetControlRect(false, EditorGUIUtility.singleLineHeight * (EditorGUIUtility.wideMode ? 1 : 2)); - rect.x += EditorGUIUtility.labelWidth; - rect.width = (rect.width - EditorGUIUtility.labelWidth) / (EditorGUIUtility.wideMode ? 1f : 2f); - rect.height = EditorGUIUtility.singleLineHeight * (EditorGUIUtility.wideMode ? 1 : 2); - - EditorGUI.BeginChangeCheck(); - TMP_EditorUtility.DrawColorProperty(rect, m_BottomLeftColor); - if (EditorGUI.EndChangeCheck()) - { - m_BottomRightColor.colorValue = m_BottomLeftColor.colorValue; - } - break; - - case ColorMode.FourCornersGradient: - rect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight * (EditorGUIUtility.wideMode ? 1 : 2)); - EditorGUI.PrefixLabel(rect, new GUIContent("Colors")); - rect.x += EditorGUIUtility.labelWidth; - rect.width = (rect.width - EditorGUIUtility.labelWidth) / 2f; - rect.height = EditorGUIUtility.singleLineHeight * (EditorGUIUtility.wideMode ? 1 : 2); - - TMP_EditorUtility.DrawColorProperty(rect, m_TopLeftColor); - rect.x += rect.width; - TMP_EditorUtility.DrawColorProperty(rect, m_TopRightColor); - - rect = EditorGUILayout.GetControlRect(false, EditorGUIUtility.singleLineHeight * (EditorGUIUtility.wideMode ? 1 : 2)); - rect.x += EditorGUIUtility.labelWidth; - rect.width = (rect.width - EditorGUIUtility.labelWidth) / 2f; - rect.height = EditorGUIUtility.singleLineHeight * (EditorGUIUtility.wideMode ? 1 : 2); - - TMP_EditorUtility.DrawColorProperty(rect, m_BottomLeftColor); - rect.x += rect.width; - TMP_EditorUtility.DrawColorProperty(rect, m_BottomRightColor); - break; - } - - if (serializedObject.ApplyModifiedProperties()) - TMPro_EventManager.ON_COLOR_GRADIENT_PROPERTY_CHANGED(target as TMP_ColorGradient); - - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_DropdownEditor.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_DropdownEditor.cs deleted file mode 100644 index 48f8e2b..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_DropdownEditor.cs +++ /dev/null @@ -1,57 +0,0 @@ -using UnityEngine; -using UnityEditor; -using UnityEditor.UI; -using UnityEngine.UI; - -namespace TMPro.EditorUtilities -{ - [CustomEditor(typeof(TMP_Dropdown), true)] - [CanEditMultipleObjects] - public class DropdownEditor : SelectableEditor - { - SerializedProperty m_Template; - SerializedProperty m_CaptionText; - SerializedProperty m_CaptionImage; - SerializedProperty m_Placeholder; - SerializedProperty m_ItemText; - SerializedProperty m_ItemImage; - SerializedProperty m_OnSelectionChanged; - SerializedProperty m_Value; - SerializedProperty m_AlphaFadeSpeed; - SerializedProperty m_Options; - - protected override void OnEnable() - { - base.OnEnable(); - m_Template = serializedObject.FindProperty("m_Template"); - m_CaptionText = serializedObject.FindProperty("m_CaptionText"); - m_CaptionImage = serializedObject.FindProperty("m_CaptionImage"); - m_Placeholder = serializedObject.FindProperty("m_Placeholder"); - m_ItemText = serializedObject.FindProperty("m_ItemText"); - m_ItemImage = serializedObject.FindProperty("m_ItemImage"); - m_OnSelectionChanged = serializedObject.FindProperty("m_OnValueChanged"); - m_Value = serializedObject.FindProperty("m_Value"); - m_AlphaFadeSpeed = serializedObject.FindProperty("m_AlphaFadeSpeed"); - m_Options = serializedObject.FindProperty("m_Options"); - } - - public override void OnInspectorGUI() - { - base.OnInspectorGUI(); - EditorGUILayout.Space(); - - serializedObject.Update(); - EditorGUILayout.PropertyField(m_Template); - EditorGUILayout.PropertyField(m_CaptionText); - EditorGUILayout.PropertyField(m_CaptionImage); - EditorGUILayout.PropertyField(m_Placeholder); - EditorGUILayout.PropertyField(m_ItemText); - EditorGUILayout.PropertyField(m_ItemImage); - EditorGUILayout.PropertyField(m_Value); - EditorGUILayout.PropertyField(m_AlphaFadeSpeed); - EditorGUILayout.PropertyField(m_Options); - EditorGUILayout.PropertyField(m_OnSelectionChanged); - serializedObject.ApplyModifiedProperties(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_EditorCoroutine.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_EditorCoroutine.cs deleted file mode 100644 index e005603..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_EditorCoroutine.cs +++ /dev/null @@ -1,96 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using UnityEditor; -using UnityEngine; - - -namespace TMPro.EditorUtilities -{ - /// - /// Simple implementation of coroutine working in the Unity Editor. - /// - public class TMP_EditorCoroutine - { - //private static Dictionary s_ActiveCoroutines; - - readonly IEnumerator coroutine; - - /// - /// Constructor - /// - /// - TMP_EditorCoroutine(IEnumerator routine) - { - this.coroutine = routine; - } - - - /// - /// Starts a new EditorCoroutine. - /// - /// Coroutine - /// new EditorCoroutine - public static TMP_EditorCoroutine StartCoroutine(IEnumerator routine) - { - TMP_EditorCoroutine coroutine = new TMP_EditorCoroutine(routine); - coroutine.Start(); - - // Add coroutine to tracking list - //if (s_ActiveCoroutines == null) - // s_ActiveCoroutines = new Dictionary(); - - // Add new instance of editor coroutine to dictionary. - //s_ActiveCoroutines.Add(coroutine.GetHashCode(), coroutine); - - return coroutine; - } - - - /// - /// Clear delegate list - /// - //public static void StopAllEditorCoroutines() - //{ - // EditorApplication.update = null; - //} - - - /// - /// Register callback for editor updates - /// - void Start() - { - EditorApplication.update += EditorUpdate; - } - - - /// - /// Unregister callback for editor updates. - /// - public void Stop() - { - if (EditorApplication.update != null) - EditorApplication.update -= EditorUpdate; - - //s_ActiveCoroutines.Remove(this.GetHashCode()); - } - - - /// - /// Delegate function called on editor updates. - /// - void EditorUpdate() - { - // Stop editor coroutine if it does not continue. - if (coroutine.MoveNext() == false) - Stop(); - - // Process the different types of EditorCoroutines. - if (coroutine.Current != null) - { - - } - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_EditorPanel.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_EditorPanel.cs deleted file mode 100644 index a03494f..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_EditorPanel.cs +++ /dev/null @@ -1,191 +0,0 @@ -using UnityEngine; -using UnityEditor; -using UnityEditor.Presets; - -namespace TMPro.EditorUtilities -{ - - [CustomEditor(typeof(TextMeshPro), true), CanEditMultipleObjects] - public class TMP_EditorPanel : TMP_BaseEditorPanel - { - static readonly GUIContent k_SortingLayerLabel = new GUIContent("Sorting Layer", "Name of the Renderer's sorting layer."); - static readonly GUIContent k_OrderInLayerLabel = new GUIContent("Order in Layer", "Renderer's order within a sorting layer."); - static readonly GUIContent k_OrthographicLabel = new GUIContent("Orthographic Mode", "Should be enabled when using an orthographic camera. Instructs the shader to not perform any perspective correction."); - static readonly GUIContent k_VolumetricLabel = new GUIContent("Volumetric Setup", "Use cubes rather than quads to render the text. Allows for volumetric rendering when combined with a compatible shader."); - - private static string[] k_SortingLayerNames; - bool IsPreset; - - SerializedProperty m_IsVolumetricTextProp; - SerializedProperty m_IsOrthographicProp; - Renderer m_Renderer; - - protected override void OnEnable() - { - base.OnEnable(); - - // Determine if the inspected object is a Preset - IsPreset = (int)(target as Component).gameObject.hideFlags == 93; - - m_IsOrthographicProp = serializedObject.FindProperty("m_isOrthographic"); - - m_IsVolumetricTextProp = serializedObject.FindProperty("m_isVolumetricText"); - - m_Renderer = m_TextComponent.GetComponent(); - - // Populate Sorting Layer Names - k_SortingLayerNames = SortingLayerHelper.sortingLayerNames; - } - - protected override void DrawExtraSettings() - { - Rect rect = EditorGUILayout.GetControlRect(false, 24); - - if (GUI.Button(rect, new GUIContent("Extra Settings"), TMP_UIStyleManager.sectionHeader)) - Foldout.extraSettings = !Foldout.extraSettings; - - GUI.Label(rect, (Foldout.extraSettings ? "" : k_UiStateLabel[1]), TMP_UIStyleManager.rightLabel); - - if (Foldout.extraSettings) - { - //EditorGUI.indentLevel += 1; - - DrawMargins(); - - DrawSortingLayer(); - - DrawGeometrySorting(); - - DrawIsTextObjectScaleStatic(); - - DrawOrthographicMode(); - - DrawRichText(); - - DrawParsing(); - - DrawSpriteAsset(); - - DrawStyleSheet(); - - //DrawVolumetricSetup(); - - DrawKerning(); - - DrawPadding(); - - //EditorGUI.indentLevel -= 1; - } - } - - protected void DrawSortingLayer() - { - Undo.RecordObject(m_Renderer, "Sorting Layer Change"); - - EditorGUI.BeginChangeCheck(); - - TextMeshPro textComponent = (TextMeshPro)m_TextComponent; - - // Look up the layer name using the current layer ID - string oldName = IsPreset ? SortingLayer.IDToName(textComponent._SortingLayerID) : SortingLayer.IDToName(textComponent.sortingLayerID); - - // Use the name to look up our array index into the names list - int oldLayerIndex = System.Array.IndexOf(k_SortingLayerNames, oldName); - - // Show the pop-up for the names - EditorGUIUtility.fieldWidth = 0f; - int newLayerIndex = EditorGUILayout.Popup(k_SortingLayerLabel, oldLayerIndex, k_SortingLayerNames); - - // If the index changes, look up the ID for the new index to store as the new ID - if (newLayerIndex != oldLayerIndex) - UpdateTargetsSortingLayerID(SortingLayer.NameToID(k_SortingLayerNames[newLayerIndex])); - - // Get value from internal property if target is a Preset otherwise from the public property - int oldSortingOrder = IsPreset ? textComponent._SortingOrder : textComponent.sortingOrder; - - int newSortingLayerOrder = EditorGUILayout.IntField(k_OrderInLayerLabel, oldSortingOrder); - - if (newSortingLayerOrder != textComponent.sortingOrder) - UpdateTargetsSortingOrder(newSortingLayerOrder); - - if (EditorGUI.EndChangeCheck()) - m_HavePropertiesChanged = true; - - EditorGUILayout.Space(); - } - - protected void DrawOrthographicMode() - { - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_IsOrthographicProp, k_OrthographicLabel); - if (EditorGUI.EndChangeCheck()) - m_HavePropertiesChanged = true; - } - - protected void DrawVolumetricSetup() - { - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_IsVolumetricTextProp, k_VolumetricLabel); - if (EditorGUI.EndChangeCheck()) - { - m_HavePropertiesChanged = true; - m_TextComponent.textInfo.ResetVertexLayout(m_IsVolumetricTextProp.boolValue); - } - - EditorGUILayout.Space(); - } - - // Method to handle multi object selection - protected override bool IsMixSelectionTypes() - { - GameObject[] objects = Selection.gameObjects; - if (objects.Length > 1) - { - for (int i = 0; i < objects.Length; i++) - { - if (objects[i].GetComponent() == null) - return true; - } - } - return false; - } - - protected override void OnUndoRedo() - { - int undoEventId = Undo.GetCurrentGroup(); - int lastUndoEventId = s_EventId; - - if (undoEventId != lastUndoEventId) - { - for (int i = 0; i < targets.Length; i++) - { - //Debug.Log("Undo & Redo Performed detected in Editor Panel. Event ID:" + Undo.GetCurrentGroup()); - TMPro_EventManager.ON_TEXTMESHPRO_PROPERTY_CHANGED(true, targets[i] as TextMeshPro); - s_EventId = undoEventId; - } - } - } - - void UpdateTargetsSortingLayerID(int sortingLayerID) - { - for (int i = 0; i < targets.Length; i++) - { - var textComponent = (TextMeshPro)targets[i]; - - if (textComponent != null) - textComponent.sortingLayerID = sortingLayerID; - } - } - - void UpdateTargetsSortingOrder(int sortingOrder) - { - for (int i = 0; i < targets.Length; i++) - { - var textComponent = (TextMeshPro)targets[i]; - - if (textComponent != null) - textComponent.sortingOrder = sortingOrder; - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_EditorPanelUI.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_EditorPanelUI.cs deleted file mode 100644 index c508546..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_EditorPanelUI.cs +++ /dev/null @@ -1,124 +0,0 @@ -using UnityEngine; -using UnityEngine.UI; -using UnityEditor; - -namespace TMPro.EditorUtilities -{ - - [CustomEditor(typeof(TextMeshProUGUI), true), CanEditMultipleObjects] - public class TMP_EditorPanelUI : TMP_BaseEditorPanel - { - static readonly GUIContent k_RaycastTargetLabel = new GUIContent("Raycast Target", "Whether the text blocks raycasts from the Graphic Raycaster."); - static readonly GUIContent k_MaskableLabel = new GUIContent("Maskable", "Determines if the text object will be affected by UI Mask."); - - SerializedProperty m_RaycastTargetProp; - private SerializedProperty m_MaskableProp; - - protected override void OnEnable() - { - base.OnEnable(); - m_RaycastTargetProp = serializedObject.FindProperty("m_RaycastTarget"); - m_MaskableProp = serializedObject.FindProperty("m_Maskable"); - } - - protected override void DrawExtraSettings() - { - Rect rect = EditorGUILayout.GetControlRect(false, 24); - - if (GUI.Button(rect, new GUIContent("Extra Settings"), TMP_UIStyleManager.sectionHeader)) - Foldout.extraSettings = !Foldout.extraSettings; - - GUI.Label(rect, (Foldout.extraSettings ? k_UiStateLabel[0] : k_UiStateLabel[1]), TMP_UIStyleManager.rightLabel); - if (Foldout.extraSettings) - { - //EditorGUI.indentLevel += 1; - - DrawMargins(); - - DrawGeometrySorting(); - - DrawIsTextObjectScaleStatic(); - - DrawRichText(); - - DrawRaycastTarget(); - - DrawMaskable(); - - DrawParsing(); - - DrawSpriteAsset(); - - DrawStyleSheet(); - - DrawKerning(); - - DrawPadding(); - - //EditorGUI.indentLevel -= 1; - } - } - - protected void DrawRaycastTarget() - { - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_RaycastTargetProp, k_RaycastTargetLabel); - if (EditorGUI.EndChangeCheck()) - { - // Change needs to propagate to the child sub objects. - Graphic[] graphicComponents = m_TextComponent.GetComponentsInChildren(); - for (int i = 1; i < graphicComponents.Length; i++) - graphicComponents[i].raycastTarget = m_RaycastTargetProp.boolValue; - - m_HavePropertiesChanged = true; - } - } - - protected void DrawMaskable() - { - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_MaskableProp, k_MaskableLabel); - if (EditorGUI.EndChangeCheck()) - { - m_TextComponent.maskable = m_MaskableProp.boolValue; - - // Change needs to propagate to the child sub objects. - MaskableGraphic[] maskableGraphics = m_TextComponent.GetComponentsInChildren(); - for (int i = 1; i < maskableGraphics.Length; i++) - maskableGraphics[i].maskable = m_MaskableProp.boolValue; - - m_HavePropertiesChanged = true; - } - } - - // Method to handle multi object selection - protected override bool IsMixSelectionTypes() - { - GameObject[] objects = Selection.gameObjects; - if (objects.Length > 1) - { - for (int i = 0; i < objects.Length; i++) - { - if (objects[i].GetComponent() == null) - return true; - } - } - return false; - } - protected override void OnUndoRedo() - { - int undoEventId = Undo.GetCurrentGroup(); - int lastUndoEventId = s_EventId; - - if (undoEventId != lastUndoEventId) - { - for (int i = 0; i < targets.Length; i++) - { - //Debug.Log("Undo & Redo Performed detected in Editor Panel. Event ID:" + Undo.GetCurrentGroup()); - TMPro_EventManager.ON_TEXTMESHPRO_UGUI_PROPERTY_CHANGED(true, targets[i] as TextMeshProUGUI); - s_EventId = undoEventId; - } - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_EditorUtility.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_EditorUtility.cs deleted file mode 100644 index 8869dd3..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_EditorUtility.cs +++ /dev/null @@ -1,451 +0,0 @@ -using UnityEngine; -using UnityEditor; -using System.Text; -using System.IO; -using System.Collections; -using System.Collections.Generic; - - -namespace TMPro.EditorUtilities -{ - - public static class TMP_EditorUtility - { - /// - /// Returns the relative path of the package. - /// - public static string packageRelativePath - { - get - { - if (string.IsNullOrEmpty(m_PackagePath)) - m_PackagePath = GetPackageRelativePath(); - - return m_PackagePath; - } - } - [SerializeField] - private static string m_PackagePath; - - /// - /// Returns the fully qualified path of the package. - /// - public static string packageFullPath - { - get - { - if (string.IsNullOrEmpty(m_PackageFullPath)) - m_PackageFullPath = GetPackageFullPath(); - - return m_PackageFullPath; - } - } - [SerializeField] - private static string m_PackageFullPath; - - - // Static Fields Related to locating the TextMesh Pro Asset - private static string folderPath = "Not Found"; - - private static EditorWindow Gameview; - private static bool isInitialized = false; - - private static void GetGameview() - { - System.Reflection.Assembly assembly = typeof(UnityEditor.EditorWindow).Assembly; - System.Type type = assembly.GetType("UnityEditor.GameView"); - Gameview = EditorWindow.GetWindow(type); - } - - - public static void RepaintAll() - { - if (isInitialized == false) - { - GetGameview(); - isInitialized = true; - } - - SceneView.RepaintAll(); - Gameview.Repaint(); - } - - - /// - /// Create and return a new asset in a smart location based on the current selection and then select it. - /// - /// - /// Name of the new asset. Do not include the .asset extension. - /// - /// - /// The new asset. - /// - public static T CreateAsset(string name) where T : ScriptableObject - { - string path = AssetDatabase.GetAssetPath(Selection.activeObject); - if (path.Length == 0) - { - // no asset selected, place in asset root - path = "Assets/" + name + ".asset"; - } - else if (Directory.Exists(path)) - { - // place in currently selected directory - path += "/" + name + ".asset"; - } - else { - // place in current selection's containing directory - path = Path.GetDirectoryName(path) + "/" + name + ".asset"; - } - T asset = ScriptableObject.CreateInstance(); - AssetDatabase.CreateAsset(asset, AssetDatabase.GenerateUniqueAssetPath(path)); - EditorUtility.FocusProjectWindow(); - Selection.activeObject = asset; - return asset; - } - - - - // Function used to find all materials which reference a font atlas so we can update all their references. - public static Material[] FindMaterialReferences(TMP_FontAsset fontAsset) - { - List refs = new List(); - Material mat = fontAsset.material; - refs.Add(mat); - - // Get materials matching the search pattern. - string searchPattern = "t:Material" + " " + fontAsset.name.Split(new char[] { ' ' })[0]; - string[] materialAssetGUIDs = AssetDatabase.FindAssets(searchPattern); - - for (int i = 0; i < materialAssetGUIDs.Length; i++) - { - string materialPath = AssetDatabase.GUIDToAssetPath(materialAssetGUIDs[i]); - Material targetMaterial = AssetDatabase.LoadAssetAtPath(materialPath); - - if (targetMaterial.HasProperty(ShaderUtilities.ID_MainTex) && targetMaterial.GetTexture(ShaderUtilities.ID_MainTex) != null && mat.GetTexture(ShaderUtilities.ID_MainTex) != null && targetMaterial.GetTexture(ShaderUtilities.ID_MainTex).GetInstanceID() == mat.GetTexture(ShaderUtilities.ID_MainTex).GetInstanceID()) - { - if (!refs.Contains(targetMaterial)) - refs.Add(targetMaterial); - } - else - { - // TODO: Find a more efficient method to unload resources. - //Resources.UnloadAsset(targetMaterial.GetTexture(ShaderUtilities.ID_MainTex)); - } - } - - return refs.ToArray(); - } - - - // Function used to find the Font Asset which matches the given Material Preset and Font Atlas Texture. - public static TMP_FontAsset FindMatchingFontAsset(Material mat) - { - if (mat.GetTexture(ShaderUtilities.ID_MainTex) == null) return null; - - // Find the dependent assets of this material. - string[] dependentAssets = AssetDatabase.GetDependencies(AssetDatabase.GetAssetPath(mat), false); - - for (int i = 0; i < dependentAssets.Length; i++) - { - TMP_FontAsset fontAsset = AssetDatabase.LoadAssetAtPath(dependentAssets[i]); - if (fontAsset != null) - return fontAsset; - } - - return null; - } - - - private static string GetPackageRelativePath() - { - // Check for potential UPM package - string packagePath = Path.GetFullPath("Packages/com.unity.textmeshpro"); - if (Directory.Exists(packagePath)) - { - return "Packages/com.unity.textmeshpro"; - } - - packagePath = Path.GetFullPath("Assets/.."); - if (Directory.Exists(packagePath)) - { - // Search default location for development package - if (Directory.Exists(packagePath + "/Assets/Packages/com.unity.TextMeshPro/Editor Resources")) - { - return "Assets/Packages/com.unity.TextMeshPro"; - } - - // Search for default location of normal TextMesh Pro AssetStore package - if (Directory.Exists(packagePath + "/Assets/TextMesh Pro/Editor Resources")) - { - return "Assets/TextMesh Pro"; - } - - // Search for potential alternative locations in the user project - string[] matchingPaths = Directory.GetDirectories(packagePath, "TextMesh Pro", SearchOption.AllDirectories); - packagePath = ValidateLocation(matchingPaths, packagePath); - if (packagePath != null) return packagePath; - } - - return null; - } - - private static string GetPackageFullPath() - { - // Check for potential UPM package - string packagePath = Path.GetFullPath("Packages/com.unity.textmeshpro"); - if (Directory.Exists(packagePath)) - { - return packagePath; - } - - packagePath = Path.GetFullPath("Assets/.."); - if (Directory.Exists(packagePath)) - { - // Search default location for development package - if (Directory.Exists(packagePath + "/Assets/Packages/com.unity.TextMeshPro/Editor Resources")) - { - return packagePath + "/Assets/Packages/com.unity.TextMeshPro"; - } - - // Search for default location of normal TextMesh Pro AssetStore package - if (Directory.Exists(packagePath + "/Assets/TextMesh Pro/Editor Resources")) - { - return packagePath + "/Assets/TextMesh Pro"; - } - - // Search for potential alternative locations in the user project - string[] matchingPaths = Directory.GetDirectories(packagePath, "TextMesh Pro", SearchOption.AllDirectories); - string path = ValidateLocation(matchingPaths, packagePath); - if (path != null) return packagePath + path; - } - - return null; - } - - - /// - /// Method to validate the location of the asset folder by making sure the GUISkins folder exists. - /// - /// - /// - private static string ValidateLocation(string[] paths, string projectPath) - { - for (int i = 0; i < paths.Length; i++) - { - // Check if any of the matching directories contain a GUISkins directory. - if (Directory.Exists(paths[i] + "/Editor Resources")) - { - folderPath = paths[i].Replace(projectPath, ""); - folderPath = folderPath.TrimStart('\\', '/'); - return folderPath; - } - } - - return null; - } - - - /// - /// Function which returns a string containing a sequence of Decimal character ranges. - /// - /// - /// - public static string GetDecimalCharacterSequence(int[] characterSet) - { - if (characterSet == null || characterSet.Length == 0) - return string.Empty; - - string characterSequence = string.Empty; - int count = characterSet.Length; - int first = characterSet[0]; - int last = first; - - for (int i = 1; i < count; i++) - { - if (characterSet[i - 1] + 1 == characterSet[i]) - { - last = characterSet[i]; - } - else - { - if (first == last) - characterSequence += first + ","; - else - characterSequence += first + "-" + last + ","; - - first = last = characterSet[i]; - } - - } - - // handle the final group - if (first == last) - characterSequence += first; - else - characterSequence += first + "-" + last; - - return characterSequence; - } - - - /// - /// Function which returns a string containing a sequence of Unicode (Hex) character ranges. - /// - /// - /// - public static string GetUnicodeCharacterSequence(int[] characterSet) - { - if (characterSet == null || characterSet.Length == 0) - return string.Empty; - - string characterSequence = string.Empty; - int count = characterSet.Length; - int first = characterSet[0]; - int last = first; - - for (int i = 1; i < count; i++) - { - if (characterSet[i - 1] + 1 == characterSet[i]) - { - last = characterSet[i]; - } - else - { - if (first == last) - characterSequence += first.ToString("X2") + ","; - else - characterSequence += first.ToString("X2") + "-" + last.ToString("X2") + ","; - - first = last = characterSet[i]; - } - - } - - // handle the final group - if (first == last) - characterSequence += first.ToString("X2"); - else - characterSequence += first.ToString("X2") + "-" + last.ToString("X2"); - - return characterSequence; - } - - - /// - /// - /// - /// - /// - /// - public static void DrawBox(Rect rect, float thickness, Color color) - { - EditorGUI.DrawRect(new Rect(rect.x - thickness, rect.y + thickness, rect.width + thickness * 2, thickness), color); - EditorGUI.DrawRect(new Rect(rect.x - thickness, rect.y + thickness, thickness, rect.height - thickness * 2), color); - EditorGUI.DrawRect(new Rect(rect.x - thickness, rect.y + rect.height - thickness * 2, rect.width + thickness * 2, thickness), color); - EditorGUI.DrawRect(new Rect(rect.x + rect.width, rect.y + thickness, thickness, rect.height - thickness * 2), color); - } - - - /// - /// Function to return the horizontal alignment grid value. - /// - /// - /// - public static int GetHorizontalAlignmentGridValue(int value) - { - if ((value & 0x1) == 0x1) - return 0; - else if ((value & 0x2) == 0x2) - return 1; - else if ((value & 0x4) == 0x4) - return 2; - else if ((value & 0x8) == 0x8) - return 3; - else if ((value & 0x10) == 0x10) - return 4; - else if ((value & 0x20) == 0x20) - return 5; - - return 0; - } - - /// - /// Function to return the vertical alignment grid value. - /// - /// - /// - public static int GetVerticalAlignmentGridValue(int value) - { - if ((value & 0x100) == 0x100) - return 0; - if ((value & 0x200) == 0x200) - return 1; - if ((value & 0x400) == 0x400) - return 2; - if ((value & 0x800) == 0x800) - return 3; - if ((value & 0x1000) == 0x1000) - return 4; - if ((value & 0x2000) == 0x2000) - return 5; - - return 0; - } - - public static void DrawColorProperty(Rect rect, SerializedProperty property) - { - int oldIndent = EditorGUI.indentLevel; - EditorGUI.indentLevel = 0; - if (EditorGUIUtility.wideMode) - { - EditorGUI.PropertyField(new Rect(rect.x, rect.y, 50f, rect.height), property, GUIContent.none); - rect.x += 50f; - rect.width = Mathf.Min(100f, rect.width - 55f); - } - else - { - rect.height /= 2f; - rect.width = Mathf.Min(100f, rect.width - 5f); - EditorGUI.PropertyField(rect, property, GUIContent.none); - rect.y += rect.height; - } - - EditorGUI.BeginChangeCheck(); - string colorString = EditorGUI.TextField(rect, string.Format("#{0}", ColorUtility.ToHtmlStringRGBA(property.colorValue))); - if (EditorGUI.EndChangeCheck()) - { - Color color; - if (ColorUtility.TryParseHtmlString(colorString, out color)) - { - property.colorValue = color; - } - } - EditorGUI.indentLevel = oldIndent; - } - - public static bool EditorToggle(Rect position, bool value, GUIContent content, GUIStyle style) - { - var id = GUIUtility.GetControlID(content, FocusType.Keyboard, position); - var evt = Event.current; - - // Toggle selected toggle on space or return key - if (GUIUtility.keyboardControl == id && evt.type == EventType.KeyDown && (evt.keyCode == KeyCode.Space || evt.keyCode == KeyCode.Return || evt.keyCode == KeyCode.KeypadEnter)) - { - value = !value; - evt.Use(); - GUI.changed = true; - } - - if (evt.type == EventType.MouseDown && position.Contains(Event.current.mousePosition)) - { - GUIUtility.keyboardControl = id; - EditorGUIUtility.editingTextField = false; - HandleUtility.Repaint(); - } - - return GUI.Toggle(position, id, value, content, style); - } - - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_FontAssetEditor.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_FontAssetEditor.cs deleted file mode 100644 index 8cf9a79..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_FontAssetEditor.cs +++ /dev/null @@ -1,1717 +0,0 @@ -using UnityEngine; -using UnityEditor; -using UnityEditorInternal; -using System.Collections.Generic; -using UnityEngine.TextCore; -using UnityEngine.TextCore.LowLevel; -using UnityEditor.TextCore.LowLevel; - - -namespace TMPro.EditorUtilities -{ - - [CustomPropertyDrawer(typeof(TMP_FontWeightPair))] - public class FontWeightDrawer : PropertyDrawer - { - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - SerializedProperty prop_regular = property.FindPropertyRelative("regularTypeface"); - SerializedProperty prop_italic = property.FindPropertyRelative("italicTypeface"); - - float width = position.width; - - position.width = EditorGUIUtility.labelWidth; - EditorGUI.LabelField(position, label); - - int oldIndent = EditorGUI.indentLevel; - EditorGUI.indentLevel = 0; - - // NORMAL TYPEFACE - if (label.text[0] == '4') GUI.enabled = false; - position.x += position.width; position.width = (width - position.width) / 2; - EditorGUI.PropertyField(position, prop_regular, GUIContent.none); - - // ITALIC TYPEFACE - GUI.enabled = true; - position.x += position.width; - EditorGUI.PropertyField(position, prop_italic, GUIContent.none); - - EditorGUI.indentLevel = oldIndent; - } - } - - [CustomEditor(typeof(TMP_FontAsset))] - public class TMP_FontAssetEditor : Editor - { - private struct UI_PanelState - { - public static bool faceInfoPanel = true; - public static bool generationSettingsPanel = true; - public static bool fontAtlasInfoPanel = true; - public static bool fontWeightPanel = true; - public static bool fallbackFontAssetPanel = true; - public static bool glyphTablePanel = false; - public static bool characterTablePanel = false; - public static bool fontFeatureTablePanel = false; - } - - private struct AtlasSettings - { - public GlyphRenderMode glyphRenderMode; - public int pointSize; - public int padding; - public int atlasWidth; - public int atlasHeight; - } - - /// - /// Material used to display SDF glyphs in the Character and Glyph tables. - /// - internal static Material internalSDFMaterial - { - get - { - if (s_InternalSDFMaterial == null) - { - Shader shader = Shader.Find("Hidden/TMP/Internal/Editor/Distance Field SSD"); - - if (shader != null) - s_InternalSDFMaterial = new Material(shader); - } - - return s_InternalSDFMaterial; - } - } - static Material s_InternalSDFMaterial; - - /// - /// Material used to display Bitmap glyphs in the Character and Glyph tables. - /// - internal static Material internalBitmapMaterial - { - get - { - if (s_InternalBitmapMaterial == null) - { - Shader shader = Shader.Find("Hidden/Internal-GUITextureClipText"); - - if (shader != null) - s_InternalBitmapMaterial = new Material(shader); - } - - return s_InternalBitmapMaterial; - } - } - static Material s_InternalBitmapMaterial; - - private static string[] s_UiStateLabel = new string[] { "(Click to collapse) ", "(Click to expand) " }; - private GUIContent[] m_AtlasResolutionLabels = { new GUIContent("8"), new GUIContent("16"), new GUIContent("32"), new GUIContent("64"), new GUIContent("128"), new GUIContent("256"), new GUIContent("512"), new GUIContent("1024"), new GUIContent("2048"), new GUIContent("4096"), new GUIContent("8192") }; - private int[] m_AtlasResolutions = { 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192 }; - - private struct Warning - { - public bool isEnabled; - public double expirationTime; - } - - private int m_CurrentGlyphPage = 0; - private int m_CurrentCharacterPage = 0; - private int m_CurrentKerningPage = 0; - - private int m_SelectedGlyphRecord = -1; - private int m_SelectedCharacterRecord = -1; - private int m_SelectedAdjustmentRecord = -1; - - private string m_dstGlyphID; - private string m_dstUnicode; - private const string k_placeholderUnicodeHex = "New Unicode (Hex)"; - private string m_unicodeHexLabel = k_placeholderUnicodeHex; - private const string k_placeholderGlyphID = "New Glyph ID"; - private string m_GlyphIDLabel = k_placeholderGlyphID; - - private Warning m_AddGlyphWarning; - private Warning m_AddCharacterWarning; - private bool m_DisplayDestructiveChangeWarning; - private AtlasSettings m_AtlasSettings; - private bool m_MaterialPresetsRequireUpdate; - - private string m_GlyphSearchPattern; - private List m_GlyphSearchList; - - private string m_CharacterSearchPattern; - private List m_CharacterSearchList; - - private string m_KerningTableSearchPattern; - private List m_KerningTableSearchList; - - private bool m_isSearchDirty; - - private const string k_UndoRedo = "UndoRedoPerformed"; - - private SerializedProperty m_AtlasPopulationMode_prop; - private SerializedProperty font_atlas_prop; - private SerializedProperty font_material_prop; - - private SerializedProperty m_AtlasRenderMode_prop; - private SerializedProperty m_SamplingPointSize_prop; - private SerializedProperty m_AtlasPadding_prop; - private SerializedProperty m_AtlasWidth_prop; - private SerializedProperty m_AtlasHeight_prop; - private SerializedProperty m_IsMultiAtlasTexturesEnabled_prop; - - private SerializedProperty fontWeights_prop; - - //private SerializedProperty fallbackFontAssets_prop; - private ReorderableList m_list; - - private SerializedProperty font_normalStyle_prop; - private SerializedProperty font_normalSpacing_prop; - - private SerializedProperty font_boldStyle_prop; - private SerializedProperty font_boldSpacing_prop; - - private SerializedProperty font_italicStyle_prop; - private SerializedProperty font_tabSize_prop; - - private SerializedProperty m_FaceInfo_prop; - private SerializedProperty m_GlyphTable_prop; - private SerializedProperty m_CharacterTable_prop; - - private TMP_FontFeatureTable m_FontFeatureTable; - private SerializedProperty m_FontFeatureTable_prop; - private SerializedProperty m_GlyphPairAdjustmentRecords_prop; - - private TMP_SerializedPropertyHolder m_SerializedPropertyHolder; - private SerializedProperty m_EmptyGlyphPairAdjustmentRecord_prop; - - private TMP_FontAsset m_fontAsset; - - private Material[] m_materialPresets; - - private bool isAssetDirty = false; - - private int errorCode; - - private System.DateTime timeStamp; - - - public void OnEnable() - { - m_FaceInfo_prop = serializedObject.FindProperty("m_FaceInfo"); - - font_atlas_prop = serializedObject.FindProperty("m_AtlasTextures").GetArrayElementAtIndex(0); - font_material_prop = serializedObject.FindProperty("material"); - - m_AtlasPopulationMode_prop = serializedObject.FindProperty("m_AtlasPopulationMode"); - m_AtlasRenderMode_prop = serializedObject.FindProperty("m_AtlasRenderMode"); - m_SamplingPointSize_prop = m_FaceInfo_prop.FindPropertyRelative("m_PointSize"); - m_AtlasPadding_prop = serializedObject.FindProperty("m_AtlasPadding"); - m_AtlasWidth_prop = serializedObject.FindProperty("m_AtlasWidth"); - m_AtlasHeight_prop = serializedObject.FindProperty("m_AtlasHeight"); - m_IsMultiAtlasTexturesEnabled_prop = serializedObject.FindProperty("m_IsMultiAtlasTexturesEnabled"); - - fontWeights_prop = serializedObject.FindProperty("m_FontWeightTable"); - - m_list = new ReorderableList(serializedObject, serializedObject.FindProperty("m_FallbackFontAssetTable"), true, true, true, true); - - m_list.drawElementCallback = (Rect rect, int index, bool isActive, bool isFocused) => - { - var element = m_list.serializedProperty.GetArrayElementAtIndex(index); - rect.y += 2; - EditorGUI.PropertyField(new Rect(rect.x, rect.y, rect.width, EditorGUIUtility.singleLineHeight), element, GUIContent.none); - }; - - m_list.drawHeaderCallback = rect => - { - EditorGUI.LabelField(rect, "Fallback List"); - }; - - // Clean up fallback list in the event if contains null elements. - CleanFallbackFontAssetTable(); - - font_normalStyle_prop = serializedObject.FindProperty("normalStyle"); - font_normalSpacing_prop = serializedObject.FindProperty("normalSpacingOffset"); - - font_boldStyle_prop = serializedObject.FindProperty("boldStyle"); - font_boldSpacing_prop = serializedObject.FindProperty("boldSpacing"); - - font_italicStyle_prop = serializedObject.FindProperty("italicStyle"); - font_tabSize_prop = serializedObject.FindProperty("tabSize"); - - m_CharacterTable_prop = serializedObject.FindProperty("m_CharacterTable"); - m_GlyphTable_prop = serializedObject.FindProperty("m_GlyphTable"); - - m_FontFeatureTable_prop = serializedObject.FindProperty("m_FontFeatureTable"); - m_GlyphPairAdjustmentRecords_prop = m_FontFeatureTable_prop.FindPropertyRelative("m_GlyphPairAdjustmentRecords"); - - m_fontAsset = target as TMP_FontAsset; - m_FontFeatureTable = m_fontAsset.fontFeatureTable; - - // Upgrade Font Feature Table if necessary - if (m_fontAsset.m_KerningTable != null && m_fontAsset.m_KerningTable.kerningPairs != null && m_fontAsset.m_KerningTable.kerningPairs.Count > 0) - m_fontAsset.ReadFontAssetDefinition(); - - // Create serialized object to allow us to use a serialized property of an empty kerning pair. - m_SerializedPropertyHolder = CreateInstance(); - m_SerializedPropertyHolder.fontAsset = m_fontAsset; - SerializedObject internalSerializedObject = new SerializedObject(m_SerializedPropertyHolder); - m_EmptyGlyphPairAdjustmentRecord_prop = internalSerializedObject.FindProperty("glyphPairAdjustmentRecord"); - - m_materialPresets = TMP_EditorUtility.FindMaterialReferences(m_fontAsset); - - m_GlyphSearchList = new List(); - m_KerningTableSearchList = new List(); - - // Sort Font Asset Tables - m_fontAsset.SortAllTables(); - } - - - public void OnDisable() - { - // Revert changes if user closes or changes selection without having made a choice. - if (m_DisplayDestructiveChangeWarning) - { - m_DisplayDestructiveChangeWarning = false; - RestoreAtlasGenerationSettings(); - GUIUtility.keyboardControl = 0; - - serializedObject.ApplyModifiedProperties(); - } - } - - - public override void OnInspectorGUI() - { - //Debug.Log("OnInspectorGUI Called."); - - Event currentEvent = Event.current; - - serializedObject.Update(); - - Rect rect = EditorGUILayout.GetControlRect(false, 24); - float labelWidth = EditorGUIUtility.labelWidth; - float fieldWidth = EditorGUIUtility.fieldWidth; - - // FACE INFO PANEL - #region Face info - GUI.Label(rect, new GUIContent("Face Info - v" + m_fontAsset.version), TMP_UIStyleManager.sectionHeader); - - rect.x += rect.width - 132f; - rect.y += 2; - rect.width = 130f; - rect.height = 18f; - if (GUI.Button(rect, new GUIContent("Update Atlas Texture"))) - { - TMPro_FontAssetCreatorWindow.ShowFontAtlasCreatorWindow(target as TMP_FontAsset); - } - - EditorGUI.indentLevel = 1; - GUI.enabled = false; // Lock UI - - // TODO : Consider creating a property drawer for these. - EditorGUILayout.PropertyField(m_FaceInfo_prop.FindPropertyRelative("m_FamilyName")); - EditorGUILayout.PropertyField(m_FaceInfo_prop.FindPropertyRelative("m_StyleName")); - EditorGUILayout.PropertyField(m_FaceInfo_prop.FindPropertyRelative("m_PointSize")); - - GUI.enabled = true; - - EditorGUILayout.PropertyField(m_FaceInfo_prop.FindPropertyRelative("m_Scale")); - EditorGUILayout.PropertyField(m_FaceInfo_prop.FindPropertyRelative("m_LineHeight")); - - EditorGUILayout.PropertyField(m_FaceInfo_prop.FindPropertyRelative("m_AscentLine")); - EditorGUILayout.PropertyField(m_FaceInfo_prop.FindPropertyRelative("m_CapLine")); - EditorGUILayout.PropertyField(m_FaceInfo_prop.FindPropertyRelative("m_MeanLine")); - EditorGUILayout.PropertyField(m_FaceInfo_prop.FindPropertyRelative("m_Baseline")); - EditorGUILayout.PropertyField(m_FaceInfo_prop.FindPropertyRelative("m_DescentLine")); - EditorGUILayout.PropertyField(m_FaceInfo_prop.FindPropertyRelative("m_UnderlineOffset")); - EditorGUILayout.PropertyField(m_FaceInfo_prop.FindPropertyRelative("m_UnderlineThickness")); - EditorGUILayout.PropertyField(m_FaceInfo_prop.FindPropertyRelative("m_StrikethroughOffset")); - //EditorGUILayout.PropertyField(m_FaceInfo_prop.FindPropertyRelative("strikethroughThickness")); - EditorGUILayout.PropertyField(m_FaceInfo_prop.FindPropertyRelative("m_SuperscriptOffset")); - EditorGUILayout.PropertyField(m_FaceInfo_prop.FindPropertyRelative("m_SuperscriptSize")); - EditorGUILayout.PropertyField(m_FaceInfo_prop.FindPropertyRelative("m_SubscriptOffset")); - EditorGUILayout.PropertyField(m_FaceInfo_prop.FindPropertyRelative("m_SubscriptSize")); - EditorGUILayout.PropertyField(m_FaceInfo_prop.FindPropertyRelative("m_TabWidth")); - // TODO : Add clamping for some of these values. - //subSize_prop.floatValue = Mathf.Clamp(subSize_prop.floatValue, 0.25f, 1f); - - EditorGUILayout.Space(); - #endregion - - // GENERATION SETTINGS - #region Generation Settings - rect = EditorGUILayout.GetControlRect(false, 24); - - if (GUI.Button(rect, new GUIContent("Generation Settings"), TMP_UIStyleManager.sectionHeader)) - UI_PanelState.generationSettingsPanel = !UI_PanelState.generationSettingsPanel; - - GUI.Label(rect, (UI_PanelState.generationSettingsPanel ? "" : s_UiStateLabel[1]), TMP_UIStyleManager.rightLabel); - - if (UI_PanelState.generationSettingsPanel) - { - EditorGUI.indentLevel = 1; - - EditorGUI.BeginChangeCheck(); - Font sourceFont = (Font)EditorGUILayout.ObjectField("Source Font File", m_fontAsset.m_SourceFontFile_EditorRef, typeof(Font), false); - if (EditorGUI.EndChangeCheck()) - { - string guid = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(sourceFont)); - m_fontAsset.m_SourceFontFileGUID = guid; - m_fontAsset.m_SourceFontFile_EditorRef = sourceFont; - } - - EditorGUI.BeginDisabledGroup(sourceFont == null); - { - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_AtlasPopulationMode_prop, new GUIContent("Atlas Population Mode")); - if (EditorGUI.EndChangeCheck()) - { - serializedObject.ApplyModifiedProperties(); - - bool isDatabaseRefreshRequired = false; - - if (m_AtlasPopulationMode_prop.intValue == 0) - { - m_fontAsset.sourceFontFile = null; - - //Set atlas textures to non readable. - for (int i = 0; i < m_fontAsset.atlasTextures.Length; i++) - { - Texture2D tex = m_fontAsset.atlasTextures[i]; - - if (tex != null && tex.isReadable) - FontEngineEditorUtilities.SetAtlasTextureIsReadable(tex, false); - } - - Debug.Log("Atlas Population mode set to [Static]."); - } - else if (m_AtlasPopulationMode_prop.intValue == 1) - { - if (m_fontAsset.m_SourceFontFile_EditorRef.dynamic == false) - { - Debug.LogWarning("Please set the [" + m_fontAsset.name + "] font to dynamic mode as this is required for Dynamic SDF support.", m_fontAsset.m_SourceFontFile_EditorRef); - m_AtlasPopulationMode_prop.intValue = 0; - - serializedObject.ApplyModifiedProperties(); - } - else - { - m_fontAsset.sourceFontFile = m_fontAsset.m_SourceFontFile_EditorRef; - - // Set atlas textures to non readable. - for (int i = 0; i < m_fontAsset.atlasTextures.Length; i++) - { - Texture2D tex = m_fontAsset.atlasTextures[i]; - - if (tex != null && tex.isReadable == false) - FontEngineEditorUtilities.SetAtlasTextureIsReadable(tex, true); - } - - Debug.Log("Atlas Population mode set to [Dynamic]."); - } - } - - if (isDatabaseRefreshRequired) - AssetDatabase.Refresh(); - - serializedObject.Update(); - isAssetDirty = true; - } - - // Save state of atlas settings - if (m_DisplayDestructiveChangeWarning == false) - { - SavedAtlasGenerationSettings(); - //Undo.RegisterCompleteObjectUndo(m_fontAsset, "Font Asset Changes"); - } - - EditorGUI.BeginDisabledGroup(m_AtlasPopulationMode_prop.intValue == (int)AtlasPopulationMode.Static); - { - EditorGUI.BeginChangeCheck(); - // TODO: Switch shaders depending on GlyphRenderMode. - EditorGUILayout.PropertyField(m_AtlasRenderMode_prop); - EditorGUILayout.PropertyField(m_SamplingPointSize_prop, new GUIContent("Sampling Point Size")); - if (EditorGUI.EndChangeCheck()) - { - m_DisplayDestructiveChangeWarning = true; - } - - // Changes to these properties require updating Material Presets for this font asset. - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_AtlasPadding_prop, new GUIContent("Padding")); - EditorGUILayout.IntPopup(m_AtlasWidth_prop, m_AtlasResolutionLabels, m_AtlasResolutions, new GUIContent("Atlas Width")); - EditorGUILayout.IntPopup(m_AtlasHeight_prop, m_AtlasResolutionLabels, m_AtlasResolutions, new GUIContent("Atlas Height")); - EditorGUILayout.PropertyField(m_IsMultiAtlasTexturesEnabled_prop, new GUIContent("Multi Atlas Textures", "Determines if the font asset will store glyphs in multiple atlas textures.")); - if (EditorGUI.EndChangeCheck()) - { - m_MaterialPresetsRequireUpdate = true; - m_DisplayDestructiveChangeWarning = true; - } - - if (m_DisplayDestructiveChangeWarning) - { - // These changes are destructive on the font asset - rect = EditorGUILayout.GetControlRect(false, 60); - rect.x += 15; - rect.width -= 15; - EditorGUI.HelpBox(rect, "Changing these settings will clear the font asset's character, glyph and texture data.", MessageType.Warning); - - if (GUI.Button(new Rect(rect.width - 140, rect.y + 36, 80, 18), new GUIContent("Apply"))) - { - m_DisplayDestructiveChangeWarning = false; - - // Update face info is sampling point size was changed. - if (m_AtlasSettings.pointSize != m_SamplingPointSize_prop.intValue) - { - FontEngine.LoadFontFace(m_fontAsset.sourceFontFile, m_SamplingPointSize_prop.intValue); - m_fontAsset.faceInfo = FontEngine.GetFaceInfo(); - } - - // Update material - m_fontAsset.material.SetFloat(ShaderUtilities.ID_TextureWidth, m_AtlasWidth_prop.intValue); - m_fontAsset.material.SetFloat(ShaderUtilities.ID_TextureHeight, m_AtlasHeight_prop.intValue); - m_fontAsset.material.SetFloat(ShaderUtilities.ID_GradientScale, m_AtlasPadding_prop.intValue + 1); - - // Update material presets if any of the relevant properties have been changed. - if (m_MaterialPresetsRequireUpdate) - { - m_MaterialPresetsRequireUpdate = false; - - Material[] materialPresets = TMP_EditorUtility.FindMaterialReferences(m_fontAsset); - for (int i = 0; i < materialPresets.Length; i++) - { - Material mat = materialPresets[i]; - - mat.SetFloat(ShaderUtilities.ID_TextureWidth, m_AtlasWidth_prop.intValue); - mat.SetFloat(ShaderUtilities.ID_TextureHeight, m_AtlasHeight_prop.intValue); - mat.SetFloat(ShaderUtilities.ID_GradientScale, m_AtlasPadding_prop.intValue + 1); - } - } - - m_fontAsset.UpdateFontAssetData(); - GUIUtility.keyboardControl = 0; - isAssetDirty = true; - - // Update Font Asset Creation Settings to reflect new changes. - UpdateFontAssetCreationSettings(); - - // TODO: Clear undo buffers. - //Undo.ClearUndo(m_fontAsset); - } - - if (GUI.Button(new Rect(rect.width - 56, rect.y + 36, 80, 18), new GUIContent("Revert"))) - { - m_DisplayDestructiveChangeWarning = false; - RestoreAtlasGenerationSettings(); - GUIUtility.keyboardControl = 0; - - // TODO: Clear undo buffers. - //Undo.ClearUndo(m_fontAsset); - } - } - } - EditorGUI.EndDisabledGroup(); - } - EditorGUI.EndDisabledGroup(); - EditorGUILayout.Space(); - } - #endregion - - // ATLAS & MATERIAL PANEL - #region Atlas & Material - rect = EditorGUILayout.GetControlRect(false, 24); - - if (GUI.Button(rect, new GUIContent("Atlas & Material"), TMP_UIStyleManager.sectionHeader)) - UI_PanelState.fontAtlasInfoPanel = !UI_PanelState.fontAtlasInfoPanel; - - GUI.Label(rect, (UI_PanelState.fontAtlasInfoPanel ? "" : s_UiStateLabel[1]), TMP_UIStyleManager.rightLabel); - - if (UI_PanelState.fontAtlasInfoPanel) - { - EditorGUI.indentLevel = 1; - - GUI.enabled = false; - EditorGUILayout.PropertyField(font_atlas_prop, new GUIContent("Font Atlas")); - EditorGUILayout.PropertyField(font_material_prop, new GUIContent("Font Material")); - GUI.enabled = true; - EditorGUILayout.Space(); - } - #endregion - - string evt_cmd = Event.current.commandName; // Get Current Event CommandName to check for Undo Events - - // FONT WEIGHT PANEL - #region Font Weights - rect = EditorGUILayout.GetControlRect(false, 24); - - if (GUI.Button(rect, new GUIContent("Font Weights", "The Font Assets that will be used for different font weights and the settings used to simulate a typeface when no asset is available."), TMP_UIStyleManager.sectionHeader)) - UI_PanelState.fontWeightPanel = !UI_PanelState.fontWeightPanel; - - GUI.Label(rect, (UI_PanelState.fontWeightPanel ? "" : s_UiStateLabel[1]), TMP_UIStyleManager.rightLabel); - - if (UI_PanelState.fontWeightPanel) - { - EditorGUIUtility.labelWidth *= 0.75f; - EditorGUIUtility.fieldWidth *= 0.25f; - - EditorGUILayout.BeginVertical(); - EditorGUI.indentLevel = 1; - rect = EditorGUILayout.GetControlRect(true); - rect.x += EditorGUIUtility.labelWidth; - rect.width = (rect.width - EditorGUIUtility.labelWidth) / 2f; - GUI.Label(rect, "Regular Typeface", EditorStyles.label); - rect.x += rect.width; - GUI.Label(rect, "Italic Typeface", EditorStyles.label); - - EditorGUI.indentLevel = 1; - - EditorGUILayout.PropertyField(fontWeights_prop.GetArrayElementAtIndex(1), new GUIContent("100 - Thin")); - EditorGUILayout.PropertyField(fontWeights_prop.GetArrayElementAtIndex(2), new GUIContent("200 - Extra-Light")); - EditorGUILayout.PropertyField(fontWeights_prop.GetArrayElementAtIndex(3), new GUIContent("300 - Light")); - EditorGUILayout.PropertyField(fontWeights_prop.GetArrayElementAtIndex(4), new GUIContent("400 - Regular")); - EditorGUILayout.PropertyField(fontWeights_prop.GetArrayElementAtIndex(5), new GUIContent("500 - Medium")); - EditorGUILayout.PropertyField(fontWeights_prop.GetArrayElementAtIndex(6), new GUIContent("600 - Semi-Bold")); - EditorGUILayout.PropertyField(fontWeights_prop.GetArrayElementAtIndex(7), new GUIContent("700 - Bold")); - EditorGUILayout.PropertyField(fontWeights_prop.GetArrayElementAtIndex(8), new GUIContent("800 - Heavy")); - EditorGUILayout.PropertyField(fontWeights_prop.GetArrayElementAtIndex(9), new GUIContent("900 - Black")); - - EditorGUILayout.EndVertical(); - - EditorGUILayout.Space(); - - EditorGUILayout.BeginVertical(); - - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.PropertyField(font_normalStyle_prop, new GUIContent("Normal Weight")); - font_normalStyle_prop.floatValue = Mathf.Clamp(font_normalStyle_prop.floatValue, -3.0f, 3.0f); - if (GUI.changed || evt_cmd == k_UndoRedo) - { - GUI.changed = false; - - // Modify the material property on matching material presets. - for (int i = 0; i < m_materialPresets.Length; i++) - m_materialPresets[i].SetFloat("_WeightNormal", font_normalStyle_prop.floatValue); - } - - EditorGUILayout.PropertyField(font_boldStyle_prop, new GUIContent("Bold Weight")); - font_boldStyle_prop.floatValue = Mathf.Clamp(font_boldStyle_prop.floatValue, -3.0f, 3.0f); - if (GUI.changed || evt_cmd == k_UndoRedo) - { - GUI.changed = false; - - // Modify the material property on matching material presets. - for (int i = 0; i < m_materialPresets.Length; i++) - m_materialPresets[i].SetFloat("_WeightBold", font_boldStyle_prop.floatValue); - } - EditorGUILayout.EndHorizontal(); - - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.PropertyField(font_normalSpacing_prop, new GUIContent("Spacing Offset")); - font_normalSpacing_prop.floatValue = Mathf.Clamp(font_normalSpacing_prop.floatValue, -100, 100); - if (GUI.changed || evt_cmd == k_UndoRedo) - { - GUI.changed = false; - } - - EditorGUILayout.PropertyField(font_boldSpacing_prop, new GUIContent("Bold Spacing")); - font_boldSpacing_prop.floatValue = Mathf.Clamp(font_boldSpacing_prop.floatValue, 0, 100); - if (GUI.changed || evt_cmd == k_UndoRedo) - { - GUI.changed = false; - } - EditorGUILayout.EndHorizontal(); - - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.PropertyField(font_italicStyle_prop, new GUIContent("Italic Style")); - font_italicStyle_prop.intValue = Mathf.Clamp(font_italicStyle_prop.intValue, 15, 60); - - EditorGUILayout.PropertyField(font_tabSize_prop, new GUIContent("Tab Multiple")); - EditorGUILayout.EndHorizontal(); - EditorGUILayout.EndVertical(); - EditorGUILayout.Space(); - } - - EditorGUIUtility.labelWidth = 0; - EditorGUIUtility.fieldWidth = 0; - #endregion - - // FALLBACK FONT ASSETS - #region Fallback Font Asset - rect = EditorGUILayout.GetControlRect(false, 24); - EditorGUI.indentLevel = 0; - if (GUI.Button(rect, new GUIContent("Fallback Font Assets", "Select the Font Assets that will be searched and used as fallback when characters are missing from this font asset."), TMP_UIStyleManager.sectionHeader)) - UI_PanelState.fallbackFontAssetPanel = !UI_PanelState.fallbackFontAssetPanel; - - GUI.Label(rect, (UI_PanelState.fallbackFontAssetPanel ? "" : s_UiStateLabel[1]), TMP_UIStyleManager.rightLabel); - - if (UI_PanelState.fallbackFontAssetPanel) - { - EditorGUIUtility.labelWidth = 120; - EditorGUI.indentLevel = 0; - - m_list.DoLayoutList(); - EditorGUILayout.Space(); - } - #endregion - - // CHARACTER TABLE TABLE - #region Character Table - EditorGUIUtility.labelWidth = labelWidth; - EditorGUIUtility.fieldWidth = fieldWidth; - EditorGUI.indentLevel = 0; - rect = EditorGUILayout.GetControlRect(false, 24); - - int characterCount = m_fontAsset.characterTable.Count; - - if (GUI.Button(rect, new GUIContent("Character Table [" + characterCount + "]" + (rect.width > 320 ? " Characters" : ""), "List of characters contained in this font asset."), TMP_UIStyleManager.sectionHeader)) - UI_PanelState.characterTablePanel = !UI_PanelState.characterTablePanel; - - GUI.Label(rect, (UI_PanelState.characterTablePanel ? "" : s_UiStateLabel[1]), TMP_UIStyleManager.rightLabel); - - if (UI_PanelState.characterTablePanel) - { - int arraySize = m_CharacterTable_prop.arraySize; - int itemsPerPage = 15; - - // Display Glyph Management Tools - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - { - // Search Bar implementation - #region DISPLAY SEARCH BAR - EditorGUILayout.BeginHorizontal(); - { - EditorGUIUtility.labelWidth = 130f; - EditorGUI.BeginChangeCheck(); - string searchPattern = EditorGUILayout.TextField("Character Search", m_CharacterSearchPattern, "SearchTextField"); - if (EditorGUI.EndChangeCheck() || m_isSearchDirty) - { - if (string.IsNullOrEmpty(searchPattern) == false) - { - m_CharacterSearchPattern = searchPattern; - - // Search Character Table for potential matches - SearchCharacterTable (m_CharacterSearchPattern, ref m_CharacterSearchList); - } - else - m_CharacterSearchPattern = null; - - m_isSearchDirty = false; - } - - string styleName = string.IsNullOrEmpty(m_CharacterSearchPattern) ? "SearchCancelButtonEmpty" : "SearchCancelButton"; - if (GUILayout.Button(GUIContent.none, styleName)) - { - GUIUtility.keyboardControl = 0; - m_CharacterSearchPattern = string.Empty; - } - } - EditorGUILayout.EndHorizontal(); - #endregion - - // Display Page Navigation - if (!string.IsNullOrEmpty(m_CharacterSearchPattern)) - arraySize = m_CharacterSearchList.Count; - - DisplayPageNavigation(ref m_CurrentCharacterPage, arraySize, itemsPerPage); - } - EditorGUILayout.EndVertical(); - - // Display Character Table Elements - if (arraySize > 0) - { - // Display each character entry using the CharacterPropertyDrawer. - for (int i = itemsPerPage * m_CurrentCharacterPage; i < arraySize && i < itemsPerPage * (m_CurrentCharacterPage + 1); i++) - { - // Define the start of the selection region of the element. - Rect elementStartRegion = GUILayoutUtility.GetRect(0f, 0f, GUILayout.ExpandWidth(true)); - - int elementIndex = i; - if (!string.IsNullOrEmpty(m_CharacterSearchPattern)) - elementIndex = m_CharacterSearchList[i]; - - SerializedProperty characterProperty = m_CharacterTable_prop.GetArrayElementAtIndex(elementIndex); - - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - - EditorGUI.BeginDisabledGroup(i != m_SelectedCharacterRecord); - { - EditorGUILayout.PropertyField(characterProperty); - } - EditorGUI.EndDisabledGroup(); - - EditorGUILayout.EndVertical(); - - // Define the end of the selection region of the element. - Rect elementEndRegion = GUILayoutUtility.GetRect(0f, 0f, GUILayout.ExpandWidth(true)); - - // Check for Item selection - Rect selectionArea = new Rect(elementStartRegion.x, elementStartRegion.y, elementEndRegion.width, elementEndRegion.y - elementStartRegion.y); - if (DoSelectionCheck(selectionArea)) - { - if (m_SelectedCharacterRecord == i) - m_SelectedCharacterRecord = -1; - else - { - m_SelectedCharacterRecord = i; - m_AddCharacterWarning.isEnabled = false; - m_unicodeHexLabel = k_placeholderUnicodeHex; - GUIUtility.keyboardControl = 0; - } - } - - // Draw Selection Highlight and Glyph Options - if (m_SelectedCharacterRecord == i) - { - TMP_EditorUtility.DrawBox(selectionArea, 2f, new Color32(40, 192, 255, 255)); - - // Draw Glyph management options - Rect controlRect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight * 1f); - float optionAreaWidth = controlRect.width * 0.6f; - float btnWidth = optionAreaWidth / 3; - - Rect position = new Rect(controlRect.x + controlRect.width * .4f, controlRect.y, btnWidth, controlRect.height); - - // Copy Selected Glyph to Target Glyph ID - GUI.enabled = !string.IsNullOrEmpty(m_dstUnicode); - if (GUI.Button(position, new GUIContent("Copy to"))) - { - GUIUtility.keyboardControl = 0; - - // Convert Hex Value to Decimal - int dstGlyphID = TMP_TextUtilities.StringHexToInt(m_dstUnicode); - - //Add new glyph at target Unicode hex id. - if (!AddNewCharacter(elementIndex, dstGlyphID)) - { - m_AddCharacterWarning.isEnabled = true; - m_AddCharacterWarning.expirationTime = EditorApplication.timeSinceStartup + 1; - } - - m_dstUnicode = string.Empty; - m_isSearchDirty = true; - - TMPro_EventManager.ON_FONT_PROPERTY_CHANGED(true, m_fontAsset); - } - - // Target Glyph ID - GUI.enabled = true; - position.x += btnWidth; - - GUI.SetNextControlName("CharacterID_Input"); - m_dstUnicode = EditorGUI.TextField(position, m_dstUnicode); - - // Placeholder text - EditorGUI.LabelField(position, new GUIContent(m_unicodeHexLabel, "The Unicode (Hex) ID of the duplicated Character"), TMP_UIStyleManager.label); - - // Only filter the input when the destination glyph ID text field has focus. - if (GUI.GetNameOfFocusedControl() == "CharacterID_Input") - { - m_unicodeHexLabel = string.Empty; - - //Filter out unwanted characters. - char chr = Event.current.character; - if ((chr < '0' || chr > '9') && (chr < 'a' || chr > 'f') && (chr < 'A' || chr > 'F')) - { - Event.current.character = '\0'; - } - } - else - { - m_unicodeHexLabel = k_placeholderUnicodeHex; - //m_dstUnicode = string.Empty; - } - - - // Remove Glyph - position.x += btnWidth; - if (GUI.Button(position, "Remove")) - { - GUIUtility.keyboardControl = 0; - - RemoveCharacterFromList(elementIndex); - - isAssetDirty = true; - m_SelectedCharacterRecord = -1; - m_isSearchDirty = true; - break; - } - - if (m_AddCharacterWarning.isEnabled && EditorApplication.timeSinceStartup < m_AddCharacterWarning.expirationTime) - { - EditorGUILayout.HelpBox("The Destination Character ID already exists", MessageType.Warning); - } - - } - } - } - - DisplayPageNavigation(ref m_CurrentCharacterPage, arraySize, itemsPerPage); - - EditorGUILayout.Space(); - } - #endregion - - // GLYPH TABLE - #region Glyph Table - EditorGUIUtility.labelWidth = labelWidth; - EditorGUIUtility.fieldWidth = fieldWidth; - EditorGUI.indentLevel = 0; - rect = EditorGUILayout.GetControlRect(false, 24); - - GUIStyle glyphPanelStyle = new GUIStyle(EditorStyles.helpBox); - - int glyphCount = m_fontAsset.glyphTable.Count; - - if (GUI.Button(rect, new GUIContent("Glyph Table [" + glyphCount + "]" + (rect.width > 275 ? " Glyphs" : ""), "List of glyphs contained in this font asset."), TMP_UIStyleManager.sectionHeader)) - UI_PanelState.glyphTablePanel = !UI_PanelState.glyphTablePanel; - - GUI.Label(rect, (UI_PanelState.glyphTablePanel ? "" : s_UiStateLabel[1]), TMP_UIStyleManager.rightLabel); - - if (UI_PanelState.glyphTablePanel) - { - int arraySize = m_GlyphTable_prop.arraySize; - int itemsPerPage = 15; - - // Display Glyph Management Tools - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - { - // Search Bar implementation - #region DISPLAY SEARCH BAR - EditorGUILayout.BeginHorizontal(); - { - EditorGUIUtility.labelWidth = 130f; - EditorGUI.BeginChangeCheck(); - string searchPattern = EditorGUILayout.TextField("Glyph Search", m_GlyphSearchPattern, "SearchTextField"); - if (EditorGUI.EndChangeCheck() || m_isSearchDirty) - { - if (string.IsNullOrEmpty(searchPattern) == false) - { - m_GlyphSearchPattern = searchPattern; - - // Search Glyph Table for potential matches - SearchGlyphTable(m_GlyphSearchPattern, ref m_GlyphSearchList); - } - else - m_GlyphSearchPattern = null; - - m_isSearchDirty = false; - } - - string styleName = string.IsNullOrEmpty(m_GlyphSearchPattern) ? "SearchCancelButtonEmpty" : "SearchCancelButton"; - if (GUILayout.Button(GUIContent.none, styleName)) - { - GUIUtility.keyboardControl = 0; - m_GlyphSearchPattern = string.Empty; - } - } - EditorGUILayout.EndHorizontal(); - #endregion - - // Display Page Navigation - if (!string.IsNullOrEmpty(m_GlyphSearchPattern)) - arraySize = m_GlyphSearchList.Count; - - DisplayPageNavigation(ref m_CurrentGlyphPage, arraySize, itemsPerPage); - } - EditorGUILayout.EndVertical(); - - // Display Glyph Table Elements - - if (arraySize > 0) - { - // Display each GlyphInfo entry using the GlyphInfo property drawer. - for (int i = itemsPerPage * m_CurrentGlyphPage; i < arraySize && i < itemsPerPage * (m_CurrentGlyphPage + 1); i++) - { - // Define the start of the selection region of the element. - Rect elementStartRegion = GUILayoutUtility.GetRect(0f, 0f, GUILayout.ExpandWidth(true)); - - int elementIndex = i; - if (!string.IsNullOrEmpty(m_GlyphSearchPattern)) - elementIndex = m_GlyphSearchList[i]; - - SerializedProperty glyphProperty = m_GlyphTable_prop.GetArrayElementAtIndex(elementIndex); - - EditorGUILayout.BeginVertical(glyphPanelStyle); - - using (new EditorGUI.DisabledScope(i != m_SelectedGlyphRecord)) - { - EditorGUILayout.PropertyField(glyphProperty); - } - - EditorGUILayout.EndVertical(); - - // Define the end of the selection region of the element. - Rect elementEndRegion = GUILayoutUtility.GetRect(0f, 0f, GUILayout.ExpandWidth(true)); - - // Check for Item selection - Rect selectionArea = new Rect(elementStartRegion.x, elementStartRegion.y, elementEndRegion.width, elementEndRegion.y - elementStartRegion.y); - if (DoSelectionCheck(selectionArea)) - { - if (m_SelectedGlyphRecord == i) - m_SelectedGlyphRecord = -1; - else - { - m_SelectedGlyphRecord = i; - m_AddGlyphWarning.isEnabled = false; - m_unicodeHexLabel = k_placeholderUnicodeHex; - GUIUtility.keyboardControl = 0; - } - } - - // Draw Selection Highlight and Glyph Options - if (m_SelectedGlyphRecord == i) - { - TMP_EditorUtility.DrawBox(selectionArea, 2f, new Color32(40, 192, 255, 255)); - - // Draw Glyph management options - Rect controlRect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight * 1f); - float optionAreaWidth = controlRect.width * 0.6f; - float btnWidth = optionAreaWidth / 3; - - Rect position = new Rect(controlRect.x + controlRect.width * .4f, controlRect.y, btnWidth, controlRect.height); - - // Copy Selected Glyph to Target Glyph ID - GUI.enabled = !string.IsNullOrEmpty(m_dstGlyphID); - if (GUI.Button(position, new GUIContent("Copy to"))) - { - GUIUtility.keyboardControl = 0; - int dstGlyphID; - - // Convert Hex Value to Decimal - int.TryParse(m_dstGlyphID, out dstGlyphID); - - //Add new glyph at target Unicode hex id. - if (!AddNewGlyph(elementIndex, dstGlyphID)) - { - m_AddGlyphWarning.isEnabled = true; - m_AddGlyphWarning.expirationTime = EditorApplication.timeSinceStartup + 1; - } - - m_dstGlyphID = string.Empty; - m_isSearchDirty = true; - - TMPro_EventManager.ON_FONT_PROPERTY_CHANGED(true, m_fontAsset); - } - - // Target Glyph ID - GUI.enabled = true; - position.x += btnWidth; - - GUI.SetNextControlName("GlyphID_Input"); - m_dstGlyphID = EditorGUI.TextField(position, m_dstGlyphID); - - // Placeholder text - EditorGUI.LabelField(position, new GUIContent(m_GlyphIDLabel, "The Glyph ID of the duplicated Glyph"), TMP_UIStyleManager.label); - - // Only filter the input when the destination glyph ID text field has focus. - if (GUI.GetNameOfFocusedControl() == "GlyphID_Input") - { - m_GlyphIDLabel = string.Empty; - - //Filter out unwanted characters. - char chr = Event.current.character; - if ((chr < '0' || chr > '9')) - { - Event.current.character = '\0'; - } - } - else - { - m_GlyphIDLabel = k_placeholderGlyphID; - //m_dstGlyphID = string.Empty; - } - - // Remove Glyph - position.x += btnWidth; - if (GUI.Button(position, "Remove")) - { - GUIUtility.keyboardControl = 0; - - RemoveGlyphFromList(elementIndex); - - isAssetDirty = true; - m_SelectedGlyphRecord = -1; - m_isSearchDirty = true; - break; - } - - if (m_AddGlyphWarning.isEnabled && EditorApplication.timeSinceStartup < m_AddGlyphWarning.expirationTime) - { - EditorGUILayout.HelpBox("The Destination Glyph ID already exists", MessageType.Warning); - } - - } - } - } - - DisplayPageNavigation(ref m_CurrentGlyphPage, arraySize, itemsPerPage); - - EditorGUILayout.Space(); - } - #endregion - - // FONT FEATURE TABLE - #region Font Feature Table - EditorGUIUtility.labelWidth = labelWidth; - EditorGUIUtility.fieldWidth = fieldWidth; - EditorGUI.indentLevel = 0; - rect = EditorGUILayout.GetControlRect(false, 24); - - int adjustmentPairCount = m_fontAsset.fontFeatureTable.glyphPairAdjustmentRecords.Count; - - if (GUI.Button(rect, new GUIContent("Glyph Adjustment Table [" + adjustmentPairCount + "]" + (rect.width > 340 ? " Records" : ""), "List of glyph adjustment / advanced kerning pairs."), TMP_UIStyleManager.sectionHeader)) - UI_PanelState.fontFeatureTablePanel = !UI_PanelState.fontFeatureTablePanel; - - GUI.Label(rect, (UI_PanelState.fontFeatureTablePanel ? "" : s_UiStateLabel[1]), TMP_UIStyleManager.rightLabel); - - if (UI_PanelState.fontFeatureTablePanel) - { - int arraySize = m_GlyphPairAdjustmentRecords_prop.arraySize; - int itemsPerPage = 20; - - // Display Kerning Pair Management Tools - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - { - // Search Bar implementation - #region DISPLAY SEARCH BAR - EditorGUILayout.BeginHorizontal(); - { - EditorGUIUtility.labelWidth = 150f; - EditorGUI.BeginChangeCheck(); - string searchPattern = EditorGUILayout.TextField("Adjustment Pair Search", m_KerningTableSearchPattern, "SearchTextField"); - if (EditorGUI.EndChangeCheck() || m_isSearchDirty) - { - if (string.IsNullOrEmpty(searchPattern) == false) - { - m_KerningTableSearchPattern = searchPattern; - - // Search Glyph Table for potential matches - SearchKerningTable(m_KerningTableSearchPattern, ref m_KerningTableSearchList); - } - else - m_KerningTableSearchPattern = null; - - m_isSearchDirty = false; - } - - string styleName = string.IsNullOrEmpty(m_KerningTableSearchPattern) ? "SearchCancelButtonEmpty" : "SearchCancelButton"; - if (GUILayout.Button(GUIContent.none, styleName)) - { - GUIUtility.keyboardControl = 0; - m_KerningTableSearchPattern = string.Empty; - } - } - EditorGUILayout.EndHorizontal(); - #endregion - - // Display Page Navigation - if (!string.IsNullOrEmpty(m_KerningTableSearchPattern)) - arraySize = m_KerningTableSearchList.Count; - - DisplayPageNavigation(ref m_CurrentKerningPage, arraySize, itemsPerPage); - } - EditorGUILayout.EndVertical(); - - if (arraySize > 0) - { - // Display each GlyphInfo entry using the GlyphInfo property drawer. - for (int i = itemsPerPage * m_CurrentKerningPage; i < arraySize && i < itemsPerPage * (m_CurrentKerningPage + 1); i++) - { - // Define the start of the selection region of the element. - Rect elementStartRegion = GUILayoutUtility.GetRect(0f, 0f, GUILayout.ExpandWidth(true)); - - int elementIndex = i; - if (!string.IsNullOrEmpty(m_KerningTableSearchPattern)) - elementIndex = m_KerningTableSearchList[i]; - - SerializedProperty pairAdjustmentRecordProperty = m_GlyphPairAdjustmentRecords_prop.GetArrayElementAtIndex(elementIndex); - - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - - using (new EditorGUI.DisabledScope(i != m_SelectedAdjustmentRecord)) - { - EditorGUILayout.PropertyField(pairAdjustmentRecordProperty, new GUIContent("Selectable")); - } - - EditorGUILayout.EndVertical(); - - // Define the end of the selection region of the element. - Rect elementEndRegion = GUILayoutUtility.GetRect(0f, 0f, GUILayout.ExpandWidth(true)); - - // Check for Item selection - Rect selectionArea = new Rect(elementStartRegion.x, elementStartRegion.y, elementEndRegion.width, elementEndRegion.y - elementStartRegion.y); - if (DoSelectionCheck(selectionArea)) - { - if (m_SelectedAdjustmentRecord == i) - { - m_SelectedAdjustmentRecord = -1; - } - else - { - m_SelectedAdjustmentRecord = i; - GUIUtility.keyboardControl = 0; - } - } - - // Draw Selection Highlight and Kerning Pair Options - if (m_SelectedAdjustmentRecord == i) - { - TMP_EditorUtility.DrawBox(selectionArea, 2f, new Color32(40, 192, 255, 255)); - - // Draw Glyph management options - Rect controlRect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight * 1f); - float optionAreaWidth = controlRect.width; - float btnWidth = optionAreaWidth / 4; - - Rect position = new Rect(controlRect.x + controlRect.width - btnWidth, controlRect.y, btnWidth, controlRect.height); - - // Remove Kerning pair - GUI.enabled = true; - if (GUI.Button(position, "Remove")) - { - GUIUtility.keyboardControl = 0; - - RemoveAdjustmentPairFromList(i); - - isAssetDirty = true; - m_SelectedAdjustmentRecord = -1; - m_isSearchDirty = true; - break; - } - } - } - } - - DisplayPageNavigation(ref m_CurrentKerningPage, arraySize, itemsPerPage); - - GUILayout.Space(5); - - // Add new kerning pair - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - { - EditorGUILayout.PropertyField(m_EmptyGlyphPairAdjustmentRecord_prop); - } - EditorGUILayout.EndVertical(); - - if (GUILayout.Button("Add New Glyph Adjustment Record")) - { - SerializedProperty firstAdjustmentRecordProperty = m_EmptyGlyphPairAdjustmentRecord_prop.FindPropertyRelative("m_FirstAdjustmentRecord"); - SerializedProperty secondAdjustmentRecordProperty = m_EmptyGlyphPairAdjustmentRecord_prop.FindPropertyRelative("m_SecondAdjustmentRecord"); - - uint firstGlyphIndex = (uint)firstAdjustmentRecordProperty.FindPropertyRelative("m_GlyphIndex").intValue; - uint secondGlyphIndex = (uint)secondAdjustmentRecordProperty.FindPropertyRelative("m_GlyphIndex").intValue; - - TMP_GlyphValueRecord firstValueRecord = GetValueRecord(firstAdjustmentRecordProperty.FindPropertyRelative("m_GlyphValueRecord")); - TMP_GlyphValueRecord secondValueRecord = GetValueRecord(secondAdjustmentRecordProperty.FindPropertyRelative("m_GlyphValueRecord")); - - errorCode = -1; - uint pairKey = secondGlyphIndex << 16 | firstGlyphIndex; - if (m_FontFeatureTable.m_GlyphPairAdjustmentRecordLookupDictionary.ContainsKey(pairKey) == false) - { - TMP_GlyphPairAdjustmentRecord adjustmentRecord = new TMP_GlyphPairAdjustmentRecord(new TMP_GlyphAdjustmentRecord(firstGlyphIndex, firstValueRecord), new TMP_GlyphAdjustmentRecord(secondGlyphIndex, secondValueRecord)); - m_FontFeatureTable.m_GlyphPairAdjustmentRecords.Add(adjustmentRecord); - m_FontFeatureTable.m_GlyphPairAdjustmentRecordLookupDictionary.Add(pairKey, adjustmentRecord); - errorCode = 0; - } - - // Add glyphs and characters - TMP_Character character; - - uint firstCharacter = m_SerializedPropertyHolder.firstCharacter; - if (!m_fontAsset.characterLookupTable.ContainsKey(firstCharacter)) - m_fontAsset.TryAddCharacterInternal(firstCharacter, out character); - - uint secondCharacter = m_SerializedPropertyHolder.secondCharacter; - if (!m_fontAsset.characterLookupTable.ContainsKey(secondCharacter)) - m_fontAsset.TryAddCharacterInternal(secondCharacter, out character); - - // Sort Kerning Pairs & Reload Font Asset if new kerning pair was added. - if (errorCode != -1) - { - m_FontFeatureTable.SortGlyphPairAdjustmentRecords(); - serializedObject.ApplyModifiedProperties(); - isAssetDirty = true; - m_isSearchDirty = true; - } - else - { - timeStamp = System.DateTime.Now.AddSeconds(5); - } - - // Clear Add Kerning Pair Panel - // TODO - } - - if (errorCode == -1) - { - GUILayout.BeginHorizontal(); - GUILayout.FlexibleSpace(); - GUILayout.Label("Kerning Pair already exists!", TMP_UIStyleManager.label); - GUILayout.FlexibleSpace(); - GUILayout.EndHorizontal(); - - if (System.DateTime.Now > timeStamp) - errorCode = 0; - } - } - #endregion - - if (serializedObject.ApplyModifiedProperties() || evt_cmd == k_UndoRedo || isAssetDirty) - { - // Delay callback until user has decided to Apply or Revert the changes. - if (m_DisplayDestructiveChangeWarning == false) - TMPro_EventManager.ON_FONT_PROPERTY_CHANGED(true, m_fontAsset); - - if (m_fontAsset.IsFontAssetLookupTablesDirty || evt_cmd == k_UndoRedo) - m_fontAsset.ReadFontAssetDefinition(); - - isAssetDirty = false; - EditorUtility.SetDirty(target); - } - - - // Clear selection if mouse event was not consumed. - GUI.enabled = true; - if (currentEvent.type == EventType.MouseDown && currentEvent.button == 0) - m_SelectedAdjustmentRecord = -1; - - } - - void CleanFallbackFontAssetTable() - { - SerializedProperty m_FallbackFontAsseTable = serializedObject.FindProperty("m_FallbackFontAssetTable"); - - bool isListDirty = false; - - int elementCount = m_FallbackFontAsseTable.arraySize; - - for (int i = 0; i < elementCount; i++) - { - SerializedProperty element = m_FallbackFontAsseTable.GetArrayElementAtIndex(i); - if (element.objectReferenceValue == null) - { - m_FallbackFontAsseTable.DeleteArrayElementAtIndex(i); - elementCount -= 1; - i -= 1; - - isListDirty = true; - } - } - - if (isListDirty) - { - serializedObject.ApplyModifiedProperties(); - serializedObject.Update(); - } - } - - void SavedAtlasGenerationSettings() - { - m_AtlasSettings.glyphRenderMode = (GlyphRenderMode)m_AtlasRenderMode_prop.intValue; - m_AtlasSettings.pointSize = m_SamplingPointSize_prop.intValue; - m_AtlasSettings.padding = m_AtlasPadding_prop.intValue; - m_AtlasSettings.atlasWidth = m_AtlasWidth_prop.intValue; - m_AtlasSettings.atlasHeight = m_AtlasHeight_prop.intValue; - } - - void RestoreAtlasGenerationSettings() - { - m_AtlasRenderMode_prop.intValue = (int)m_AtlasSettings.glyphRenderMode; - m_SamplingPointSize_prop.intValue = m_AtlasSettings.pointSize; - m_AtlasPadding_prop.intValue = m_AtlasSettings.padding; - m_AtlasWidth_prop.intValue = m_AtlasSettings.atlasWidth; - m_AtlasHeight_prop.intValue = m_AtlasSettings.atlasHeight; - } - - - void UpdateFontAssetCreationSettings() - { - m_fontAsset.m_CreationSettings.pointSize = m_SamplingPointSize_prop.intValue; - m_fontAsset.m_CreationSettings.renderMode = m_AtlasRenderMode_prop.intValue; - m_fontAsset.m_CreationSettings.padding = m_AtlasPadding_prop.intValue; - m_fontAsset.m_CreationSettings.atlasWidth = m_AtlasWidth_prop.intValue; - m_fontAsset.m_CreationSettings.atlasHeight = m_AtlasHeight_prop.intValue; - } - - - void UpdateCharacterData(SerializedProperty property, int index) - { - TMP_Character character = m_fontAsset.characterTable[index]; - - character.unicode = (uint)property.FindPropertyRelative("m_Unicode").intValue; - character.scale = property.FindPropertyRelative("m_Scale").floatValue; - - SerializedProperty glyphProperty = property.FindPropertyRelative("m_Glyph"); - character.glyph.index = (uint)glyphProperty.FindPropertyRelative("m_Index").intValue; - - SerializedProperty glyphRectProperty = glyphProperty.FindPropertyRelative("m_GlyphRect"); - character.glyph.glyphRect = new GlyphRect(glyphRectProperty.FindPropertyRelative("m_X").intValue, glyphRectProperty.FindPropertyRelative("m_Y").intValue, glyphRectProperty.FindPropertyRelative("m_Width").intValue, glyphRectProperty.FindPropertyRelative("m_Height").intValue); - - SerializedProperty glyphMetricsProperty = glyphProperty.FindPropertyRelative("m_Metrics"); - character.glyph.metrics = new GlyphMetrics(glyphMetricsProperty.FindPropertyRelative("m_Width").floatValue, glyphMetricsProperty.FindPropertyRelative("m_Height").floatValue, glyphMetricsProperty.FindPropertyRelative("m_HorizontalBearingX").floatValue, glyphMetricsProperty.FindPropertyRelative("m_HorizontalBearingY").floatValue, glyphMetricsProperty.FindPropertyRelative("m_HorizontalAdvance").floatValue); - - character.glyph.scale = glyphProperty.FindPropertyRelative("m_Scale").floatValue; - - character.glyph.atlasIndex = glyphProperty.FindPropertyRelative("m_AtlasIndex").intValue; - } - - - void UpdateGlyphData(SerializedProperty property, int index) - { - Glyph glyph = m_fontAsset.glyphTable[index]; - - glyph.index = (uint)property.FindPropertyRelative("m_Index").intValue; - - SerializedProperty glyphRect = property.FindPropertyRelative("m_GlyphRect"); - glyph.glyphRect = new GlyphRect(glyphRect.FindPropertyRelative("m_X").intValue, glyphRect.FindPropertyRelative("m_Y").intValue, glyphRect.FindPropertyRelative("m_Width").intValue, glyphRect.FindPropertyRelative("m_Height").intValue); - - SerializedProperty glyphMetrics = property.FindPropertyRelative("m_Metrics"); - glyph.metrics = new GlyphMetrics(glyphMetrics.FindPropertyRelative("m_Width").floatValue, glyphMetrics.FindPropertyRelative("m_Height").floatValue, glyphMetrics.FindPropertyRelative("m_HorizontalBearingX").floatValue, glyphMetrics.FindPropertyRelative("m_HorizontalBearingY").floatValue, glyphMetrics.FindPropertyRelative("m_HorizontalAdvance").floatValue); - - glyph.scale = property.FindPropertyRelative("m_Scale").floatValue; - } - - - void DisplayPageNavigation(ref int currentPage, int arraySize, int itemsPerPage) - { - Rect pagePos = EditorGUILayout.GetControlRect(false, 20); - pagePos.width /= 3; - - int shiftMultiplier = Event.current.shift ? 10 : 1; // Page + Shift goes 10 page forward - - // Previous Page - GUI.enabled = currentPage > 0; - - if (GUI.Button(pagePos, "Previous Page")) - currentPage -= 1 * shiftMultiplier; - - - // Page Counter - GUI.enabled = true; - pagePos.x += pagePos.width; - int totalPages = (int)(arraySize / (float)itemsPerPage + 0.999f); - GUI.Label(pagePos, "Page " + (currentPage + 1) + " / " + totalPages, TMP_UIStyleManager.centeredLabel); - - // Next Page - pagePos.x += pagePos.width; - GUI.enabled = itemsPerPage * (currentPage + 1) < arraySize; - - if (GUI.Button(pagePos, "Next Page")) - currentPage += 1 * shiftMultiplier; - - // Clamp page range - currentPage = Mathf.Clamp(currentPage, 0, arraySize / itemsPerPage); - - GUI.enabled = true; - } - - - /// - /// - /// - /// - /// - bool AddNewGlyph(int srcIndex, int dstGlyphID) - { - // Make sure Destination Glyph ID doesn't already contain a Glyph - if (m_fontAsset.glyphLookupTable.ContainsKey((uint)dstGlyphID)) - return false; - - // Add new element to glyph list. - m_GlyphTable_prop.arraySize += 1; - - // Get a reference to the source glyph. - SerializedProperty sourceGlyph = m_GlyphTable_prop.GetArrayElementAtIndex(srcIndex); - - int dstIndex = m_GlyphTable_prop.arraySize - 1; - - // Get a reference to the target / destination glyph. - SerializedProperty targetGlyph = m_GlyphTable_prop.GetArrayElementAtIndex(dstIndex); - - CopyGlyphSerializedProperty(sourceGlyph, ref targetGlyph); - - // Update the ID of the glyph - targetGlyph.FindPropertyRelative("m_Index").intValue = dstGlyphID; - - serializedObject.ApplyModifiedProperties(); - - m_fontAsset.SortGlyphTable(); - - m_fontAsset.ReadFontAssetDefinition(); - - return true; - } - - /// - /// - /// - /// - void RemoveGlyphFromList(int index) - { - if (index > m_GlyphTable_prop.arraySize) - return; - - int targetGlyphIndex = m_GlyphTable_prop.GetArrayElementAtIndex(index).FindPropertyRelative("m_Index").intValue; - - m_GlyphTable_prop.DeleteArrayElementAtIndex(index); - - // Remove all characters referencing this glyph. - for (int i = 0; i < m_CharacterTable_prop.arraySize; i++) - { - int glyphIndex = m_CharacterTable_prop.GetArrayElementAtIndex(i).FindPropertyRelative("m_GlyphIndex").intValue; - - if (glyphIndex == targetGlyphIndex) - { - // Remove character - m_CharacterTable_prop.DeleteArrayElementAtIndex(i); - } - } - - serializedObject.ApplyModifiedProperties(); - - m_fontAsset.ReadFontAssetDefinition(); - } - - bool AddNewCharacter(int srcIndex, int dstGlyphID) - { - // Make sure Destination Glyph ID doesn't already contain a Glyph - if (m_fontAsset.characterLookupTable.ContainsKey((uint)dstGlyphID)) - return false; - - // Add new element to glyph list. - m_CharacterTable_prop.arraySize += 1; - - // Get a reference to the source glyph. - SerializedProperty sourceCharacter = m_CharacterTable_prop.GetArrayElementAtIndex(srcIndex); - - int dstIndex = m_CharacterTable_prop.arraySize - 1; - - // Get a reference to the target / destination glyph. - SerializedProperty targetCharacter = m_CharacterTable_prop.GetArrayElementAtIndex(dstIndex); - - CopyCharacterSerializedProperty(sourceCharacter, ref targetCharacter); - - // Update the ID of the glyph - targetCharacter.FindPropertyRelative("m_Unicode").intValue = dstGlyphID; - - serializedObject.ApplyModifiedProperties(); - - m_fontAsset.SortCharacterTable(); - - m_fontAsset.ReadFontAssetDefinition(); - - return true; - } - - void RemoveCharacterFromList(int index) - { - if (index > m_CharacterTable_prop.arraySize) - return; - - m_CharacterTable_prop.DeleteArrayElementAtIndex(index); - - serializedObject.ApplyModifiedProperties(); - - m_fontAsset.ReadFontAssetDefinition(); - } - - - // Check if any of the Style elements were clicked on. - private bool DoSelectionCheck(Rect selectionArea) - { - Event currentEvent = Event.current; - - switch (currentEvent.type) - { - case EventType.MouseDown: - if (selectionArea.Contains(currentEvent.mousePosition) && currentEvent.button == 0) - { - currentEvent.Use(); - return true; - } - - break; - } - - return false; - } - - TMP_GlyphValueRecord GetValueRecord(SerializedProperty property) - { - TMP_GlyphValueRecord record = new TMP_GlyphValueRecord(); - record.xPlacement = property.FindPropertyRelative("m_XPlacement").floatValue; - record.yPlacement = property.FindPropertyRelative("m_YPlacement").floatValue; - record.xAdvance = property.FindPropertyRelative("m_XAdvance").floatValue; - record.yAdvance = property.FindPropertyRelative("m_YAdvance").floatValue; - - return record; - } - - void RemoveAdjustmentPairFromList(int index) - { - if (index > m_GlyphPairAdjustmentRecords_prop.arraySize) - return; - - m_GlyphPairAdjustmentRecords_prop.DeleteArrayElementAtIndex(index); - - serializedObject.ApplyModifiedProperties(); - - m_fontAsset.ReadFontAssetDefinition(); - } - - /// - /// - /// - /// - /// - void CopyGlyphSerializedProperty(SerializedProperty srcGlyph, ref SerializedProperty dstGlyph) - { - // TODO : Should make a generic function which copies each of the properties. - dstGlyph.FindPropertyRelative("m_Index").intValue = srcGlyph.FindPropertyRelative("m_Index").intValue; - - // Glyph -> GlyphMetrics - SerializedProperty srcGlyphMetrics = srcGlyph.FindPropertyRelative("m_Metrics"); - SerializedProperty dstGlyphMetrics = dstGlyph.FindPropertyRelative("m_Metrics"); - - dstGlyphMetrics.FindPropertyRelative("m_Width").floatValue = srcGlyphMetrics.FindPropertyRelative("m_Width").floatValue; - dstGlyphMetrics.FindPropertyRelative("m_Height").floatValue = srcGlyphMetrics.FindPropertyRelative("m_Height").floatValue; - dstGlyphMetrics.FindPropertyRelative("m_HorizontalBearingX").floatValue = srcGlyphMetrics.FindPropertyRelative("m_HorizontalBearingX").floatValue; - dstGlyphMetrics.FindPropertyRelative("m_HorizontalBearingY").floatValue = srcGlyphMetrics.FindPropertyRelative("m_HorizontalBearingY").floatValue; - dstGlyphMetrics.FindPropertyRelative("m_HorizontalAdvance").floatValue = srcGlyphMetrics.FindPropertyRelative("m_HorizontalAdvance").floatValue; - - // Glyph -> GlyphRect - SerializedProperty srcGlyphRect = srcGlyph.FindPropertyRelative("m_GlyphRect"); - SerializedProperty dstGlyphRect = dstGlyph.FindPropertyRelative("m_GlyphRect"); - - dstGlyphRect.FindPropertyRelative("m_X").intValue = srcGlyphRect.FindPropertyRelative("m_X").intValue; - dstGlyphRect.FindPropertyRelative("m_Y").intValue = srcGlyphRect.FindPropertyRelative("m_Y").intValue; - dstGlyphRect.FindPropertyRelative("m_Width").intValue = srcGlyphRect.FindPropertyRelative("m_Width").intValue; - dstGlyphRect.FindPropertyRelative("m_Height").intValue = srcGlyphRect.FindPropertyRelative("m_Height").intValue; - - dstGlyph.FindPropertyRelative("m_Scale").floatValue = srcGlyph.FindPropertyRelative("m_Scale").floatValue; - dstGlyph.FindPropertyRelative("m_AtlasIndex").intValue = srcGlyph.FindPropertyRelative("m_AtlasIndex").intValue; - } - - - void CopyCharacterSerializedProperty(SerializedProperty source, ref SerializedProperty target) - { - // TODO : Should make a generic function which copies each of the properties. - int unicode = source.FindPropertyRelative("m_Unicode").intValue; - target.FindPropertyRelative("m_Unicode").intValue = unicode; - - int srcGlyphIndex = source.FindPropertyRelative("m_GlyphIndex").intValue; - target.FindPropertyRelative("m_GlyphIndex").intValue = srcGlyphIndex; - - target.FindPropertyRelative("m_Scale").floatValue = source.FindPropertyRelative("m_Scale").floatValue; - } - - - /// - /// - /// - /// - /// - void SearchGlyphTable (string searchPattern, ref List searchResults) - { - if (searchResults == null) searchResults = new List(); - - searchResults.Clear(); - - int arraySize = m_GlyphTable_prop.arraySize; - - for (int i = 0; i < arraySize; i++) - { - SerializedProperty sourceGlyph = m_GlyphTable_prop.GetArrayElementAtIndex(i); - - int id = sourceGlyph.FindPropertyRelative("m_Index").intValue; - - // Check for potential match against a character. - //if (searchPattern.Length == 1 && id == searchPattern[0]) - // searchResults.Add(i); - - // Check for potential match against decimal id - if (id.ToString().Contains(searchPattern)) - searchResults.Add(i); - - //if (id.ToString("x").Contains(searchPattern)) - // searchResults.Add(i); - - //if (id.ToString("X").Contains(searchPattern)) - // searchResults.Add(i); - } - } - - - void SearchCharacterTable(string searchPattern, ref List searchResults) - { - if (searchResults == null) searchResults = new List(); - - searchResults.Clear(); - - int arraySize = m_CharacterTable_prop.arraySize; - - for (int i = 0; i < arraySize; i++) - { - SerializedProperty sourceCharacter = m_CharacterTable_prop.GetArrayElementAtIndex(i); - - int id = sourceCharacter.FindPropertyRelative("m_Unicode").intValue; - - // Check for potential match against a character. - if (searchPattern.Length == 1 && id == searchPattern[0]) - searchResults.Add(i); - else if (id.ToString("x").Contains(searchPattern)) - searchResults.Add(i); - else if (id.ToString("X").Contains(searchPattern)) - searchResults.Add(i); - - // Check for potential match against decimal id - //if (id.ToString().Contains(searchPattern)) - // searchResults.Add(i); - } - } - - - void SearchKerningTable(string searchPattern, ref List searchResults) - { - if (searchResults == null) searchResults = new List(); - - searchResults.Clear(); - - // Lookup glyph index of potential characters contained in the search pattern. - uint firstGlyphIndex = 0; - TMP_Character firstCharacterSearch; - - if (searchPattern.Length > 0 && m_fontAsset.characterLookupTable.TryGetValue(searchPattern[0], out firstCharacterSearch)) - firstGlyphIndex = firstCharacterSearch.glyphIndex; - - uint secondGlyphIndex = 0; - TMP_Character secondCharacterSearch; - - if (searchPattern.Length > 1 && m_fontAsset.characterLookupTable.TryGetValue(searchPattern[1], out secondCharacterSearch)) - secondGlyphIndex = secondCharacterSearch.glyphIndex; - - int arraySize = m_GlyphPairAdjustmentRecords_prop.arraySize; - - for (int i = 0; i < arraySize; i++) - { - SerializedProperty record = m_GlyphPairAdjustmentRecords_prop.GetArrayElementAtIndex(i); - - SerializedProperty firstAdjustmentRecord = record.FindPropertyRelative("m_FirstAdjustmentRecord"); - SerializedProperty secondAdjustmentRecord = record.FindPropertyRelative("m_SecondAdjustmentRecord"); - - int firstGlyph = firstAdjustmentRecord.FindPropertyRelative("m_GlyphIndex").intValue; - int secondGlyph = secondAdjustmentRecord.FindPropertyRelative("m_GlyphIndex").intValue; - - if (firstGlyphIndex == firstGlyph && secondGlyphIndex == secondGlyph) - searchResults.Add(i); - else if (searchPattern.Length == 1 && (firstGlyphIndex == firstGlyph || firstGlyphIndex == secondGlyph)) - searchResults.Add(i); - else if (firstGlyph.ToString().Contains(searchPattern)) - searchResults.Add(i); - else if (secondGlyph.ToString().Contains(searchPattern)) - searchResults.Add(i); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_FontAsset_CreationMenu.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_FontAsset_CreationMenu.cs deleted file mode 100644 index 344965c..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_FontAsset_CreationMenu.cs +++ /dev/null @@ -1,235 +0,0 @@ -using UnityEngine; -using UnityEditor; -using System.Linq; -using System.IO; -using System.Collections; -using System.Collections.Generic; -using UnityEngine.TextCore; -using UnityEngine.TextCore.LowLevel; -using TMPro; - - -namespace TMPro -{ - public static class TMP_FontAsset_CreationMenu - { - [MenuItem("Assets/Create/TextMeshPro/Font Asset Variant", false, 105)] - public static void CreateFontAssetVariant() - { - Object target = Selection.activeObject; - - // Make sure the selection is a font file - if (target == null || target.GetType() != typeof(TMP_FontAsset)) - { - Debug.LogWarning("A Font file must first be selected in order to create a Font Asset."); - return; - } - - TMP_FontAsset sourceFontAsset = (TMP_FontAsset)target; - - string sourceFontFilePath = AssetDatabase.GetAssetPath(target); - - string folderPath = Path.GetDirectoryName(sourceFontFilePath); - string assetName = Path.GetFileNameWithoutExtension(sourceFontFilePath); - - string newAssetFilePathWithName = AssetDatabase.GenerateUniqueAssetPath(folderPath + "/" + assetName + " - Variant.asset"); - - // Set Texture and Material reference to the source font asset. - TMP_FontAsset fontAsset = ScriptableObject.Instantiate(sourceFontAsset); - AssetDatabase.CreateAsset(fontAsset, newAssetFilePathWithName); - - fontAsset.atlasPopulationMode = AtlasPopulationMode.Static; - - // Initialize array for the font atlas textures. - fontAsset.atlasTextures = sourceFontAsset.atlasTextures; - fontAsset.material = sourceFontAsset.material; - - // Not sure if this is still necessary in newer versions of Unity. - EditorUtility.SetDirty(fontAsset); - - AssetDatabase.SaveAssets(); - } - - - /* - [MenuItem("Assets/Create/TextMeshPro/Font Asset Fallback", false, 105)] - public static void CreateFallbackFontAsset() - { - Object target = Selection.activeObject; - - // Make sure the selection is a font file - if (target == null || target.GetType() != typeof(TMP_FontAsset)) - { - Debug.LogWarning("A Font file must first be selected in order to create a Font Asset."); - return; - } - - TMP_FontAsset sourceFontAsset = (TMP_FontAsset)target; - - string sourceFontFilePath = AssetDatabase.GetAssetPath(target); - - string folderPath = Path.GetDirectoryName(sourceFontFilePath); - string assetName = Path.GetFileNameWithoutExtension(sourceFontFilePath); - - string newAssetFilePathWithName = AssetDatabase.GenerateUniqueAssetPath(folderPath + "/" + assetName + " - Fallback.asset"); - - //// Create new TM Font Asset. - TMP_FontAsset fontAsset = ScriptableObject.CreateInstance(); - AssetDatabase.CreateAsset(fontAsset, newAssetFilePathWithName); - - fontAsset.version = "1.1.0"; - - fontAsset.faceInfo = sourceFontAsset.faceInfo; - - fontAsset.m_SourceFontFileGUID = sourceFontAsset.m_SourceFontFileGUID; - fontAsset.m_SourceFontFile_EditorRef = sourceFontAsset.m_SourceFontFile_EditorRef; - fontAsset.atlasPopulationMode = TMP_FontAsset.AtlasPopulationMode.Dynamic; - - int atlasWidth = fontAsset.atlasWidth = sourceFontAsset.atlasWidth; - int atlasHeight = fontAsset.atlasHeight = sourceFontAsset.atlasHeight; - int atlasPadding = fontAsset.atlasPadding = sourceFontAsset.atlasPadding; - fontAsset.atlasRenderMode = sourceFontAsset.atlasRenderMode; - - // Initialize array for the font atlas textures. - fontAsset.atlasTextures = new Texture2D[1]; - - // Create and add font atlas texture - Texture2D texture = new Texture2D(atlasWidth, atlasHeight, TextureFormat.Alpha8, false); - Color32[] colors = new Color32[atlasWidth * atlasHeight]; - texture.SetPixels32(colors); - - texture.name = assetName + " Atlas"; - fontAsset.atlasTextures[0] = texture; - AssetDatabase.AddObjectToAsset(texture, fontAsset); - - // Add free rectangle of the size of the texture. - int packingModifier = ((GlyphRasterModes)fontAsset.atlasRenderMode & GlyphRasterModes.RASTER_MODE_BITMAP) == GlyphRasterModes.RASTER_MODE_BITMAP ? 0 : 1; - fontAsset.m_FreeGlyphRects = new List() { new GlyphRect(0, 0, atlasWidth - packingModifier, atlasHeight - packingModifier) }; - fontAsset.m_UsedGlyphRects = new List(); - - // Create new Material and Add it as Sub-Asset - Material tmp_material = new Material(sourceFontAsset.material); - - tmp_material.name = texture.name + " Material"; - tmp_material.SetTexture(ShaderUtilities.ID_MainTex, texture); - tmp_material.SetFloat(ShaderUtilities.ID_TextureWidth, atlasWidth); - tmp_material.SetFloat(ShaderUtilities.ID_TextureHeight, atlasHeight); - - tmp_material.SetFloat(ShaderUtilities.ID_GradientScale, atlasPadding + packingModifier); - - tmp_material.SetFloat(ShaderUtilities.ID_WeightNormal, fontAsset.normalStyle); - tmp_material.SetFloat(ShaderUtilities.ID_WeightBold, fontAsset.boldStyle); - - fontAsset.material = tmp_material; - - AssetDatabase.AddObjectToAsset(tmp_material, fontAsset); - - // Add Font Asset Creation Settings - // TODO - - // Not sure if this is still necessary in newer versions of Unity. - EditorUtility.SetDirty(fontAsset); - - AssetDatabase.SaveAssets(); - } - */ - - //[MenuItem("Assets/Create/TextMeshPro/Font Asset #%F12", true)] - //public static bool CreateFontAssetMenuValidation() - //{ - // return false; - //} - - [MenuItem("Assets/Create/TextMeshPro/Font Asset #%F12", false, 100)] - public static void CreateFontAsset() - { - Object target = Selection.activeObject; - - // Make sure the selection is a font file - if (target == null || target.GetType() != typeof(Font)) - { - Debug.LogWarning("A Font file must first be selected in order to create a Font Asset."); - return; - } - - Font sourceFont = (Font)target; - - string sourceFontFilePath = AssetDatabase.GetAssetPath(target); - - string folderPath = Path.GetDirectoryName(sourceFontFilePath); - string assetName = Path.GetFileNameWithoutExtension(sourceFontFilePath); - - string newAssetFilePathWithName = AssetDatabase.GenerateUniqueAssetPath(folderPath + "/" + assetName + " SDF.asset"); - - // Initialize FontEngine - FontEngine.InitializeFontEngine(); - - // Load Font Face - if (FontEngine.LoadFontFace(sourceFont, 90) != FontEngineError.Success) - { - Debug.LogWarning("Unable to load font face for [" + sourceFont.name + "]. Make sure \"Include Font Data\" is enabled in the Font Import Settings.", sourceFont); - return; - } - - // Create new Font Asset - TMP_FontAsset fontAsset = ScriptableObject.CreateInstance(); - AssetDatabase.CreateAsset(fontAsset, newAssetFilePathWithName); - - fontAsset.version = "1.1.0"; - - fontAsset.faceInfo = FontEngine.GetFaceInfo(); - - // Set font reference and GUID - fontAsset.m_SourceFontFileGUID = AssetDatabase.AssetPathToGUID(sourceFontFilePath); - fontAsset.m_SourceFontFile_EditorRef = sourceFont; - fontAsset.atlasPopulationMode = AtlasPopulationMode.Dynamic; - - // Default atlas resolution is 1024 x 1024. - int atlasWidth = fontAsset.atlasWidth = 1024; - int atlasHeight = fontAsset.atlasHeight = 1024; - int atlasPadding = fontAsset.atlasPadding = 9; - fontAsset.atlasRenderMode = GlyphRenderMode.SDFAA; - - // Initialize array for the font atlas textures. - fontAsset.atlasTextures = new Texture2D[1]; - - // Create atlas texture of size zero. - Texture2D texture = new Texture2D(0, 0, TextureFormat.Alpha8, false); - - texture.name = assetName + " Atlas"; - fontAsset.atlasTextures[0] = texture; - AssetDatabase.AddObjectToAsset(texture, fontAsset); - - // Add free rectangle of the size of the texture. - int packingModifier = ((GlyphRasterModes)fontAsset.atlasRenderMode & GlyphRasterModes.RASTER_MODE_BITMAP) == GlyphRasterModes.RASTER_MODE_BITMAP ? 0 : 1; - fontAsset.freeGlyphRects = new List() { new GlyphRect(0, 0, atlasWidth - packingModifier, atlasHeight - packingModifier) }; - fontAsset.usedGlyphRects = new List(); - - // Create new Material and Add it as Sub-Asset - Shader default_Shader = Shader.Find("TextMeshPro/Distance Field"); - Material tmp_material = new Material(default_Shader); - - tmp_material.name = texture.name + " Material"; - tmp_material.SetTexture(ShaderUtilities.ID_MainTex, texture); - tmp_material.SetFloat(ShaderUtilities.ID_TextureWidth, atlasWidth); - tmp_material.SetFloat(ShaderUtilities.ID_TextureHeight, atlasHeight); - - tmp_material.SetFloat(ShaderUtilities.ID_GradientScale, atlasPadding + packingModifier); - - tmp_material.SetFloat(ShaderUtilities.ID_WeightNormal, fontAsset.normalStyle); - tmp_material.SetFloat(ShaderUtilities.ID_WeightBold, fontAsset.boldStyle); - - fontAsset.material = tmp_material; - - AssetDatabase.AddObjectToAsset(tmp_material, fontAsset); - - // Add Font Asset Creation Settings - fontAsset.creationSettings = new FontAssetCreationSettings(fontAsset.m_SourceFontFileGUID, fontAsset.faceInfo.pointSize, 0, atlasPadding, 0, 1024, 1024, 7, string.Empty, (int)GlyphRenderMode.SDFAA); - - // Not sure if this is still necessary in newer versions of Unity. - EditorUtility.SetDirty(fontAsset); - - AssetDatabase.SaveAssets(); - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_GlyphPairAdjustmentRecordPropertyDrawer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_GlyphPairAdjustmentRecordPropertyDrawer.cs deleted file mode 100644 index 69ac6f8..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_GlyphPairAdjustmentRecordPropertyDrawer.cs +++ /dev/null @@ -1,391 +0,0 @@ -using UnityEngine; -using UnityEngine.TextCore; -using UnityEngine.TextCore.LowLevel; -using UnityEditor; -using System.Collections; -using System.Text.RegularExpressions; - - -namespace TMPro.EditorUtilities -{ - - [CustomPropertyDrawer(typeof(TMP_GlyphPairAdjustmentRecord))] - public class TMP_GlyphPairAdjustmentRecordPropertyDrawer : PropertyDrawer - { - private bool isEditingEnabled = false; - private bool isSelectable = false; - - private string m_FirstCharacter = string.Empty; - private string m_SecondCharacter = string.Empty; - private string m_PreviousInput; - - static GUIContent s_CharacterTextFieldLabel = new GUIContent("Char:", "Enter the character or its UTF16 or UTF32 Unicode character escape sequence. For UTF16 use \"\\uFF00\" and for UTF32 use \"\\UFF00FF00\" representation."); - - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - SerializedProperty prop_FirstAdjustmentRecord = property.FindPropertyRelative("m_FirstAdjustmentRecord"); - SerializedProperty prop_SecondAdjustmentRecord = property.FindPropertyRelative("m_SecondAdjustmentRecord"); - - SerializedProperty prop_FirstGlyphIndex = prop_FirstAdjustmentRecord.FindPropertyRelative("m_GlyphIndex"); - SerializedProperty prop_FirstGlyphValueRecord = prop_FirstAdjustmentRecord.FindPropertyRelative("m_GlyphValueRecord"); - - SerializedProperty prop_SecondGlyphIndex = prop_SecondAdjustmentRecord.FindPropertyRelative("m_GlyphIndex"); - SerializedProperty prop_SecondGlyphValueRecord = prop_SecondAdjustmentRecord.FindPropertyRelative("m_GlyphValueRecord"); - - SerializedProperty prop_FontFeatureLookupFlags = property.FindPropertyRelative("m_FeatureLookupFlags"); - - position.yMin += 2; - - float width = position.width / 2; - float padding = 5.0f; - - Rect rect; - - isEditingEnabled = GUI.enabled; - isSelectable = label.text == "Selectable" ? true : false; - - if (isSelectable) - GUILayoutUtility.GetRect(position.width, 75); - else - GUILayoutUtility.GetRect(position.width, 55); - - GUIStyle style = new GUIStyle(EditorStyles.label); - style.richText = true; - - // First Glyph - GUI.enabled = isEditingEnabled; - if (isSelectable) - { - rect = new Rect(position.x + 70, position.y, position.width, 49); - - float labelWidth = GUI.skin.label.CalcSize(new GUIContent("ID: " + prop_FirstGlyphIndex.intValue)).x; - EditorGUI.LabelField(new Rect(position.x + (64 - labelWidth) / 2, position.y + 60, 64f, 18f), new GUIContent("ID: " + prop_FirstGlyphIndex.intValue + ""), style); - - GUI.enabled = isEditingEnabled; - EditorGUIUtility.labelWidth = 30f; - - rect = new Rect(position.x + 70, position.y + 10, (width - 70) - padding, 18); - EditorGUI.PropertyField(rect, prop_FirstGlyphValueRecord.FindPropertyRelative("m_XPlacement"), new GUIContent("OX:")); - - rect.y += 20; - EditorGUI.PropertyField(rect, prop_FirstGlyphValueRecord.FindPropertyRelative("m_YPlacement"), new GUIContent("OY:")); - - rect.y += 20; - EditorGUI.PropertyField(rect, prop_FirstGlyphValueRecord.FindPropertyRelative("m_XAdvance"), new GUIContent("AX:")); - - //rect.y += 20; - //EditorGUI.PropertyField(rect, prop_FirstGlyphValueRecord.FindPropertyRelative("m_YAdvance"), new GUIContent("AY:")); - - DrawGlyph((uint)prop_FirstGlyphIndex.intValue, new Rect(position.x, position.y, position.width, position.height), property); - } - else - { - rect = new Rect(position.x, position.y, width / 2 * 0.8f - padding, 18); - EditorGUIUtility.labelWidth = 40f; - - // First Character Lookup - GUI.SetNextControlName("FirstCharacterField"); - EditorGUI.BeginChangeCheck(); - string firstCharacter = EditorGUI.TextField(rect, s_CharacterTextFieldLabel, m_FirstCharacter); - - if (GUI.GetNameOfFocusedControl() == "FirstCharacterField") - { - if (ValidateInput(firstCharacter)) - { - //Debug.Log("1st Unicode value: [" + firstCharacter + "]"); - - uint unicode = GetUnicodeCharacter(firstCharacter); - - // Lookup glyph index - TMP_SerializedPropertyHolder propertyHolder = property.serializedObject.targetObject as TMP_SerializedPropertyHolder; - TMP_FontAsset fontAsset = propertyHolder.fontAsset; - if (fontAsset != null) - { - prop_FirstGlyphIndex.intValue = (int)fontAsset.GetGlyphIndex(unicode); - propertyHolder.firstCharacter = unicode; - } - } - } - - if (EditorGUI.EndChangeCheck()) - m_FirstCharacter = firstCharacter; - - // First Glyph Index - rect.x += width / 2 * 0.8f; - - EditorGUIUtility.labelWidth = 25f; - EditorGUI.BeginChangeCheck(); - EditorGUI.PropertyField(rect, prop_FirstGlyphIndex, new GUIContent("ID:")); - if (EditorGUI.EndChangeCheck()) - { - - } - - GUI.enabled = isEditingEnabled; - EditorGUIUtility.labelWidth = 25f; - - rect = new Rect(position.x, position.y + 20, width * 0.5f - padding, 18); - EditorGUI.PropertyField(rect, prop_FirstGlyphValueRecord.FindPropertyRelative("m_XPlacement"), new GUIContent("OX")); - - rect.x += width * 0.5f; - EditorGUI.PropertyField(rect, prop_FirstGlyphValueRecord.FindPropertyRelative("m_YPlacement"), new GUIContent("OY")); - - rect.x = position.x; - rect.y += 20; - EditorGUI.PropertyField(rect, prop_FirstGlyphValueRecord.FindPropertyRelative("m_XAdvance"), new GUIContent("AX")); - - //rect.x += width * 0.5f; - //EditorGUI.PropertyField(rect, prop_FirstGlyphAdjustment.FindPropertyRelative("m_YAdvance"), new GUIContent("AY")); - - } - - - // Second Glyph - GUI.enabled = isEditingEnabled; - if (isSelectable) - { - float labelWidth = GUI.skin.label.CalcSize(new GUIContent("ID: " + prop_SecondGlyphIndex.intValue)).x; - EditorGUI.LabelField(new Rect(position.width / 2 + 20 + (64 - labelWidth) / 2, position.y + 60, 64f, 18f), new GUIContent("ID: " + prop_SecondGlyphIndex.intValue + ""), style); - - GUI.enabled = isEditingEnabled; - EditorGUIUtility.labelWidth = 30f; - - rect = new Rect(position.width / 2 + 20 + 70, position.y + 10, (width - 70) - padding, 18); - EditorGUI.PropertyField(rect, prop_SecondGlyphValueRecord.FindPropertyRelative("m_XPlacement"), new GUIContent("OX:")); - - rect.y += 20; - EditorGUI.PropertyField(rect, prop_SecondGlyphValueRecord.FindPropertyRelative("m_YPlacement"), new GUIContent("OY:")); - - rect.y += 20; - EditorGUI.PropertyField(rect, prop_SecondGlyphValueRecord.FindPropertyRelative("m_XAdvance"), new GUIContent("AX:")); - - //rect.y += 20; - //EditorGUI.PropertyField(rect, prop_SecondGlyphAdjustment.FindPropertyRelative("m_YAdvance"), new GUIContent("AY")); - - DrawGlyph((uint)prop_SecondGlyphIndex.intValue, new Rect(position.width / 2 + 20, position.y, position.width, position.height), property); - } - else - { - rect = new Rect(position.width / 2 + 20, position.y, width / 2 * 0.8f - padding, 18); - EditorGUIUtility.labelWidth = 40f; - - // Second Character Lookup - GUI.SetNextControlName("SecondCharacterField"); - EditorGUI.BeginChangeCheck(); - string secondCharacter = EditorGUI.TextField(rect, s_CharacterTextFieldLabel, m_SecondCharacter); - - if (GUI.GetNameOfFocusedControl() == "SecondCharacterField") - { - if (ValidateInput(secondCharacter)) - { - //Debug.Log("2nd Unicode value: [" + secondCharacter + "]"); - - uint unicode = GetUnicodeCharacter(secondCharacter); - - // Lookup glyph index - TMP_SerializedPropertyHolder propertyHolder = property.serializedObject.targetObject as TMP_SerializedPropertyHolder; - TMP_FontAsset fontAsset = propertyHolder.fontAsset; - if (fontAsset != null) - { - prop_SecondGlyphIndex.intValue = (int)fontAsset.GetGlyphIndex(unicode); - propertyHolder.secondCharacter = unicode; - } - } - } - - if (EditorGUI.EndChangeCheck()) - m_SecondCharacter = secondCharacter; - - // Second Glyph Index - rect.x += width / 2 * 0.8f; - - EditorGUIUtility.labelWidth = 25f; - EditorGUI.BeginChangeCheck(); - EditorGUI.PropertyField(rect, prop_SecondGlyphIndex, new GUIContent("ID:")); - if (EditorGUI.EndChangeCheck()) - { - - } - - GUI.enabled = isEditingEnabled; - EditorGUIUtility.labelWidth = 25f; - - rect = new Rect(position.width / 2 + 20, position.y + 20, width * 0.5f - padding, 18); - EditorGUI.PropertyField(rect, prop_SecondGlyphValueRecord.FindPropertyRelative("m_XPlacement"), new GUIContent("OX")); - - rect.x += width * 0.5f; - EditorGUI.PropertyField(rect, prop_SecondGlyphValueRecord.FindPropertyRelative("m_YPlacement"), new GUIContent("OY")); - - rect.x = position.width / 2 + 20; - rect.y += 20; - EditorGUI.PropertyField(rect, prop_SecondGlyphValueRecord.FindPropertyRelative("m_XAdvance"), new GUIContent("AX")); - - //rect.x += width * 0.5f; - //EditorGUI.PropertyField(rect, prop_SecondGlyphAdjustment.FindPropertyRelative("m_YAdvance"), new GUIContent("AY")); - } - - // Font Feature Lookup Flags - if (isSelectable) - { - EditorGUIUtility.labelWidth = 55f; - - rect.x = position.width - 255; - rect.y += 23; - rect.width = 270; // width - 70 - padding; - - FontFeatureLookupFlags flags = (FontFeatureLookupFlags)prop_FontFeatureLookupFlags.intValue; - - EditorGUI.BeginChangeCheck(); - flags = (FontFeatureLookupFlags)EditorGUI.EnumFlagsField(rect, new GUIContent("Options:"), flags); - if (EditorGUI.EndChangeCheck()) - { - prop_FontFeatureLookupFlags.intValue = (int)flags; - } - } - - } - - bool ValidateInput(string source) - { - int length = string.IsNullOrEmpty(source) ? 0 : source.Length; - - ////Filter out unwanted characters. - Event evt = Event.current; - - char c = evt.character; - - if (c != '\0') - { - switch (length) - { - case 0: - break; - case 1: - if (source != m_PreviousInput) - return true; - - if ((source[0] == '\\' && (c == 'u' || c == 'U')) == false) - evt.character = '\0'; - - break; - case 2: - case 3: - case 4: - case 5: - if ((c < '0' || c > '9') && (c < 'a' || c > 'f') && (c < 'A' || c > 'F')) - evt.character = '\0'; - break; - case 6: - case 7: - case 8: - case 9: - if (source[1] == 'u' || (c < '0' || c > '9') && (c < 'a' || c > 'f') && (c < 'A' || c > 'F')) - evt.character = '\0'; - - // Validate input - if (length == 6 && source[1] == 'u' && source != m_PreviousInput) - return true; - break; - case 10: - if (source != m_PreviousInput) - return true; - - evt.character = '\0'; - break; - } - } - - m_PreviousInput = source; - - return false; - } - - uint GetUnicodeCharacter (string source) - { - uint unicode; - - if (source.Length == 1) - unicode = source[0]; - else if (source.Length == 6) - unicode = (uint)TMP_TextUtilities.StringHexToInt(source.Replace("\\u", "")); - else - unicode = (uint)TMP_TextUtilities.StringHexToInt(source.Replace("\\U", "")); - - return unicode; - } - - void DrawGlyph(uint glyphIndex, Rect position, SerializedProperty property) - { - // Get a reference to the font asset - TMP_FontAsset fontAsset = property.serializedObject.targetObject as TMP_FontAsset; - - if (fontAsset == null) - return; - - Glyph glyph; - - // Check if glyph is present in the atlas texture. - if (!fontAsset.glyphLookupTable.TryGetValue(glyphIndex, out glyph)) - return; - - // Get the atlas index of the glyph and lookup its atlas texture - int atlasIndex = glyph.atlasIndex; - Texture2D atlasTexture = fontAsset.atlasTextures.Length > atlasIndex ? fontAsset.atlasTextures[atlasIndex] : null; - - if (atlasTexture == null) - return; - - Material mat; - if (((GlyphRasterModes)fontAsset.atlasRenderMode & GlyphRasterModes.RASTER_MODE_BITMAP) == GlyphRasterModes.RASTER_MODE_BITMAP) - { - mat = TMP_FontAssetEditor.internalBitmapMaterial; - - if (mat == null) - return; - - mat.mainTexture = atlasTexture; - } - else - { - mat = TMP_FontAssetEditor.internalSDFMaterial; - - if (mat == null) - return; - - mat.mainTexture = atlasTexture; - mat.SetFloat(ShaderUtilities.ID_GradientScale, fontAsset.atlasPadding + 1); - } - - // Draw glyph from atlas texture. - Rect glyphDrawPosition = new Rect(position.x, position.y + 2, 64, 60); - - GlyphRect glyphRect = glyph.glyphRect; - - int padding = fontAsset.atlasPadding; - - int glyphOriginX = glyphRect.x - padding; - int glyphOriginY = glyphRect.y - padding; - int glyphWidth = glyphRect.width + padding * 2; - int glyphHeight = glyphRect.height + padding * 2; - - float normalizedHeight = fontAsset.faceInfo.ascentLine - fontAsset.faceInfo.descentLine; - float scale = glyphDrawPosition.width / normalizedHeight; - - // Compute the normalized texture coordinates - Rect texCoords = new Rect((float)glyphOriginX / atlasTexture.width, (float)glyphOriginY / atlasTexture.height, (float)glyphWidth / atlasTexture.width, (float)glyphHeight / atlasTexture.height); - - if (Event.current.type == EventType.Repaint) - { - glyphDrawPosition.x += (glyphDrawPosition.width - glyphWidth * scale) / 2; - glyphDrawPosition.y += (glyphDrawPosition.height - glyphHeight * scale) / 2; - glyphDrawPosition.width = glyphWidth * scale; - glyphDrawPosition.height = glyphHeight * scale; - - // Could switch to using the default material of the font asset which would require passing scale to the shader. - Graphics.DrawTexture(glyphDrawPosition, atlasTexture, texCoords, 0, 0, 0, 0, new Color(1f, 1f, 1f), mat); - } - } - - - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_GlyphPropertyDrawer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_GlyphPropertyDrawer.cs deleted file mode 100644 index d8d3700..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_GlyphPropertyDrawer.cs +++ /dev/null @@ -1,122 +0,0 @@ -using UnityEngine; -using UnityEngine.TextCore; -using UnityEngine.TextCore.LowLevel; -using UnityEditor; -using System.Collections; - - -namespace TMPro.EditorUtilities -{ - - [CustomPropertyDrawer(typeof(Glyph))] - public class TMP_GlyphPropertyDrawer : PropertyDrawer - { - private string k_ColorProperty = "_Color"; - - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - SerializedProperty prop_GlyphIndex = property.FindPropertyRelative("m_Index"); - SerializedProperty prop_GlyphMetrics = property.FindPropertyRelative("m_Metrics"); - SerializedProperty prop_GlyphRect = property.FindPropertyRelative("m_GlyphRect"); - SerializedProperty prop_Scale = property.FindPropertyRelative("m_Scale"); - SerializedProperty prop_AtlasIndex = property.FindPropertyRelative("m_AtlasIndex"); - - GUIStyle style = new GUIStyle(EditorStyles.label); - style.richText = true; - - Rect rect = new Rect(position.x + 70, position.y, position.width, 49); - - float labelWidth = GUI.skin.label.CalcSize(new GUIContent("ID: " + prop_GlyphIndex.intValue)).x; - EditorGUI.LabelField(new Rect(position.x + (64 - labelWidth) / 2, position.y + 85, 64f, 18f), new GUIContent("ID: " + prop_GlyphIndex.intValue + ""), style); - //EditorGUIUtility.labelWidth = 22f; - //EditorGUI.DelayedIntField(new Rect(position.x + (64 - labelWidth) / 2, position.y + 89, 58f, 18f), prop_GlyphIndex, new GUIContent("ID:")); - - // We get Rect since a valid position may not be provided by the caller. - EditorGUI.PropertyField(new Rect(rect.x, rect.y, position.width, 49), prop_GlyphRect); - - rect.y += 45; - EditorGUI.PropertyField(rect, prop_GlyphMetrics); - - EditorGUIUtility.labelWidth = 40f; - EditorGUI.PropertyField(new Rect(rect.x, rect.y + 65, 75, 18), prop_Scale, new GUIContent("Scale:")); // new GUIContent("Scale: " + prop_Scale.floatValue + ""), style); - - EditorGUIUtility.labelWidth = 74f; - EditorGUI.PropertyField(new Rect(rect.x + 85, rect.y + 65, 95, 18), prop_AtlasIndex, new GUIContent("Atlas Index:")); // new GUIContent("Atlas Index: " + prop_AtlasIndex.intValue + ""), style); - - DrawGlyph(position, property); - } - - public override float GetPropertyHeight(SerializedProperty property, GUIContent label) - { - return 130f; - } - - void DrawGlyph(Rect position, SerializedProperty property) - { - // Get a reference to the sprite texture - TMP_FontAsset fontAsset = property.serializedObject.targetObject as TMP_FontAsset; - - if (fontAsset == null) - return; - - // Get reference to atlas texture. - int atlasIndex = property.FindPropertyRelative("m_AtlasIndex").intValue; - Texture2D atlasTexture = fontAsset.atlasTextures.Length > atlasIndex ? fontAsset.atlasTextures[atlasIndex] : null; - - if (atlasTexture == null) - return; - - Material mat; - if (((GlyphRasterModes)fontAsset.atlasRenderMode & GlyphRasterModes.RASTER_MODE_BITMAP) == GlyphRasterModes.RASTER_MODE_BITMAP) - { - mat = TMP_FontAssetEditor.internalBitmapMaterial; - - if (mat == null) - return; - - mat.mainTexture = atlasTexture; - mat.SetColor(k_ColorProperty, Color.white); - } - else - { - mat = TMP_FontAssetEditor.internalSDFMaterial; - - if (mat == null) - return; - - mat.mainTexture = atlasTexture; - mat.SetFloat(ShaderUtilities.ID_GradientScale, fontAsset.atlasPadding + 1); - } - - // Draw glyph from atlas texture. - Rect glyphDrawPosition = new Rect(position.x, position.y + 2, 64, 80); - - SerializedProperty glyphRectProperty = property.FindPropertyRelative("m_GlyphRect"); - - int padding = fontAsset.atlasPadding; - - int glyphOriginX = glyphRectProperty.FindPropertyRelative("m_X").intValue - padding; - int glyphOriginY = glyphRectProperty.FindPropertyRelative("m_Y").intValue - padding; - int glyphWidth = glyphRectProperty.FindPropertyRelative("m_Width").intValue + padding * 2; - int glyphHeight = glyphRectProperty.FindPropertyRelative("m_Height").intValue + padding * 2; - - float normalizedHeight = fontAsset.faceInfo.ascentLine - fontAsset.faceInfo.descentLine; - float scale = glyphDrawPosition.width / normalizedHeight; - - // Compute the normalized texture coordinates - Rect texCoords = new Rect((float)glyphOriginX / atlasTexture.width, (float)glyphOriginY / atlasTexture.height, (float)glyphWidth / atlasTexture.width, (float)glyphHeight / atlasTexture.height); - - if (Event.current.type == EventType.Repaint) - { - glyphDrawPosition.x += (glyphDrawPosition.width - glyphWidth * scale) / 2; - glyphDrawPosition.y += (glyphDrawPosition.height - glyphHeight * scale) / 2; - glyphDrawPosition.width = glyphWidth * scale; - glyphDrawPosition.height = glyphHeight * scale; - - // Could switch to using the default material of the font asset which would require passing scale to the shader. - Graphics.DrawTexture(glyphDrawPosition, atlasTexture, texCoords, 0, 0, 0, 0, new Color(1f, 1f, 1f), mat); - } - } - - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_InputFieldEditor.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_InputFieldEditor.cs deleted file mode 100644 index ec481d7..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_InputFieldEditor.cs +++ /dev/null @@ -1,283 +0,0 @@ -using UnityEngine; -using UnityEngine.UI; -using UnityEditor; -using UnityEditor.UI; -using UnityEditor.AnimatedValues; - - -namespace TMPro.EditorUtilities -{ - [CanEditMultipleObjects] - [CustomEditor(typeof(TMP_InputField), true)] - public class TMP_InputFieldEditor : SelectableEditor - { - private struct m_foldout - { // Track Inspector foldout panel states, globally. - public static bool textInput = true; - public static bool fontSettings = true; - public static bool extraSettings = true; - //public static bool shadowSetting = false; - //public static bool materialEditor = true; - } - - SerializedProperty m_TextViewport; - SerializedProperty m_TextComponent; - SerializedProperty m_Text; - SerializedProperty m_ContentType; - SerializedProperty m_LineType; - SerializedProperty m_LineLimit; - SerializedProperty m_InputType; - SerializedProperty m_CharacterValidation; - SerializedProperty m_InputValidator; - SerializedProperty m_RegexValue; - SerializedProperty m_KeyboardType; - SerializedProperty m_CharacterLimit; - SerializedProperty m_CaretBlinkRate; - SerializedProperty m_CaretWidth; - SerializedProperty m_CaretColor; - SerializedProperty m_CustomCaretColor; - SerializedProperty m_SelectionColor; - SerializedProperty m_HideMobileKeyboard; - SerializedProperty m_HideMobileInput; - SerializedProperty m_Placeholder; - SerializedProperty m_VerticalScrollbar; - SerializedProperty m_ScrollbarScrollSensitivity; - SerializedProperty m_OnValueChanged; - SerializedProperty m_OnEndEdit; - SerializedProperty m_OnSelect; - SerializedProperty m_OnDeselect; - SerializedProperty m_ReadOnly; - SerializedProperty m_RichText; - SerializedProperty m_RichTextEditingAllowed; - SerializedProperty m_ResetOnDeActivation; - SerializedProperty m_RestoreOriginalTextOnEscape; - - SerializedProperty m_OnFocusSelectAll; - SerializedProperty m_GlobalPointSize; - SerializedProperty m_GlobalFontAsset; - - AnimBool m_CustomColor; - - //TMP_InputValidator m_ValidationScript; - - protected override void OnEnable() - { - base.OnEnable(); - - m_TextViewport = serializedObject.FindProperty("m_TextViewport"); - m_TextComponent = serializedObject.FindProperty("m_TextComponent"); - m_Text = serializedObject.FindProperty("m_Text"); - m_ContentType = serializedObject.FindProperty("m_ContentType"); - m_LineType = serializedObject.FindProperty("m_LineType"); - m_LineLimit = serializedObject.FindProperty("m_LineLimit"); - m_InputType = serializedObject.FindProperty("m_InputType"); - m_CharacterValidation = serializedObject.FindProperty("m_CharacterValidation"); - m_InputValidator = serializedObject.FindProperty("m_InputValidator"); - m_RegexValue = serializedObject.FindProperty("m_RegexValue"); - m_KeyboardType = serializedObject.FindProperty("m_KeyboardType"); - m_CharacterLimit = serializedObject.FindProperty("m_CharacterLimit"); - m_CaretBlinkRate = serializedObject.FindProperty("m_CaretBlinkRate"); - m_CaretWidth = serializedObject.FindProperty("m_CaretWidth"); - m_CaretColor = serializedObject.FindProperty("m_CaretColor"); - m_CustomCaretColor = serializedObject.FindProperty("m_CustomCaretColor"); - m_SelectionColor = serializedObject.FindProperty("m_SelectionColor"); - - m_HideMobileKeyboard = serializedObject.FindProperty("m_HideSoftKeyboard"); - m_HideMobileInput = serializedObject.FindProperty("m_HideMobileInput"); - - m_Placeholder = serializedObject.FindProperty("m_Placeholder"); - m_VerticalScrollbar = serializedObject.FindProperty("m_VerticalScrollbar"); - m_ScrollbarScrollSensitivity = serializedObject.FindProperty("m_ScrollSensitivity"); - - m_OnValueChanged = serializedObject.FindProperty("m_OnValueChanged"); - m_OnEndEdit = serializedObject.FindProperty("m_OnEndEdit"); - m_OnSelect = serializedObject.FindProperty("m_OnSelect"); - m_OnDeselect = serializedObject.FindProperty("m_OnDeselect"); - m_ReadOnly = serializedObject.FindProperty("m_ReadOnly"); - m_RichText = serializedObject.FindProperty("m_RichText"); - m_RichTextEditingAllowed = serializedObject.FindProperty("m_isRichTextEditingAllowed"); - m_ResetOnDeActivation = serializedObject.FindProperty("m_ResetOnDeActivation"); - m_RestoreOriginalTextOnEscape = serializedObject.FindProperty("m_RestoreOriginalTextOnEscape"); - - m_OnFocusSelectAll = serializedObject.FindProperty("m_OnFocusSelectAll"); - m_GlobalPointSize = serializedObject.FindProperty("m_GlobalPointSize"); - m_GlobalFontAsset = serializedObject.FindProperty("m_GlobalFontAsset"); - - m_CustomColor = new AnimBool(m_CustomCaretColor.boolValue); - m_CustomColor.valueChanged.AddListener(Repaint); - } - - protected override void OnDisable() - { - base.OnDisable(); - m_CustomColor.valueChanged.RemoveListener(Repaint); - } - - public override void OnInspectorGUI() - { - serializedObject.Update(); - - base.OnInspectorGUI(); - - EditorGUILayout.Space(); - - EditorGUILayout.PropertyField(m_TextViewport); - - EditorGUILayout.PropertyField(m_TextComponent); - - TextMeshProUGUI text = null; - if (m_TextComponent != null && m_TextComponent.objectReferenceValue != null) - { - text = m_TextComponent.objectReferenceValue as TextMeshProUGUI; - //if (text.supportRichText) - //{ - // EditorGUILayout.HelpBox("Using Rich Text with input is unsupported.", MessageType.Warning); - //} - } - - EditorGUI.BeginDisabledGroup(m_TextComponent == null || m_TextComponent.objectReferenceValue == null); - - // TEXT INPUT BOX - EditorGUILayout.PropertyField(m_Text); - - // INPUT FIELD SETTINGS - #region INPUT FIELD SETTINGS - - m_foldout.fontSettings = EditorGUILayout.Foldout(m_foldout.fontSettings, "Input Field Settings", true, TMP_UIStyleManager.boldFoldout); - - if (m_foldout.fontSettings) - { - EditorGUI.indentLevel++; - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_GlobalFontAsset, new GUIContent("Font Asset", "Set the Font Asset for both Placeholder and Input Field text object.")); - if (EditorGUI.EndChangeCheck()) - { - TMP_InputField inputField = target as TMP_InputField; - inputField.SetGlobalFontAsset(m_GlobalFontAsset.objectReferenceValue as TMP_FontAsset); - } - - - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_GlobalPointSize, new GUIContent("Point Size", "Set the point size of both Placeholder and Input Field text object.")); - if (EditorGUI.EndChangeCheck()) - { - TMP_InputField inputField = target as TMP_InputField; - inputField.SetGlobalPointSize(m_GlobalPointSize.floatValue); - } - - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_CharacterLimit); - - EditorGUILayout.Space(); - - EditorGUILayout.PropertyField(m_ContentType); - if (!m_ContentType.hasMultipleDifferentValues) - { - EditorGUI.indentLevel++; - - if (m_ContentType.enumValueIndex == (int)TMP_InputField.ContentType.Standard || - m_ContentType.enumValueIndex == (int)TMP_InputField.ContentType.Autocorrected || - m_ContentType.enumValueIndex == (int)TMP_InputField.ContentType.Custom) - { - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_LineType); - if (EditorGUI.EndChangeCheck()) - { - if (text != null) - { - if (m_LineType.enumValueIndex == (int)TMP_InputField.LineType.SingleLine) - text.enableWordWrapping = false; - else - { - text.enableWordWrapping = true; - } - } - } - - if (m_LineType.enumValueIndex != (int)TMP_InputField.LineType.SingleLine) - { - EditorGUILayout.PropertyField(m_LineLimit); - } - } - - if (m_ContentType.enumValueIndex == (int)TMP_InputField.ContentType.Custom) - { - EditorGUILayout.PropertyField(m_InputType); - EditorGUILayout.PropertyField(m_KeyboardType); - EditorGUILayout.PropertyField(m_CharacterValidation); - if (m_CharacterValidation.enumValueIndex == (int)TMP_InputField.CharacterValidation.Regex) - { - EditorGUILayout.PropertyField(m_RegexValue); - } - else if (m_CharacterValidation.enumValueIndex == (int)TMP_InputField.CharacterValidation.CustomValidator) - { - EditorGUILayout.PropertyField(m_InputValidator); - } - } - - EditorGUI.indentLevel--; - } - - EditorGUILayout.Space(); - - EditorGUILayout.PropertyField(m_Placeholder); - EditorGUILayout.PropertyField(m_VerticalScrollbar); - - if (m_VerticalScrollbar.objectReferenceValue != null) - EditorGUILayout.PropertyField(m_ScrollbarScrollSensitivity); - - EditorGUILayout.PropertyField(m_CaretBlinkRate); - EditorGUILayout.PropertyField(m_CaretWidth); - - EditorGUILayout.PropertyField(m_CustomCaretColor); - - m_CustomColor.target = m_CustomCaretColor.boolValue; - - if (EditorGUILayout.BeginFadeGroup(m_CustomColor.faded)) - { - EditorGUILayout.PropertyField(m_CaretColor); - } - EditorGUILayout.EndFadeGroup(); - - EditorGUILayout.PropertyField(m_SelectionColor); - - EditorGUI.indentLevel--; - } - #endregion - - - // CONTROL SETTINGS - #region CONTROL SETTINGS - m_foldout.extraSettings = EditorGUILayout.Foldout(m_foldout.extraSettings, "Control Settings", true, TMP_UIStyleManager.boldFoldout); - - if (m_foldout.extraSettings) - { - EditorGUI.indentLevel++; - - EditorGUILayout.PropertyField(m_OnFocusSelectAll, new GUIContent("OnFocus - Select All", "Should all the text be selected when the Input Field is selected.")); - EditorGUILayout.PropertyField(m_ResetOnDeActivation, new GUIContent("Reset On DeActivation", "Should the Text and Caret position be reset when Input Field is DeActivated.")); - EditorGUILayout.PropertyField(m_RestoreOriginalTextOnEscape, new GUIContent("Restore On ESC Key", "Should the original text be restored when pressing ESC.")); - EditorGUILayout.PropertyField(m_HideMobileKeyboard, new GUIContent("Hide Soft Keyboard", "Controls the visibility of the mobile virtual keyboard.")); - EditorGUILayout.PropertyField(m_HideMobileInput, new GUIContent("Hide Mobile Input", "Controls the visibility of the editable text field above the mobile virtual keyboard.")); - EditorGUILayout.PropertyField(m_ReadOnly); - EditorGUILayout.PropertyField(m_RichText); - EditorGUILayout.PropertyField(m_RichTextEditingAllowed, new GUIContent("Allow Rich Text Editing")); - - EditorGUI.indentLevel--; - } - #endregion - - - EditorGUILayout.Space(); - - EditorGUILayout.PropertyField(m_OnValueChanged); - EditorGUILayout.PropertyField(m_OnEndEdit); - EditorGUILayout.PropertyField(m_OnSelect); - EditorGUILayout.PropertyField(m_OnDeselect); - - EditorGUI.EndDisabledGroup(); - - serializedObject.ApplyModifiedProperties(); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_MeshRendererEditor.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_MeshRendererEditor.cs deleted file mode 100644 index 83d19f8..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_MeshRendererEditor.cs +++ /dev/null @@ -1,76 +0,0 @@ -// When enabled, allows setting the material by dropping a material onto the MeshRenderer inspector component. -// The drawback is that the MeshRenderer inspector will not have properties for light probes, so if you need light probe support, do not enable this. -//#define ALLOW_MESHRENDERER_MATERIAL_DRAG_N_DROP - -using UnityEngine; -using UnityEditor; -using System.Collections; - - -namespace TMPro.EditorUtilities -{ - // Disabled for compatibility reason as lightprobe setup isn't supported due to inability to inherit from MeshRendererEditor class -#if ALLOW_MESHRENDERER_MATERIAL_DRAG_N_DROP - [CanEditMultipleObjects] - [CustomEditor(typeof(MeshRenderer))] - public class TMP_MeshRendererEditor : Editor - { - private SerializedProperty m_Materials; - - void OnEnable() - { - m_Materials = serializedObject.FindProperty("m_Materials"); - } - - - public override void OnInspectorGUI() - { - serializedObject.Update(); - - // Get a reference to the current material. - SerializedProperty material_prop = m_Materials.GetArrayElementAtIndex(0); - Material currentMaterial = material_prop.objectReferenceValue as Material; - - EditorGUI.BeginChangeCheck(); - base.OnInspectorGUI(); - if (EditorGUI.EndChangeCheck()) - { - material_prop = m_Materials.GetArrayElementAtIndex(0); - - TMP_FontAsset newFontAsset = null; - Material newMaterial = null; - - if (material_prop != null) - newMaterial = material_prop.objectReferenceValue as Material; - - // Check if the new material is referencing a different font atlas texture. - if (newMaterial != null && currentMaterial.GetInstanceID() != newMaterial.GetInstanceID()) - { - // Search for the Font Asset matching the new font atlas texture. - newFontAsset = TMP_EditorUtility.FindMatchingFontAsset(newMaterial); - } - - - GameObject[] objects = Selection.gameObjects; - - for (int i = 0; i < objects.Length; i++) - { - // Assign new font asset - if (newFontAsset != null) - { - TMP_Text textComponent = objects[i].GetComponent(); - - if (textComponent != null) - { - Undo.RecordObject(textComponent, "Font Asset Change"); - textComponent.font = newFontAsset; - } - } - - TMPro_EventManager.ON_DRAG_AND_DROP_MATERIAL_CHANGED(objects[i], currentMaterial, newMaterial); - } - } - } - } -#endif -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_PackageUtilities.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_PackageUtilities.cs deleted file mode 100644 index 9288111..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_PackageUtilities.cs +++ /dev/null @@ -1,565 +0,0 @@ -using UnityEngine; -using UnityEditor; -using System; -using System.IO; -using System.Linq; -using System.Collections; -using System.Collections.Generic; -using System.Threading; -using TMPro.EditorUtilities; - - -namespace TMPro -{ - // Suppressing warnings related to the use of private structures which are confusing the compiler as these data structures are used by .json files. - #pragma warning disable 0649 - - /// - /// Data structure containing the target and replacement fileIDs and GUIDs which will require remapping from previous version of TextMesh Pro to the new TextMesh Pro UPM package. - /// - [System.Serializable] - struct AssetConversionRecord - { - public string referencedResource; - public string target; - public string replacement; - } - - - /// - /// Data structure containing a list of target and replacement fileID and GUID requiring remapping from previous versions of TextMesh Pro to the new TextMesh Pro UPM package. - /// This data structure is populated with the data contained in the PackageConversionData.json file included in the package. - /// - [System.Serializable] - class AssetConversionData - { - public List assetRecords; - } - - - public class TMP_ProjectConversionUtility : EditorWindow - { - // Create Project Files GUID Remapping Tool window - [MenuItem("Window/TextMeshPro/Project Files GUID Remapping Tool", false, 2100)] - static void ShowConverterWindow() - { - var window = GetWindow(); - window.titleContent = new GUIContent("Conversion Tool"); - window.Focus(); - } - - private static HashSet m_IgnoreAssetTypes = new HashSet() - { - typeof(AnimatorOverrideController), - typeof(AudioClip), - typeof(AvatarMask), - typeof(ComputeShader), - typeof(Cubemap), - typeof(DefaultAsset), - typeof(Flare), - typeof(Font), - typeof(GUISkin), - typeof(HumanTemplate), - typeof(LightingDataAsset), - typeof(Mesh), - typeof(MonoScript), - typeof(PhysicMaterial), - typeof(PhysicsMaterial2D), - typeof(RenderTexture), - typeof(Shader), - typeof(TerrainData), - typeof(TextAsset), - typeof(Texture2D), - typeof(Texture2DArray), - typeof(Texture3D), - typeof(UnityEditorInternal.AssemblyDefinitionAsset), - typeof(UnityEngine.AI.NavMeshData), - typeof(UnityEngine.Tilemaps.Tile), - typeof(UnityEngine.U2D.SpriteAtlas), - typeof(UnityEngine.Video.VideoClip), - }; - - /// - /// - /// - struct AssetModificationRecord - { - public string assetFilePath; - public string assetDataFile; - } - - struct AssetFileRecord - { - public string assetFilePath; - public string assetMetaFilePath; - - public AssetFileRecord(string filePath, string metaFilePath) - { - this.assetFilePath = filePath; - this.assetMetaFilePath = metaFilePath; - } - } - - private static string m_ProjectPath; - private static string m_ProjectFolderToScan; - private static bool m_IsAlreadyScanningProject; - private static bool m_CancelScanProcess; - private static string k_ProjectScanReportDefaultText = "Project Scan Results\n"; - private static string k_ProjectScanLabelPrefix = "Scanning: "; - private static string m_ProjectScanResults = string.Empty; - private static Vector2 m_ProjectScanResultScrollPosition; - private static float m_ProgressPercentage = 0; - - private static int m_ScanningTotalFiles; - private static int m_RemainingFilesToScan; - private static int m_ScanningCurrentFileIndex; - private static string m_ScanningCurrentFileName; - - private static AssetConversionData m_ConversionData; - - private static List m_ModifiedAssetList = new List(); - - - void OnEnable() - { - // Set Editor Window Size - SetEditorWindowSize(); - - m_ProjectScanResults = k_ProjectScanReportDefaultText; - } - - - void OnGUI() - { - GUILayout.BeginVertical(); - { - // Scan project files and resources - GUILayout.BeginVertical(EditorStyles.helpBox); - { - GUILayout.Label("Scan Project Files", EditorStyles.boldLabel); - GUILayout.Label("Press the Scan Project Files button to begin scanning your project for files & resources that were created with a previous version of TextMesh Pro.", TMP_UIStyleManager.label); - GUILayout.Space(10f); - GUILayout.Label("Project folder to be scanned. Example \"Assets/TextMesh Pro\""); - m_ProjectFolderToScan = EditorGUILayout.TextField("Folder Path: Assets/", m_ProjectFolderToScan); - GUILayout.Space(5f); - - GUI.enabled = m_IsAlreadyScanningProject == false ? true : false; - if (GUILayout.Button("Scan Project Files")) - { - m_CancelScanProcess = false; - - // Make sure Asset Serialization mode is set to ForceText and Version Control mode to Visible Meta Files. - if (CheckProjectSerializationAndSourceControlModes() == true) - { - m_ProjectPath = Path.GetFullPath("Assets/.."); - TMP_EditorCoroutine.StartCoroutine(ScanProjectFiles()); - } - else - { - EditorUtility.DisplayDialog("Project Settings Change Required", "In menu options \"Edit - Project Settings - Editor\", please change Asset Serialization Mode to ForceText and Source Control Mode to Visible Meta Files.", "OK", string.Empty); - } - } - GUI.enabled = true; - - // Display progress bar - Rect rect = GUILayoutUtility.GetRect(0f, 20f, GUILayout.ExpandWidth(true)); - EditorGUI.ProgressBar(rect, m_ProgressPercentage, "Scan Progress (" + m_ScanningCurrentFileIndex + "/" + m_ScanningTotalFiles + ")"); - - // Display cancel button and name of file currently being scanned. - if (m_IsAlreadyScanningProject) - { - Rect cancelRect = new Rect(rect.width - 20, rect.y + 2, 20, 16); - if (GUI.Button(cancelRect, "X")) - { - m_CancelScanProcess = true; - } - GUILayout.Label(k_ProjectScanLabelPrefix + m_ScanningCurrentFileName, TMP_UIStyleManager.label); - } - else - GUILayout.Label(string.Empty); - - GUILayout.Space(5); - - // Creation Feedback - GUILayout.BeginVertical(TMP_UIStyleManager.textAreaBoxWindow, GUILayout.ExpandHeight(true)); - { - m_ProjectScanResultScrollPosition = EditorGUILayout.BeginScrollView(m_ProjectScanResultScrollPosition, GUILayout.ExpandHeight(true)); - EditorGUILayout.LabelField(m_ProjectScanResults, TMP_UIStyleManager.label); - EditorGUILayout.EndScrollView(); - } - GUILayout.EndVertical(); - GUILayout.Space(5f); - } - GUILayout.EndVertical(); - - // Scan project files and resources - GUILayout.BeginVertical(EditorStyles.helpBox); - { - GUILayout.Label("Save Modified Project Files", EditorStyles.boldLabel); - GUILayout.Label("Pressing the Save Modified Project Files button will update the files in the Project Scan Results listed above. Please make sure that you have created a backup of your project first as these file modifications are permanent and cannot be undone.", TMP_UIStyleManager.label); - GUILayout.Space(5f); - - GUI.enabled = m_IsAlreadyScanningProject == false && m_ModifiedAssetList.Count > 0 ? true : false; - if (GUILayout.Button("Save Modified Project Files")) - { - UpdateProjectFiles(); - } - GUILayout.Space(10f); - } - GUILayout.EndVertical(); - - } - GUILayout.EndVertical(); - GUILayout.Space(5f); - } - - void OnInspectorUpdate() - { - Repaint(); - } - - - /// - /// Limits the minimum size of the editor window. - /// - void SetEditorWindowSize() - { - EditorWindow editorWindow = this; - - Vector2 currentWindowSize = editorWindow.minSize; - - editorWindow.minSize = new Vector2(Mathf.Max(640, currentWindowSize.x), Mathf.Max(420, currentWindowSize.y)); - } - - - /// - /// - /// - /// - /// - private static bool ShouldIgnoreFile(string filePath) - { - string fileExtension = Path.GetExtension(filePath); - Type fileType = AssetDatabase.GetMainAssetTypeAtPath(filePath); - - if (m_IgnoreAssetTypes.Contains(fileType)) - return true; - - // Exclude FBX - if (fileType == typeof(GameObject) && (fileExtension.ToLower() == ".fbx" || fileExtension.ToLower() == ".blend")) - return true; - - return false; - } - - - private IEnumerator ScanProjectFiles() - { - m_IsAlreadyScanningProject = true; - string packageFullPath = EditorUtilities.TMP_EditorUtility.packageFullPath; - - // List containing assets that have been modified. - m_ProjectScanResults = k_ProjectScanReportDefaultText; - m_ModifiedAssetList.Clear(); - m_ProgressPercentage = 0; - - // Read Conversion Data from Json file. - if (m_ConversionData == null) - m_ConversionData = JsonUtility.FromJson(File.ReadAllText(packageFullPath + "/PackageConversionData.json")); - - // Get list of GUIDs for assets that might contain references to previous GUIDs that require updating. - string searchFolder = string.IsNullOrEmpty(m_ProjectFolderToScan) ? "Assets" : ("Assets/" + m_ProjectFolderToScan); - string[] guids = AssetDatabase.FindAssets("t:Object", new string[] { searchFolder }).Distinct().ToArray(); - - k_ProjectScanLabelPrefix = "Phase 1 - Filtering: "; - m_ScanningTotalFiles = guids.Length; - m_ScanningCurrentFileIndex = 0; - - List projectFilesToScan = new List(); - - foreach (var guid in guids) - { - if (m_CancelScanProcess) - break; - - string assetFilePath = AssetDatabase.GUIDToAssetPath(guid); - - m_ScanningCurrentFileIndex += 1; - m_ScanningCurrentFileName = assetFilePath; - m_ProgressPercentage = (float)m_ScanningCurrentFileIndex / m_ScanningTotalFiles; - - // Filter out file types we have no interest in searching - if (ShouldIgnoreFile(assetFilePath)) - continue; - - string assetMetaFilePath = AssetDatabase.GetTextMetaFilePathFromAssetPath(assetFilePath); - - projectFilesToScan.Add(new AssetFileRecord(assetFilePath, assetMetaFilePath)); - - yield return null; - } - - m_RemainingFilesToScan = m_ScanningTotalFiles = projectFilesToScan.Count; - - k_ProjectScanLabelPrefix = "Phase 2 - Scanning: "; - - for (int i = 0; i < m_ScanningTotalFiles; i++) - { - if (m_CancelScanProcess) - break; - - AssetFileRecord fileRecord = projectFilesToScan[i]; - - ThreadPool.QueueUserWorkItem(Task => - { - ScanProjectFileAsync(fileRecord); - - m_ScanningCurrentFileName = fileRecord.assetFilePath; - - int completedScans = m_ScanningTotalFiles - Interlocked.Decrement(ref m_RemainingFilesToScan); - - m_ScanningCurrentFileIndex = completedScans; - m_ProgressPercentage = (float)completedScans / m_ScanningTotalFiles; - }); - - if (i % 64 == 0) - yield return new WaitForSeconds(2.0f); - - } - - while (m_RemainingFilesToScan > 0 && !m_CancelScanProcess) - yield return null; - - m_IsAlreadyScanningProject = false; - m_ScanningCurrentFileName = string.Empty; - } - - - static void ScanProjectFileAsync(AssetFileRecord fileRecord) - { - if (m_CancelScanProcess) - return; - - // Read the asset data file - string assetDataFile = string.Empty; - bool hasFileChanged = false; - - try - { - assetDataFile = File.ReadAllText(m_ProjectPath + "/" + fileRecord.assetFilePath); - } - catch - { - // Continue to the next asset if we can't read the current one. - return; - } - - // Read the asset meta data file - string assetMetaFile = File.ReadAllText(m_ProjectPath + "/" + fileRecord.assetMetaFilePath); - bool hasMetaFileChanges = false; - - foreach (AssetConversionRecord record in m_ConversionData.assetRecords) - { - if (assetDataFile.Contains(record.target)) - { - hasFileChanged = true; - - assetDataFile = assetDataFile.Replace(record.target, record.replacement); - } - - //// Check meta file - if (assetMetaFile.Contains(record.target)) - { - hasMetaFileChanges = true; - - assetMetaFile = assetMetaFile.Replace(record.target, record.replacement); - } - } - - if (hasFileChanged) - { - AssetModificationRecord modifiedAsset; - modifiedAsset.assetFilePath = fileRecord.assetFilePath; - modifiedAsset.assetDataFile = assetDataFile; - - m_ModifiedAssetList.Add(modifiedAsset); - - m_ProjectScanResults += fileRecord.assetFilePath + "\n"; - } - - if (hasMetaFileChanges) - { - AssetModificationRecord modifiedAsset; - modifiedAsset.assetFilePath = fileRecord.assetMetaFilePath; - modifiedAsset.assetDataFile = assetMetaFile; - - m_ModifiedAssetList.Add(modifiedAsset); - - m_ProjectScanResults += fileRecord.assetMetaFilePath + "\n"; - } - } - - - /// - /// - /// - private static void ResetScanProcess() - { - m_IsAlreadyScanningProject = false; - m_ScanningCurrentFileName = string.Empty; - m_ProgressPercentage = 0; - m_ScanningCurrentFileIndex = 0; - m_ScanningTotalFiles = 0; - } - - - /// - /// - /// - private static void UpdateProjectFiles() - { - // Make sure Asset Serialization mode is set to ForceText with Visible Meta Files. - CheckProjectSerializationAndSourceControlModes(); - - string projectPath = Path.GetFullPath("Assets/.."); - - // Display dialogue to show user a list of project files that will be modified upon their consent. - if (EditorUtility.DisplayDialog("Save Modified Asset(s)?", "Are you sure you want to save all modified assets?", "YES", "NO")) - { - for (int i = 0; i < m_ModifiedAssetList.Count; i++) - { - // Make sure all file streams that might have been opened by Unity are closed. - //AssetDatabase.ReleaseCachedFileHandles(); - - //Debug.Log("Writing asset file [" + m_ModifiedAssetList[i].assetFilePath + "]."); - - File.WriteAllText(projectPath + "/" + m_ModifiedAssetList[i].assetFilePath, m_ModifiedAssetList[i].assetDataFile); - } - } - - AssetDatabase.Refresh(); - - m_ProgressPercentage = 0; - m_ProjectScanResults = k_ProjectScanReportDefaultText; - } - - - /// - /// Check project Asset Serialization and Source Control modes - /// - private static bool CheckProjectSerializationAndSourceControlModes() - { - // Check Project Asset Serialization and Visible Meta Files mode. - if (EditorSettings.serializationMode != SerializationMode.ForceText || EditorSettings.externalVersionControl != "Visible Meta Files") - { - return false; - } - - return true; - } - } - - - - public class TMP_PackageUtilities : Editor - { - - enum SaveAssetDialogueOptions { Unset = 0, Save = 1, SaveAll = 2, DoNotSave = 3 }; - - private static SerializationMode m_ProjectAssetSerializationMode; - private static string m_ProjectExternalVersionControl; - - struct AssetRemappingRecord - { - public string oldGuid; - public string newGuid; - public string assetPath; - } - - struct AssetModificationRecord - { - public string assetFilePath; - public string assetDataFile; - } - - /// - /// - /// - [MenuItem("Window/TextMeshPro/Import TMP Essential Resources", false, 2050)] - public static void ImportProjectResourcesMenu() - { - ImportEssentialResources(); - } - - - /// - /// - /// - [MenuItem("Window/TextMeshPro/Import TMP Examples and Extras", false, 2051)] - public static void ImportExamplesContentMenu() - { - ImportExamplesAndExtras(); - } - - - private static void GetVersionInfo() - { - string version = TMP_Settings.version; - Debug.Log("The version of this TextMesh Pro UPM package is (" + version + ")."); - } - - - /// - /// - /// - private static void ImportExamplesAndExtras() - { - string packageFullPath = TMP_EditorUtility.packageFullPath; - - AssetDatabase.ImportPackage(packageFullPath + "/Package Resources/TMP Examples & Extras.unitypackage", true); - } - - private static string k_SettingsFilePath; - private static byte[] k_SettingsBackup; - - /// - /// - /// - private static void ImportEssentialResources() - { - // Check if the TMP Settings asset is already present in the project. - string[] settings = AssetDatabase.FindAssets("t:TMP_Settings"); - - if (settings.Length > 0) - { - // Save assets just in case the TMP Setting were modified before import. - AssetDatabase.SaveAssets(); - - // Copy existing TMP Settings asset to a byte[] - k_SettingsFilePath = AssetDatabase.GUIDToAssetPath(settings[0]); - k_SettingsBackup = File.ReadAllBytes(k_SettingsFilePath); - - RegisterResourceImportCallback(); - } - - string packageFullPath = TMP_EditorUtility.packageFullPath; - - AssetDatabase.ImportPackage(packageFullPath + "/Package Resources/TMP Essential Resources.unitypackage", true); - } - - private static void RegisterResourceImportCallback() - { - AssetDatabase.importPackageCompleted += ImportCallback; - } - - private static void ImportCallback(string packageName) - { - // Restore backup of TMP Settings from byte[] - File.WriteAllBytes(k_SettingsFilePath, k_SettingsBackup); - - AssetDatabase.Refresh(); - - AssetDatabase.importPackageCompleted -= ImportCallback; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_PostBuildProcessHandler.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_PostBuildProcessHandler.cs deleted file mode 100644 index a8b800a..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_PostBuildProcessHandler.cs +++ /dev/null @@ -1,63 +0,0 @@ -using UnityEngine; -using UnityEditor; -using UnityEditor.Callbacks; -using System.IO; - - -namespace TMPro -{ - public class TMP_PostBuildProcessHandler - { - [PostProcessBuildAttribute(10000)] - public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject) - { - // Check if TMP Essential Resource are present in user project. - if (target == BuildTarget.iOS && File.Exists(GetEssentialProjectResourcesPath() + "/Resources/TMP Settings.asset") && TMP_Settings.enableEmojiSupport) - { - string file = Path.Combine(pathToBuiltProject, "Classes/UI/Keyboard.mm"); - string content = File.ReadAllText(file); - content = content.Replace("FILTER_EMOJIS_IOS_KEYBOARD 1", "FILTER_EMOJIS_IOS_KEYBOARD 0"); - File.WriteAllText(file, content); - } - } - - - private static string GetEssentialProjectResourcesPath() - { - // Find the potential location of the TextMesh Pro folder in the user project. - string projectPath = Path.GetFullPath("Assets/.."); - if (Directory.Exists(projectPath)) - { - // Search for default location of TMP Essential Resources - if (Directory.Exists(projectPath + "/Assets/TextMesh Pro/Resources")) - { - return "Assets/TextMesh Pro"; - } - - // Search for potential alternative locations in the user project - string[] matchingPaths = Directory.GetDirectories(projectPath, "TextMesh Pro", SearchOption.AllDirectories); - projectPath = ValidateLocation(matchingPaths, projectPath); - if (projectPath != null) return projectPath; - } - - return null; - } - - - private static string ValidateLocation(string[] paths, string projectPath) - { - for (int i = 0; i < paths.Length; i++) - { - // Check if any of the matching directories contain a GUISkins directory. - if (Directory.Exists(paths[i] + "/Resources")) - { - string folderPath = paths[i].Replace(projectPath, ""); - folderPath = folderPath.TrimStart('\\', '/'); - return folderPath; - } - } - - return null; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_ProjectTextSettings.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_ProjectTextSettings.cs deleted file mode 100644 index b8695be..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_ProjectTextSettings.cs +++ /dev/null @@ -1,43 +0,0 @@ -#if !UNITY_2018_3_OR_NEWER -using UnityEditor; - -namespace TMPro -{ - - public static class TMP_ProjectTextSettings - { - // Open Project Text Settings - [MenuItem("Edit/Project Settings/TextMeshPro Settings", false, 309)] - public static void SelectProjectTextSettings() - { - TMP_Settings textSettings = TMP_Settings.instance; - - if (textSettings) - { - Selection.activeObject = textSettings; - - // TODO: Do we want to ping the Project Text Settings asset in the Project Inspector - EditorUtility.FocusProjectWindow(); - EditorGUIUtility.PingObject(textSettings); - } - else - TMPro_EventManager.RESOURCE_LOAD_EVENT.Add(ON_RESOURCES_LOADED); - } - - - // Event received when TMP resources have been loaded. - static void ON_RESOURCES_LOADED() - { - TMPro_EventManager.RESOURCE_LOAD_EVENT.Remove(ON_RESOURCES_LOADED); - - TMP_Settings textSettings = TMP_Settings.instance; - - Selection.activeObject = textSettings; - - // TODO: Do we want to ping the Project Text Settings asset in the Project Inspector - EditorUtility.FocusProjectWindow(); - EditorGUIUtility.PingObject(textSettings); - } - } -} -#endif \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_ResourcesLoader.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_ResourcesLoader.cs deleted file mode 100644 index 090bd77..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_ResourcesLoader.cs +++ /dev/null @@ -1,68 +0,0 @@ -using UnityEditor; -using UnityEngine; -using System.Collections; - -namespace TMPro.EditorUtilities -{ - - //[InitializeOnLoad] - class TMP_ResourcesLoader - { - - /// - /// Function to pre-load the TMP Resources - /// - public static void LoadTextMeshProResources() - { - //TMP_Settings.LoadDefaultSettings(); - //TMP_StyleSheet.LoadDefaultStyleSheet(); - } - - - static TMP_ResourcesLoader() - { - //Debug.Log("Loading TMP Resources..."); - - // Get current targetted platform - - - //string Settings = PlayerSettings.GetScriptingDefineSymbolsForGroup(BuildTargetGroup.Standalone); - //TMPro.TMP_Settings.LoadDefaultSettings(); - //TMPro.TMP_StyleSheet.LoadDefaultStyleSheet(); - } - - - - //[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] - //static void OnBeforeSceneLoaded() - //{ - //Debug.Log("Before scene is loaded."); - - // //TMPro.TMP_Settings.LoadDefaultSettings(); - // //TMPro.TMP_StyleSheet.LoadDefaultStyleSheet(); - - // //ShaderVariantCollection collection = new ShaderVariantCollection(); - // //Shader s0 = Shader.Find("TextMeshPro/Mobile/Distance Field"); - // //ShaderVariantCollection.ShaderVariant tmp_Variant = new ShaderVariantCollection.ShaderVariant(s0, UnityEngine.Rendering.PassType.Normal, string.Empty); - - // //collection.Add(tmp_Variant); - // //collection.WarmUp(); - //} - - } - - //static class TMP_ProjectSettings - //{ - // [InitializeOnLoadMethod] - // static void SetProjectDefineSymbols() - // { - // string currentBuildSettings = PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup); - - // //Check for and inject TMP_INSTALLED - // if (!currentBuildSettings.Contains("TMP_PRESENT")) - // { - // PlayerSettings.SetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup, currentBuildSettings + ";TMP_PRESENT"); - // } - // } - //} -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SDFShaderGUI.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SDFShaderGUI.cs deleted file mode 100644 index 220bac2..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SDFShaderGUI.cs +++ /dev/null @@ -1,487 +0,0 @@ -using UnityEngine; -using UnityEditor; - -namespace TMPro.EditorUtilities -{ - public class TMP_SDFShaderGUI : TMP_BaseShaderGUI - { - static ShaderFeature s_OutlineFeature, s_UnderlayFeature, s_BevelFeature, s_GlowFeature, s_MaskFeature; - - static bool s_Face = true, s_Outline = true, s_Outline2, s_Underlay, s_Lighting, s_Glow, s_Bevel, s_Light, s_Bump, s_Env; - - static string[] - s_FaceUvSpeedNames = { "_FaceUVSpeedX", "_FaceUVSpeedY" }, - s_OutlineUvSpeedNames = { "_OutlineUVSpeedX", "_OutlineUVSpeedY" }; - - static TMP_SDFShaderGUI() - { - s_OutlineFeature = new ShaderFeature() - { - undoLabel = "Outline", - keywords = new[] { "OUTLINE_ON" } - }; - - s_UnderlayFeature = new ShaderFeature() - { - undoLabel = "Underlay", - keywords = new[] { "UNDERLAY_ON", "UNDERLAY_INNER" }, - label = new GUIContent("Underlay Type"), - keywordLabels = new[] - { - new GUIContent("None"), new GUIContent("Normal"), new GUIContent("Inner") - } - }; - - s_BevelFeature = new ShaderFeature() - { - undoLabel = "Bevel", - keywords = new[] { "BEVEL_ON" } - }; - - s_GlowFeature = new ShaderFeature() - { - undoLabel = "Glow", - keywords = new[] { "GLOW_ON" } - }; - - s_MaskFeature = new ShaderFeature() - { - undoLabel = "Mask", - keywords = new[] { "MASK_HARD", "MASK_SOFT" }, - label = new GUIContent("Mask"), - keywordLabels = new[] - { - new GUIContent("Mask Off"), new GUIContent("Mask Hard"), new GUIContent("Mask Soft") - } - }; - } - - protected override void DoGUI() - { - s_Face = BeginPanel("Face", s_Face); - if (s_Face) - { - DoFacePanel(); - } - - EndPanel(); - - s_Outline = m_Material.HasProperty(ShaderUtilities.ID_OutlineTex) ? BeginPanel("Outline", s_Outline) : BeginPanel("Outline", s_OutlineFeature, s_Outline); - if (s_Outline) - { - DoOutlinePanel(); - } - - EndPanel(); - - if (m_Material.HasProperty(ShaderUtilities.ID_Outline2Color)) - { - s_Outline2 = BeginPanel("Outline 2", s_OutlineFeature, s_Outline2); - if (s_Outline2) - { - DoOutline2Panel(); - } - - EndPanel(); - } - - if (m_Material.HasProperty(ShaderUtilities.ID_UnderlayColor)) - { - s_Underlay = BeginPanel("Underlay", s_UnderlayFeature, s_Underlay); - if (s_Underlay) - { - DoUnderlayPanel(); - } - - EndPanel(); - } - - if (m_Material.HasProperty("_SpecularColor")) - { - s_Lighting = BeginPanel("Lighting", s_BevelFeature, s_Lighting); - if (s_Lighting) - { - s_Bevel = BeginPanel("Bevel", s_Bevel); - if (s_Bevel) - { - DoBevelPanel(); - } - - EndPanel(); - - s_Light = BeginPanel("Local Lighting", s_Light); - if (s_Light) - { - DoLocalLightingPanel(); - } - - EndPanel(); - - s_Bump = BeginPanel("Bump Map", s_Bump); - if (s_Bump) - { - DoBumpMapPanel(); - } - - EndPanel(); - - s_Env = BeginPanel("Environment Map", s_Env); - if (s_Env) - { - DoEnvMapPanel(); - } - - EndPanel(); - } - - EndPanel(); - } - else if (m_Material.HasProperty("_SpecColor")) - { - s_Bevel = BeginPanel("Bevel", s_Bevel); - if (s_Bevel) - { - DoBevelPanel(); - } - - EndPanel(); - - s_Light = BeginPanel("Surface Lighting", s_Light); - if (s_Light) - { - DoSurfaceLightingPanel(); - } - - EndPanel(); - - s_Bump = BeginPanel("Bump Map", s_Bump); - if (s_Bump) - { - DoBumpMapPanel(); - } - - EndPanel(); - - s_Env = BeginPanel("Environment Map", s_Env); - if (s_Env) - { - DoEnvMapPanel(); - } - - EndPanel(); - } - - if (m_Material.HasProperty(ShaderUtilities.ID_GlowColor)) - { - s_Glow = BeginPanel("Glow", s_GlowFeature, s_Glow); - if (s_Glow) - { - DoGlowPanel(); - } - - EndPanel(); - } - - s_DebugExtended = BeginPanel("Debug Settings", s_DebugExtended); - if (s_DebugExtended) - { - DoDebugPanel(); - } - - EndPanel(); - } - - void DoFacePanel() - { - EditorGUI.indentLevel += 1; - DoColor("_FaceColor", "Color"); - if (m_Material.HasProperty(ShaderUtilities.ID_FaceTex)) - { - if (m_Material.HasProperty("_FaceUVSpeedX")) - { - DoTexture2D("_FaceTex", "Texture", true, s_FaceUvSpeedNames); - } - else - { - DoTexture2D("_FaceTex", "Texture", true); - } - } - - DoSlider("_OutlineSoftness", "Softness"); - DoSlider("_FaceDilate", "Dilate"); - if (m_Material.HasProperty(ShaderUtilities.ID_Shininess)) - { - DoSlider("_FaceShininess", "Gloss"); - } - - EditorGUI.indentLevel -= 1; - EditorGUILayout.Space(); - } - - void DoOutlinePanel() - { - EditorGUI.indentLevel += 1; - DoColor("_OutlineColor", "Color"); - if (m_Material.HasProperty(ShaderUtilities.ID_OutlineTex)) - { - if (m_Material.HasProperty("_OutlineUVSpeedX")) - { - DoTexture2D("_OutlineTex", "Texture", true, s_OutlineUvSpeedNames); - } - else - { - DoTexture2D("_OutlineTex", "Texture", true); - } - } - - DoSlider("_OutlineWidth", "Thickness"); - if (m_Material.HasProperty("_OutlineShininess")) - { - DoSlider("_OutlineShininess", "Gloss"); - } - - EditorGUI.indentLevel -= 1; - EditorGUILayout.Space(); - } - - void DoOutline2Panel() - { - EditorGUI.indentLevel += 1; - DoColor("_Outline2Color", "Color"); - //if (m_Material.HasProperty(ShaderUtilities.ID_OutlineTex)) - //{ - // if (m_Material.HasProperty("_OutlineUVSpeedX")) - // { - // DoTexture2D("_OutlineTex", "Texture", true, s_OutlineUvSpeedNames); - // } - // else - // { - // DoTexture2D("_OutlineTex", "Texture", true); - // } - //} - - DoSlider("_Outline2Width", "Thickness"); - //if (m_Material.HasProperty("_OutlineShininess")) - //{ - // DoSlider("_OutlineShininess", "Gloss"); - //} - - EditorGUI.indentLevel -= 1; - EditorGUILayout.Space(); - } - - void DoUnderlayPanel() - { - EditorGUI.indentLevel += 1; - s_UnderlayFeature.DoPopup(m_Editor, m_Material); - DoColor("_UnderlayColor", "Color"); - DoSlider("_UnderlayOffsetX", "Offset X"); - DoSlider("_UnderlayOffsetY", "Offset Y"); - DoSlider("_UnderlayDilate", "Dilate"); - DoSlider("_UnderlaySoftness", "Softness"); - EditorGUI.indentLevel -= 1; - EditorGUILayout.Space(); - } - - static GUIContent[] s_BevelTypeLabels = - { - new GUIContent("Outer Bevel"), - new GUIContent("Inner Bevel") - }; - - void DoBevelPanel() - { - EditorGUI.indentLevel += 1; - DoPopup("_ShaderFlags", "Type", s_BevelTypeLabels); - DoSlider("_Bevel", "Amount"); - DoSlider("_BevelOffset", "Offset"); - DoSlider("_BevelWidth", "Width"); - DoSlider("_BevelRoundness", "Roundness"); - DoSlider("_BevelClamp", "Clamp"); - EditorGUI.indentLevel -= 1; - EditorGUILayout.Space(); - } - - void DoLocalLightingPanel() - { - EditorGUI.indentLevel += 1; - DoSlider("_LightAngle", "Light Angle"); - DoColor("_SpecularColor", "Specular Color"); - DoSlider("_SpecularPower", "Specular Power"); - DoSlider("_Reflectivity", "Reflectivity Power"); - DoSlider("_Diffuse", "Diffuse Shadow"); - DoSlider("_Ambient", "Ambient Shadow"); - EditorGUI.indentLevel -= 1; - EditorGUILayout.Space(); - } - - void DoSurfaceLightingPanel() - { - EditorGUI.indentLevel += 1; - DoColor("_SpecColor", "Specular Color"); - EditorGUI.indentLevel -= 1; - EditorGUILayout.Space(); - } - - void DoBumpMapPanel() - { - EditorGUI.indentLevel += 1; - DoTexture2D("_BumpMap", "Texture"); - DoSlider("_BumpFace", "Face"); - DoSlider("_BumpOutline", "Outline"); - EditorGUI.indentLevel -= 1; - EditorGUILayout.Space(); - } - - void DoEnvMapPanel() - { - EditorGUI.indentLevel += 1; - DoColor("_ReflectFaceColor", "Face Color"); - DoColor("_ReflectOutlineColor", "Outline Color"); - DoCubeMap("_Cube", "Texture"); - DoVector3("_EnvMatrixRotation", "Rotation"); - EditorGUI.indentLevel -= 1; - EditorGUILayout.Space(); - } - - void DoGlowPanel() - { - EditorGUI.indentLevel += 1; - DoColor("_GlowColor", "Color"); - DoSlider("_GlowOffset", "Offset"); - DoSlider("_GlowInner", "Inner"); - DoSlider("_GlowOuter", "Outer"); - DoSlider("_GlowPower", "Power"); - EditorGUI.indentLevel -= 1; - EditorGUILayout.Space(); - } - - void DoDebugPanel() - { - EditorGUI.indentLevel += 1; - DoTexture2D("_MainTex", "Font Atlas"); - DoFloat("_GradientScale", "Gradient Scale"); - DoFloat("_TextureWidth", "Texture Width"); - DoFloat("_TextureHeight", "Texture Height"); - EditorGUILayout.Space(); - DoFloat("_ScaleX", "Scale X"); - DoFloat("_ScaleY", "Scale Y"); - - if (m_Material.HasProperty(ShaderUtilities.ID_Sharpness)) - DoSlider("_Sharpness", "Sharpness"); - - DoSlider("_PerspectiveFilter", "Perspective Filter"); - EditorGUILayout.Space(); - DoFloat("_VertexOffsetX", "Offset X"); - DoFloat("_VertexOffsetY", "Offset Y"); - - if (m_Material.HasProperty(ShaderUtilities.ID_MaskCoord)) - { - EditorGUILayout.Space(); - s_MaskFeature.ReadState(m_Material); - s_MaskFeature.DoPopup(m_Editor, m_Material); - if (s_MaskFeature.Active) - { - DoMaskSubgroup(); - } - - EditorGUILayout.Space(); - DoVector("_ClipRect", "Clip Rect", s_LbrtVectorLabels); - } - else if (m_Material.HasProperty("_MaskTex")) - { - DoMaskTexSubgroup(); - } - else if (m_Material.HasProperty(ShaderUtilities.ID_MaskSoftnessX)) - { - EditorGUILayout.Space(); - DoFloat("_MaskSoftnessX", "Softness X"); - DoFloat("_MaskSoftnessY", "Softness Y"); - DoVector("_ClipRect", "Clip Rect", s_LbrtVectorLabels); - } - - if (m_Material.HasProperty(ShaderUtilities.ID_StencilID)) - { - EditorGUILayout.Space(); - DoFloat("_Stencil", "Stencil ID"); - DoFloat("_StencilComp", "Stencil Comp"); - } - - EditorGUILayout.Space(); - - EditorGUI.BeginChangeCheck(); - bool useRatios = EditorGUILayout.Toggle("Use Ratios", !m_Material.IsKeywordEnabled("RATIOS_OFF")); - if (EditorGUI.EndChangeCheck()) - { - m_Editor.RegisterPropertyChangeUndo("Use Ratios"); - if (useRatios) - { - m_Material.DisableKeyword("RATIOS_OFF"); - } - else - { - m_Material.EnableKeyword("RATIOS_OFF"); - } - } - - if (m_Material.HasProperty(ShaderUtilities.ShaderTag_CullMode)) - { - EditorGUILayout.Space(); - DoPopup("_CullMode", "Cull Mode", s_CullingTypeLabels); - } - - EditorGUILayout.Space(); - - EditorGUI.BeginDisabledGroup(true); - DoFloat("_ScaleRatioA", "Scale Ratio A"); - DoFloat("_ScaleRatioB", "Scale Ratio B"); - DoFloat("_ScaleRatioC", "Scale Ratio C"); - EditorGUI.EndDisabledGroup(); - EditorGUI.indentLevel -= 1; - EditorGUILayout.Space(); - } - - void DoMaskSubgroup() - { - DoVector("_MaskCoord", "Mask Bounds", s_XywhVectorLabels); - if (Selection.activeGameObject != null) - { - Renderer renderer = Selection.activeGameObject.GetComponent(); - if (renderer != null) - { - Rect rect = EditorGUILayout.GetControlRect(); - rect.x += EditorGUIUtility.labelWidth; - rect.width -= EditorGUIUtility.labelWidth; - if (GUI.Button(rect, "Match Renderer Bounds")) - { - FindProperty("_MaskCoord", m_Properties).vectorValue = new Vector4( - 0, - 0, - Mathf.Round(renderer.bounds.extents.x * 1000) / 1000, - Mathf.Round(renderer.bounds.extents.y * 1000) / 1000 - ); - } - } - } - - if (s_MaskFeature.State == 1) - { - DoFloat("_MaskSoftnessX", "Softness X"); - DoFloat("_MaskSoftnessY", "Softness Y"); - } - } - - void DoMaskTexSubgroup() - { - EditorGUILayout.Space(); - DoTexture2D("_MaskTex", "Mask Texture"); - DoToggle("_MaskInverse", "Inverse Mask"); - DoColor("_MaskEdgeColor", "Edge Color"); - DoSlider("_MaskEdgeSoftness", "Edge Softness"); - DoSlider("_MaskWipeControl", "Wipe Position"); - DoFloat("_MaskSoftnessX", "Softness X"); - DoFloat("_MaskSoftnessY", "Softness Y"); - DoVector("_ClipRect", "Clip Rect", s_LbrtVectorLabels); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SerializedPropertyHolder.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SerializedPropertyHolder.cs deleted file mode 100644 index 2ba34d6..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SerializedPropertyHolder.cs +++ /dev/null @@ -1,14 +0,0 @@ -using UnityEngine; -using UnityEditor; - -namespace TMPro -{ - class TMP_SerializedPropertyHolder : ScriptableObject - { - public TMP_FontAsset fontAsset; - public uint firstCharacter; - public uint secondCharacter; - - public TMP_GlyphPairAdjustmentRecord glyphPairAdjustmentRecord = new TMP_GlyphPairAdjustmentRecord(new TMP_GlyphAdjustmentRecord(), new TMP_GlyphAdjustmentRecord()); - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SettingsEditor.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SettingsEditor.cs deleted file mode 100644 index f8c601e..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SettingsEditor.cs +++ /dev/null @@ -1,381 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; -using UnityEditor; -using UnityEditorInternal; - -#pragma warning disable 0414 // Disabled a few warnings for not yet implemented features. - -namespace TMPro.EditorUtilities -{ - [CustomEditor(typeof(TMP_Settings))] - public class TMP_SettingsEditor : Editor - { - internal class Styles - { - public static readonly GUIContent defaultFontAssetLabel = new GUIContent("Default Font Asset", "The Font Asset that will be assigned by default to newly created text objects when no Font Asset is specified."); - public static readonly GUIContent defaultFontAssetPathLabel = new GUIContent("Path: Resources/", "The relative path to a Resources folder where the Font Assets and Material Presets are located.\nExample \"Fonts & Materials/\""); - - public static readonly GUIContent fallbackFontAssetsLabel = new GUIContent("Fallback Font Assets", "The Font Assets that will be searched to locate and replace missing characters from a given Font Asset."); - public static readonly GUIContent fallbackFontAssetsListLabel = new GUIContent("Fallback Font Assets List", "The Font Assets that will be searched to locate and replace missing characters from a given Font Asset."); - - public static readonly GUIContent fallbackMaterialSettingsLabel = new GUIContent("Fallback Material Settings"); - public static readonly GUIContent matchMaterialPresetLabel = new GUIContent("Match Material Presets"); - - public static readonly GUIContent containerDefaultSettingsLabel = new GUIContent("Text Container Default Settings"); - - public static readonly GUIContent textMeshProLabel = new GUIContent("TextMeshPro"); - public static readonly GUIContent textMeshProUiLabel = new GUIContent("TextMeshPro UI"); - public static readonly GUIContent enableRaycastTarget = new GUIContent("Enable Raycast Target"); - public static readonly GUIContent autoSizeContainerLabel = new GUIContent("Auto Size Text Container", "Set the size of the text container to match the text."); - public static readonly GUIContent isTextObjectScaleStaticLabel = new GUIContent("Is Object Scale Static", "Disables calling InternalUpdate() when enabled. This can improve performance when text object scale is static."); - - public static readonly GUIContent textComponentDefaultSettingsLabel = new GUIContent("Text Component Default Settings"); - public static readonly GUIContent defaultFontSize = new GUIContent("Default Font Size"); - public static readonly GUIContent autoSizeRatioLabel = new GUIContent("Text Auto Size Ratios"); - public static readonly GUIContent minLabel = new GUIContent("Min"); - public static readonly GUIContent maxLabel = new GUIContent("Max"); - - public static readonly GUIContent wordWrappingLabel = new GUIContent("Word Wrapping"); - public static readonly GUIContent kerningLabel = new GUIContent("Kerning"); - public static readonly GUIContent extraPaddingLabel = new GUIContent("Extra Padding"); - public static readonly GUIContent tintAllSpritesLabel = new GUIContent("Tint All Sprites"); - public static readonly GUIContent parseEscapeCharactersLabel = new GUIContent("Parse Escape Sequence"); - - public static readonly GUIContent dynamicFontSystemSettingsLabel = new GUIContent("Dynamic Font System Settings"); - public static readonly GUIContent getFontFeaturesAtRuntime = new GUIContent("Get Font Features at Runtime", "Determines if Glyph Adjustment Data will be retrieved from font files at runtime when new characters and glyphs are added to font assets."); - public static readonly GUIContent dynamicAtlasTextureGroup = new GUIContent("Dynamic Atlas Texture Group"); - - public static readonly GUIContent missingGlyphLabel = new GUIContent("Missing Character Unicode", "The character to be displayed when the requested character is not found in any font asset or fallbacks."); - public static readonly GUIContent disableWarningsLabel = new GUIContent("Disable warnings", "Disable warning messages in the Console."); - - public static readonly GUIContent defaultSpriteAssetLabel = new GUIContent("Default Sprite Asset", "The Sprite Asset that will be assigned by default when using the tag when no Sprite Asset is specified."); - public static readonly GUIContent missingSpriteCharacterUnicodeLabel = new GUIContent("Missing Sprite Unicode", "The unicode value for the sprite character to be displayed when the requested sprite character is not found in any sprite assets or fallbacks."); - public static readonly GUIContent enableEmojiSupportLabel = new GUIContent("iOS Emoji Support", "Enables Emoji support for Touch Screen Keyboards on target devices."); - //public static readonly GUIContent spriteRelativeScale = new GUIContent("Relative Scaling", "Determines if the sprites will be scaled relative to the primary font asset assigned to the text object or relative to the current font asset."); - - public static readonly GUIContent spriteAssetsPathLabel = new GUIContent("Path: Resources/", "The relative path to a Resources folder where the Sprite Assets are located.\nExample \"Sprite Assets/\""); - - public static readonly GUIContent defaultStyleSheetLabel = new GUIContent("Default Style Sheet", "The Style Sheet that will be used for all text objects in this project."); - public static readonly GUIContent styleSheetResourcePathLabel = new GUIContent("Path: Resources/", "The relative path to a Resources folder where the Style Sheets are located.\nExample \"Style Sheets/\""); - - public static readonly GUIContent colorGradientPresetsLabel = new GUIContent("Color Gradient Presets", "The relative path to a Resources folder where the Color Gradient Presets are located.\nExample \"Color Gradient Presets/\""); - public static readonly GUIContent colorGradientsPathLabel = new GUIContent("Path: Resources/", "The relative path to a Resources folder where the Color Gradient Presets are located.\nExample \"Color Gradient Presets/\""); - - public static readonly GUIContent lineBreakingLabel = new GUIContent("Line Breaking for Asian languages", "The text assets that contain the Leading and Following characters which define the rules for line breaking with Asian languages."); - public static readonly GUIContent koreanSpecificRules = new GUIContent("Korean Language Options"); - } - - SerializedProperty m_PropFontAsset; - SerializedProperty m_PropDefaultFontAssetPath; - SerializedProperty m_PropDefaultFontSize; - SerializedProperty m_PropDefaultAutoSizeMinRatio; - SerializedProperty m_PropDefaultAutoSizeMaxRatio; - SerializedProperty m_PropDefaultTextMeshProTextContainerSize; - SerializedProperty m_PropDefaultTextMeshProUITextContainerSize; - SerializedProperty m_PropAutoSizeTextContainer; - SerializedProperty m_PropEnableRaycastTarget; - SerializedProperty m_PropIsTextObjectScaleStatic; - - SerializedProperty m_PropSpriteAsset; - SerializedProperty m_PropMissingSpriteCharacterUnicode; - //SerializedProperty m_PropSpriteRelativeScaling; - SerializedProperty m_PropEnableEmojiSupport; - SerializedProperty m_PropSpriteAssetPath; - - - SerializedProperty m_PropStyleSheet; - SerializedProperty m_PropStyleSheetsResourcePath; - ReorderableList m_List; - - SerializedProperty m_PropColorGradientPresetsPath; - - SerializedProperty m_PropMatchMaterialPreset; - SerializedProperty m_PropWordWrapping; - SerializedProperty m_PropKerning; - SerializedProperty m_PropExtraPadding; - SerializedProperty m_PropTintAllSprites; - SerializedProperty m_PropParseEscapeCharacters; - SerializedProperty m_PropMissingGlyphCharacter; - - //SerializedProperty m_DynamicAtlasTextureManager; - SerializedProperty m_GetFontFeaturesAtRuntime; - - SerializedProperty m_PropWarningsDisabled; - - SerializedProperty m_PropLeadingCharacters; - SerializedProperty m_PropFollowingCharacters; - SerializedProperty m_PropUseModernHangulLineBreakingRules; - - private const string k_UndoRedo = "UndoRedoPerformed"; - - public void OnEnable() - { - if (target == null) - return; - - m_PropFontAsset = serializedObject.FindProperty("m_defaultFontAsset"); - m_PropDefaultFontAssetPath = serializedObject.FindProperty("m_defaultFontAssetPath"); - m_PropDefaultFontSize = serializedObject.FindProperty("m_defaultFontSize"); - m_PropDefaultAutoSizeMinRatio = serializedObject.FindProperty("m_defaultAutoSizeMinRatio"); - m_PropDefaultAutoSizeMaxRatio = serializedObject.FindProperty("m_defaultAutoSizeMaxRatio"); - m_PropDefaultTextMeshProTextContainerSize = serializedObject.FindProperty("m_defaultTextMeshProTextContainerSize"); - m_PropDefaultTextMeshProUITextContainerSize = serializedObject.FindProperty("m_defaultTextMeshProUITextContainerSize"); - m_PropAutoSizeTextContainer = serializedObject.FindProperty("m_autoSizeTextContainer"); - m_PropEnableRaycastTarget = serializedObject.FindProperty("m_EnableRaycastTarget"); - m_PropIsTextObjectScaleStatic = serializedObject.FindProperty("m_IsTextObjectScaleStatic"); - - m_PropSpriteAsset = serializedObject.FindProperty("m_defaultSpriteAsset"); - m_PropMissingSpriteCharacterUnicode = serializedObject.FindProperty("m_MissingCharacterSpriteUnicode"); - //m_PropSpriteRelativeScaling = serializedObject.FindProperty("m_SpriteRelativeScaling"); - m_PropEnableEmojiSupport = serializedObject.FindProperty("m_enableEmojiSupport"); - m_PropSpriteAssetPath = serializedObject.FindProperty("m_defaultSpriteAssetPath"); - - m_PropStyleSheet = serializedObject.FindProperty("m_defaultStyleSheet"); - m_PropStyleSheetsResourcePath = serializedObject.FindProperty("m_StyleSheetsResourcePath"); - - - m_PropColorGradientPresetsPath = serializedObject.FindProperty("m_defaultColorGradientPresetsPath"); - - m_List = new ReorderableList(serializedObject, serializedObject.FindProperty("m_fallbackFontAssets"), true, true, true, true); - - m_List.drawElementCallback = (rect, index, isActive, isFocused) => - { - var element = m_List.serializedProperty.GetArrayElementAtIndex(index); - rect.y += 2; - EditorGUI.PropertyField(new Rect(rect.x, rect.y, rect.width, EditorGUIUtility.singleLineHeight), element, GUIContent.none); - }; - - m_List.drawHeaderCallback = rect => - { - EditorGUI.LabelField(rect, Styles.fallbackFontAssetsListLabel); - }; - - m_PropMatchMaterialPreset = serializedObject.FindProperty("m_matchMaterialPreset"); - - m_PropWordWrapping = serializedObject.FindProperty("m_enableWordWrapping"); - m_PropKerning = serializedObject.FindProperty("m_enableKerning"); - m_PropExtraPadding = serializedObject.FindProperty("m_enableExtraPadding"); - m_PropTintAllSprites = serializedObject.FindProperty("m_enableTintAllSprites"); - m_PropParseEscapeCharacters = serializedObject.FindProperty("m_enableParseEscapeCharacters"); - m_PropMissingGlyphCharacter = serializedObject.FindProperty("m_missingGlyphCharacter"); - - m_PropWarningsDisabled = serializedObject.FindProperty("m_warningsDisabled"); - - //m_DynamicAtlasTextureManager = serializedObject.FindProperty("m_DynamicAtlasTextureGroup"); - m_GetFontFeaturesAtRuntime = serializedObject.FindProperty("m_GetFontFeaturesAtRuntime"); - - m_PropLeadingCharacters = serializedObject.FindProperty("m_leadingCharacters"); - m_PropFollowingCharacters = serializedObject.FindProperty("m_followingCharacters"); - m_PropUseModernHangulLineBreakingRules = serializedObject.FindProperty("m_UseModernHangulLineBreakingRules"); - } - - public override void OnInspectorGUI() - { - serializedObject.Update(); - string evt_cmd = Event.current.commandName; - - float labelWidth = EditorGUIUtility.labelWidth; - float fieldWidth = EditorGUIUtility.fieldWidth; - - // TextMeshPro Font Info Panel - EditorGUI.indentLevel = 0; - - // FONT ASSET - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - GUILayout.Label(Styles.defaultFontAssetLabel, EditorStyles.boldLabel); - EditorGUI.indentLevel = 1; - EditorGUILayout.PropertyField(m_PropFontAsset, Styles.defaultFontAssetLabel); - EditorGUILayout.PropertyField(m_PropDefaultFontAssetPath, Styles.defaultFontAssetPathLabel); - EditorGUI.indentLevel = 0; - - EditorGUILayout.Space(); - EditorGUILayout.EndVertical(); - - // FALLBACK FONT ASSETs - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - GUILayout.Label(Styles.fallbackFontAssetsLabel, EditorStyles.boldLabel); - m_List.DoLayoutList(); - - GUILayout.Label(Styles.fallbackMaterialSettingsLabel, EditorStyles.boldLabel); - EditorGUI.indentLevel = 1; - EditorGUILayout.PropertyField(m_PropMatchMaterialPreset, Styles.matchMaterialPresetLabel); - EditorGUI.indentLevel = 0; - - EditorGUILayout.Space(); - EditorGUILayout.EndVertical(); - - // MISSING GLYPHS - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - GUILayout.Label(Styles.dynamicFontSystemSettingsLabel, EditorStyles.boldLabel); - EditorGUI.indentLevel = 1; - EditorGUILayout.PropertyField(m_GetFontFeaturesAtRuntime, Styles.getFontFeaturesAtRuntime); - EditorGUILayout.PropertyField(m_PropMissingGlyphCharacter, Styles.missingGlyphLabel); - EditorGUILayout.PropertyField(m_PropWarningsDisabled, Styles.disableWarningsLabel); - //EditorGUILayout.PropertyField(m_DynamicAtlasTextureManager, Styles.dynamicAtlasTextureManager); - EditorGUI.indentLevel = 0; - - EditorGUILayout.Space(); - EditorGUILayout.EndVertical(); - - // TEXT OBJECT DEFAULT PROPERTIES - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - GUILayout.Label(Styles.containerDefaultSettingsLabel, EditorStyles.boldLabel); - EditorGUI.indentLevel = 1; - - EditorGUILayout.PropertyField(m_PropDefaultTextMeshProTextContainerSize, Styles.textMeshProLabel); - EditorGUILayout.PropertyField(m_PropDefaultTextMeshProUITextContainerSize, Styles.textMeshProUiLabel); - EditorGUILayout.PropertyField(m_PropEnableRaycastTarget, Styles.enableRaycastTarget); - EditorGUILayout.PropertyField(m_PropAutoSizeTextContainer, Styles.autoSizeContainerLabel); - EditorGUILayout.PropertyField(m_PropIsTextObjectScaleStatic, Styles.isTextObjectScaleStaticLabel); - EditorGUI.indentLevel = 0; - - EditorGUILayout.Space(); - - GUILayout.Label(Styles.textComponentDefaultSettingsLabel, EditorStyles.boldLabel); - EditorGUI.indentLevel = 1; - EditorGUILayout.PropertyField(m_PropDefaultFontSize, Styles.defaultFontSize); - - EditorGUILayout.BeginHorizontal(); - { - EditorGUILayout.PrefixLabel(Styles.autoSizeRatioLabel); - EditorGUIUtility.labelWidth = 32; - EditorGUIUtility.fieldWidth = 10; - - EditorGUI.indentLevel = 0; - EditorGUILayout.PropertyField(m_PropDefaultAutoSizeMinRatio, Styles.minLabel); - EditorGUILayout.PropertyField(m_PropDefaultAutoSizeMaxRatio, Styles.maxLabel); - EditorGUI.indentLevel = 1; - } - EditorGUILayout.EndHorizontal(); - - EditorGUIUtility.labelWidth = labelWidth; - EditorGUIUtility.fieldWidth = fieldWidth; - - EditorGUILayout.PropertyField(m_PropWordWrapping, Styles.wordWrappingLabel); - EditorGUILayout.PropertyField(m_PropKerning, Styles.kerningLabel); - - EditorGUILayout.PropertyField(m_PropExtraPadding, Styles.extraPaddingLabel); - EditorGUILayout.PropertyField(m_PropTintAllSprites, Styles.tintAllSpritesLabel); - - EditorGUILayout.PropertyField(m_PropParseEscapeCharacters, Styles.parseEscapeCharactersLabel); - - EditorGUI.indentLevel = 0; - - EditorGUILayout.Space(); - EditorGUILayout.EndVertical(); - - // SPRITE ASSET - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - GUILayout.Label(Styles.defaultSpriteAssetLabel, EditorStyles.boldLabel); - EditorGUI.indentLevel = 1; - EditorGUILayout.PropertyField(m_PropSpriteAsset, Styles.defaultSpriteAssetLabel); - EditorGUILayout.PropertyField(m_PropMissingSpriteCharacterUnicode, Styles.missingSpriteCharacterUnicodeLabel); - EditorGUILayout.PropertyField(m_PropEnableEmojiSupport, Styles.enableEmojiSupportLabel); - //EditorGUILayout.PropertyField(m_PropSpriteRelativeScaling, Styles.spriteRelativeScale); - EditorGUILayout.PropertyField(m_PropSpriteAssetPath, Styles.spriteAssetsPathLabel); - EditorGUI.indentLevel = 0; - - EditorGUILayout.Space(); - EditorGUILayout.EndVertical(); - - // STYLE SHEET - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - GUILayout.Label(Styles.defaultStyleSheetLabel, EditorStyles.boldLabel); - EditorGUI.indentLevel = 1; - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_PropStyleSheet, Styles.defaultStyleSheetLabel); - if (EditorGUI.EndChangeCheck()) - { - serializedObject.ApplyModifiedProperties(); - - TMP_StyleSheet styleSheet = m_PropStyleSheet.objectReferenceValue as TMP_StyleSheet; - if (styleSheet != null) - styleSheet.RefreshStyles(); - } - EditorGUILayout.PropertyField(m_PropStyleSheetsResourcePath, Styles.styleSheetResourcePathLabel); - EditorGUI.indentLevel = 0; - - EditorGUILayout.Space(); - EditorGUILayout.EndVertical(); - - // COLOR GRADIENT PRESETS - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - GUILayout.Label(Styles.colorGradientPresetsLabel, EditorStyles.boldLabel); - EditorGUI.indentLevel = 1; - EditorGUILayout.PropertyField(m_PropColorGradientPresetsPath, Styles.colorGradientsPathLabel); - EditorGUI.indentLevel = 0; - - EditorGUILayout.Space(); - EditorGUILayout.EndVertical(); - - // LINE BREAKING RULE - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - GUILayout.Label(Styles.lineBreakingLabel, EditorStyles.boldLabel); - EditorGUI.indentLevel = 1; - EditorGUILayout.PropertyField(m_PropLeadingCharacters); - EditorGUILayout.PropertyField(m_PropFollowingCharacters); - - EditorGUILayout.Space(); - GUILayout.Label(Styles.koreanSpecificRules, EditorStyles.boldLabel); - EditorGUILayout.PropertyField(m_PropUseModernHangulLineBreakingRules, new GUIContent("Use Modern Line Breaking", "Determines if traditional or modern line breaking rules will be used to control line breaking. Traditional line breaking rules use the Leading and Following Character rules whereas Modern uses spaces for line breaking.")); - - EditorGUI.indentLevel = 0; - - EditorGUILayout.Space(); - EditorGUILayout.EndVertical(); - - if (serializedObject.ApplyModifiedProperties() || evt_cmd == k_UndoRedo) - { - EditorUtility.SetDirty(target); - TMPro_EventManager.ON_TMP_SETTINGS_CHANGED(); - } - } - } - -#if UNITY_2018_3_OR_NEWER - class TMP_ResourceImporterProvider : SettingsProvider - { - TMP_PackageResourceImporter m_ResourceImporter; - - public TMP_ResourceImporterProvider() - : base("Project/TextMesh Pro", SettingsScope.Project) - { - } - - public override void OnGUI(string searchContext) - { - // Lazy creation that supports domain reload - if (m_ResourceImporter == null) - m_ResourceImporter = new TMP_PackageResourceImporter(); - - m_ResourceImporter.OnGUI(); - } - - public override void OnDeactivate() - { - if (m_ResourceImporter != null) - m_ResourceImporter.OnDestroy(); - } - - static UnityEngine.Object GetTMPSettings() - { - return Resources.Load("TMP Settings"); - } - - [SettingsProviderGroup] - static SettingsProvider[] CreateTMPSettingsProvider() - { - var providers = new List { new TMP_ResourceImporterProvider() }; - - if (GetTMPSettings() != null) - { - var provider = new AssetSettingsProvider("Project/TextMesh Pro/Settings", GetTMPSettings); - provider.PopulateSearchKeywordsFromGUIContentProperties(); - providers.Add(provider); - } - - return providers.ToArray(); - } - } -#endif -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SpriteAssetEditor.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SpriteAssetEditor.cs deleted file mode 100644 index e7d48d1..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SpriteAssetEditor.cs +++ /dev/null @@ -1,953 +0,0 @@ -using UnityEngine; -using UnityEngine.TextCore; -using UnityEditor; -using UnityEditorInternal; -using System.Collections.Generic; - - -namespace TMPro.EditorUtilities -{ - - [CustomEditor(typeof(TMP_SpriteAsset))] - public class TMP_SpriteAssetEditor : Editor - { - struct UI_PanelState - { - public static bool spriteAssetFaceInfoPanel = true; - public static bool spriteAtlasInfoPanel = true; - public static bool fallbackSpriteAssetPanel = true; - public static bool spriteCharacterTablePanel; - public static bool spriteGlyphTablePanel; - } - - private static string[] s_UiStateLabel = new string[] { "(Click to collapse) ", "(Click to expand) " }; - - int m_moveToIndex; - int m_selectedElement = -1; - int m_CurrentCharacterPage; - int m_CurrentGlyphPage; - - const string k_UndoRedo = "UndoRedoPerformed"; - - string m_CharacterSearchPattern; - List m_CharacterSearchList; - bool m_IsCharacterSearchDirty; - - string m_GlyphSearchPattern; - List m_GlyphSearchList; - bool m_IsGlyphSearchDirty; - - SerializedProperty m_FaceInfoProperty; - SerializedProperty m_PointSizeProperty; - SerializedProperty m_ScaleProperty; - SerializedProperty m_LineHeightProperty; - SerializedProperty m_AscentLineProperty; - SerializedProperty m_BaselineProperty; - SerializedProperty m_DescentLineProperty; - - SerializedProperty m_spriteAtlas_prop; - SerializedProperty m_material_prop; - SerializedProperty m_SpriteCharacterTableProperty; - SerializedProperty m_SpriteGlyphTableProperty; - ReorderableList m_fallbackSpriteAssetList; - - TMP_SpriteAsset m_SpriteAsset; - - bool isAssetDirty; - - float m_xOffset; - float m_yOffset; - float m_xAdvance; - float m_scale; - - public void OnEnable() - { - m_SpriteAsset = target as TMP_SpriteAsset; - - m_FaceInfoProperty = serializedObject.FindProperty("m_FaceInfo"); - m_PointSizeProperty = m_FaceInfoProperty.FindPropertyRelative("m_PointSize"); - m_ScaleProperty = m_FaceInfoProperty.FindPropertyRelative("m_Scale"); - m_LineHeightProperty = m_FaceInfoProperty.FindPropertyRelative("m_LineHeight"); - m_AscentLineProperty = m_FaceInfoProperty.FindPropertyRelative("m_AscentLine"); - m_BaselineProperty = m_FaceInfoProperty.FindPropertyRelative("m_Baseline"); - m_DescentLineProperty = m_FaceInfoProperty.FindPropertyRelative("m_DescentLine"); - - m_spriteAtlas_prop = serializedObject.FindProperty("spriteSheet"); - m_material_prop = serializedObject.FindProperty("material"); - m_SpriteCharacterTableProperty = serializedObject.FindProperty("m_SpriteCharacterTable"); - m_SpriteGlyphTableProperty = serializedObject.FindProperty("m_SpriteGlyphTable"); - - // Fallback TMP Sprite Asset list - m_fallbackSpriteAssetList = new ReorderableList(serializedObject, serializedObject.FindProperty("fallbackSpriteAssets"), true, true, true, true); - - m_fallbackSpriteAssetList.drawElementCallback = (Rect rect, int index, bool isActive, bool isFocused) => - { - var element = m_fallbackSpriteAssetList.serializedProperty.GetArrayElementAtIndex(index); - rect.y += 2; - EditorGUI.PropertyField(new Rect(rect.x, rect.y, rect.width, EditorGUIUtility.singleLineHeight), element, GUIContent.none); - }; - - m_fallbackSpriteAssetList.drawHeaderCallback = rect => - { - EditorGUI.LabelField(rect, new GUIContent("Fallback Sprite Asset List", "Select the Sprite Assets that will be searched and used as fallback when a given sprite is missing from this sprite asset.")); - }; - } - - - public override void OnInspectorGUI() - { - - //Debug.Log("OnInspectorGUI Called."); - Event currentEvent = Event.current; - string evt_cmd = currentEvent.commandName; // Get Current Event CommandName to check for Undo Events - - serializedObject.Update(); - - - // TEXTMESHPRO SPRITE INFO PANEL - #region Display Sprite Asset Face Info - Rect rect = EditorGUILayout.GetControlRect(false, 24); - - GUI.Label(rect, new GUIContent("Face Info - v" + m_SpriteAsset.version), TMP_UIStyleManager.sectionHeader); - - rect.x += rect.width - 132f; - rect.y += 2; - rect.width = 130f; - rect.height = 18f; - if (GUI.Button(rect, new GUIContent("Update Sprite Asset"))) - { - TMP_SpriteAssetMenu.UpdateSpriteAsset(m_SpriteAsset); - } - EditorGUI.indentLevel = 1; - - EditorGUILayout.PropertyField(m_PointSizeProperty); - EditorGUILayout.PropertyField(m_ScaleProperty); - //EditorGUILayout.PropertyField(m_LineHeightProperty); - EditorGUILayout.PropertyField(m_AscentLineProperty); - EditorGUILayout.PropertyField(m_BaselineProperty); - EditorGUILayout.PropertyField(m_DescentLineProperty); - EditorGUILayout.Space(); - #endregion - - - // ATLAS TEXTURE & MATERIAL - #region Display Atlas Texture and Material - rect = EditorGUILayout.GetControlRect(false, 24); - - if (GUI.Button(rect, new GUIContent("Atlas & Material"), TMP_UIStyleManager.sectionHeader)) - UI_PanelState.spriteAtlasInfoPanel = !UI_PanelState.spriteAtlasInfoPanel; - - GUI.Label(rect, (UI_PanelState.spriteAtlasInfoPanel ? "" : s_UiStateLabel[1]), TMP_UIStyleManager.rightLabel); - - if (UI_PanelState.spriteAtlasInfoPanel) - { - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_spriteAtlas_prop, new GUIContent("Sprite Atlas")); - if (EditorGUI.EndChangeCheck()) - { - // Assign the new sprite atlas texture to the current material - Texture2D tex = m_spriteAtlas_prop.objectReferenceValue as Texture2D; - if (tex != null) - { - Material mat = m_material_prop.objectReferenceValue as Material; - if (mat != null) - mat.mainTexture = tex; - } - } - - EditorGUILayout.PropertyField(m_material_prop, new GUIContent("Default Material")); - EditorGUILayout.Space(); - } - #endregion - - - // FALLBACK SPRITE ASSETS - #region Display Sprite Fallbacks - rect = EditorGUILayout.GetControlRect(false, 24); - EditorGUI.indentLevel = 0; - if (GUI.Button(rect, new GUIContent("Fallback Sprite Assets", "Select the Sprite Assets that will be searched and used as fallback when a given sprite is missing from this sprite asset."), TMP_UIStyleManager.sectionHeader)) - UI_PanelState.fallbackSpriteAssetPanel = !UI_PanelState.fallbackSpriteAssetPanel; - - GUI.Label(rect, (UI_PanelState.fallbackSpriteAssetPanel ? "" : s_UiStateLabel[1]), TMP_UIStyleManager.rightLabel); - - if (UI_PanelState.fallbackSpriteAssetPanel) - { - m_fallbackSpriteAssetList.DoLayoutList(); - EditorGUILayout.Space(); - } - #endregion - - - // SPRITE CHARACTER TABLE - #region Display Sprite Character Table - EditorGUI.indentLevel = 0; - rect = EditorGUILayout.GetControlRect(false, 24); - - if (GUI.Button(rect, new GUIContent("Sprite Character Table", "List of sprite characters contained in this sprite asset."), TMP_UIStyleManager.sectionHeader)) - UI_PanelState.spriteCharacterTablePanel = !UI_PanelState.spriteCharacterTablePanel; - - GUI.Label(rect, (UI_PanelState.spriteCharacterTablePanel ? "" : s_UiStateLabel[1]), TMP_UIStyleManager.rightLabel); - - if (UI_PanelState.spriteCharacterTablePanel) - { - int arraySize = m_SpriteCharacterTableProperty.arraySize; - int itemsPerPage = 10; - - // Display Glyph Management Tools - EditorGUILayout.BeginVertical(EditorStyles.helpBox, GUILayout.ExpandWidth(true)); - { - // Search Bar implementation - #region DISPLAY SEARCH BAR - EditorGUILayout.BeginHorizontal(); - { - EditorGUIUtility.labelWidth = 110f; - EditorGUI.BeginChangeCheck(); - string searchPattern = EditorGUILayout.TextField("Sprite Search", m_CharacterSearchPattern, "SearchTextField"); - if (EditorGUI.EndChangeCheck() || m_IsCharacterSearchDirty) - { - if (string.IsNullOrEmpty(searchPattern) == false) - { - //GUIUtility.keyboardControl = 0; - m_CharacterSearchPattern = searchPattern.ToLower(System.Globalization.CultureInfo.InvariantCulture).Trim(); - - // Search Glyph Table for potential matches - SearchCharacterTable(m_CharacterSearchPattern, ref m_CharacterSearchList); - } - else - m_CharacterSearchPattern = null; - - m_IsCharacterSearchDirty = false; - } - - string styleName = string.IsNullOrEmpty(m_CharacterSearchPattern) ? "SearchCancelButtonEmpty" : "SearchCancelButton"; - if (GUILayout.Button(GUIContent.none, styleName)) - { - GUIUtility.keyboardControl = 0; - m_CharacterSearchPattern = string.Empty; - } - } - EditorGUILayout.EndHorizontal(); - #endregion - - // Display Page Navigation - if (!string.IsNullOrEmpty(m_CharacterSearchPattern)) - arraySize = m_CharacterSearchList.Count; - - // Display Page Navigation - DisplayPageNavigation(ref m_CurrentCharacterPage, arraySize, itemsPerPage); - } - EditorGUILayout.EndVertical(); - - if (arraySize > 0) - { - // Display each SpriteInfo entry using the SpriteInfo property drawer. - for (int i = itemsPerPage * m_CurrentCharacterPage; i < arraySize && i < itemsPerPage * (m_CurrentCharacterPage + 1); i++) - { - // Define the start of the selection region of the element. - Rect elementStartRegion = GUILayoutUtility.GetRect(0f, 0f, GUILayout.ExpandWidth(true)); - - int elementIndex = i; - if (!string.IsNullOrEmpty(m_CharacterSearchPattern)) - elementIndex = m_CharacterSearchList[i]; - - SerializedProperty spriteCharacterProperty = m_SpriteCharacterTableProperty.GetArrayElementAtIndex(elementIndex); - - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - { - EditorGUI.BeginDisabledGroup(i != m_selectedElement); - { - EditorGUILayout.PropertyField(spriteCharacterProperty); - } - EditorGUI.EndDisabledGroup(); - } - EditorGUILayout.EndVertical(); - - // Define the end of the selection region of the element. - Rect elementEndRegion = GUILayoutUtility.GetRect(0f, 0f, GUILayout.ExpandWidth(true)); - - // Check for Item selection - Rect selectionArea = new Rect(elementStartRegion.x, elementStartRegion.y, elementEndRegion.width, elementEndRegion.y - elementStartRegion.y); - if (DoSelectionCheck(selectionArea)) - { - if (m_selectedElement == i) - { - m_selectedElement = -1; - } - else - { - m_selectedElement = i; - GUIUtility.keyboardControl = 0; - } - } - - // Draw & Handle Section Area - if (m_selectedElement == i) - { - // Draw selection highlight - TMP_EditorUtility.DrawBox(selectionArea, 2f, new Color32(40, 192, 255, 255)); - - // Draw options to MoveUp, MoveDown, Add or Remove Sprites - Rect controlRect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight * 1f); - controlRect.width /= 8; - - // Move sprite up. - bool guiEnabled = GUI.enabled; - if (i == 0) { GUI.enabled = false; } - if (GUI.Button(controlRect, "Up")) - { - SwapCharacterElements(i, i - 1); - } - GUI.enabled = guiEnabled; - - // Move sprite down. - controlRect.x += controlRect.width; - if (i == arraySize - 1) { GUI.enabled = false; } - if (GUI.Button(controlRect, "Down")) - { - SwapCharacterElements(i, i + 1); - } - GUI.enabled = guiEnabled; - - // Move sprite to new index - controlRect.x += controlRect.width * 2; - //if (i == arraySize - 1) { GUI.enabled = false; } - m_moveToIndex = EditorGUI.IntField(controlRect, m_moveToIndex); - controlRect.x -= controlRect.width; - if (GUI.Button(controlRect, "Goto")) - { - MoveCharacterToIndex(i, m_moveToIndex); - } - //controlRect.x += controlRect.width; - GUI.enabled = guiEnabled; - - // Add new Sprite - controlRect.x += controlRect.width * 4; - if (GUI.Button(controlRect, "+")) - { - m_SpriteCharacterTableProperty.arraySize += 1; - - int index = m_SpriteCharacterTableProperty.arraySize - 1; - - SerializedProperty spriteInfo_prop = m_SpriteCharacterTableProperty.GetArrayElementAtIndex(index); - - // Copy properties of the selected element - CopyCharacterSerializedProperty(m_SpriteCharacterTableProperty.GetArrayElementAtIndex(elementIndex), ref spriteInfo_prop); - - //spriteInfo_prop.FindPropertyRelative("m_Index").intValue = index; - serializedObject.ApplyModifiedProperties(); - - m_IsCharacterSearchDirty = true; - } - - // Delete selected Sprite - controlRect.x += controlRect.width; - if (m_selectedElement == -1) GUI.enabled = false; - if (GUI.Button(controlRect, "-")) - { - m_SpriteCharacterTableProperty.DeleteArrayElementAtIndex(elementIndex); - - m_selectedElement = -1; - serializedObject.ApplyModifiedProperties(); - - m_IsCharacterSearchDirty = true; - - return; - } - - - } - } - } - - DisplayPageNavigation(ref m_CurrentCharacterPage, arraySize, itemsPerPage); - - EditorGUIUtility.labelWidth = 40f; - EditorGUIUtility.fieldWidth = 20f; - - GUILayout.Space(5f); - - // GLOBAL TOOLS - #region Global Tools - /* - GUI.enabled = true; - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - rect = EditorGUILayout.GetControlRect(false, 40); - - float width = (rect.width - 75f) / 4; - EditorGUI.LabelField(rect, "Global Offsets & Scale", EditorStyles.boldLabel); - - - rect.x += 70; - bool old_ChangedState = GUI.changed; - - GUI.changed = false; - m_xOffset = EditorGUI.FloatField(new Rect(rect.x + 5f + width * 0, rect.y + 20, width - 5f, 18), new GUIContent("OX:"), m_xOffset); - if (GUI.changed) UpdateGlobalProperty("m_HorizontalBearingX", m_xOffset); - - m_yOffset = EditorGUI.FloatField(new Rect(rect.x + 5f + width * 1, rect.y + 20, width - 5f, 18), new GUIContent("OY:"), m_yOffset); - if (GUI.changed) UpdateGlobalProperty("m_HorizontalBearingY", m_yOffset); - - m_xAdvance = EditorGUI.FloatField(new Rect(rect.x + 5f + width * 2, rect.y + 20, width - 5f, 18), new GUIContent("ADV."), m_xAdvance); - if (GUI.changed) UpdateGlobalProperty("m_HorizontalAdvance", m_xAdvance); - - m_scale = EditorGUI.FloatField(new Rect(rect.x + 5f + width * 3, rect.y + 20, width - 5f, 18), new GUIContent("SF."), m_scale); - if (GUI.changed) UpdateGlobalProperty("m_Scale", m_scale); - - EditorGUILayout.EndVertical(); - - GUI.changed = old_ChangedState; - */ - #endregion - - } - #endregion - - - // SPRITE GLYPH TABLE - #region Display Sprite Glyph Table - EditorGUI.indentLevel = 0; - rect = EditorGUILayout.GetControlRect(false, 24); - - if (GUI.Button(rect, new GUIContent("Sprite Glyph Table", "A list of the SpriteGlyphs contained in this sprite asset."), TMP_UIStyleManager.sectionHeader)) - UI_PanelState.spriteGlyphTablePanel = !UI_PanelState.spriteGlyphTablePanel; - - GUI.Label(rect, (UI_PanelState.spriteGlyphTablePanel ? "" : s_UiStateLabel[1]), TMP_UIStyleManager.rightLabel); - - if (UI_PanelState.spriteGlyphTablePanel) - { - int arraySize = m_SpriteGlyphTableProperty.arraySize; - int itemsPerPage = 10; - - // Display Glyph Management Tools - EditorGUILayout.BeginVertical(EditorStyles.helpBox, GUILayout.ExpandWidth(true)); - { - // Search Bar implementation - #region DISPLAY SEARCH BAR - EditorGUILayout.BeginHorizontal(); - { - EditorGUIUtility.labelWidth = 110f; - EditorGUI.BeginChangeCheck(); - string searchPattern = EditorGUILayout.TextField("Sprite Search", m_GlyphSearchPattern, "SearchTextField"); - if (EditorGUI.EndChangeCheck() || m_IsGlyphSearchDirty) - { - if (string.IsNullOrEmpty(searchPattern) == false) - { - //GUIUtility.keyboardControl = 0; - m_GlyphSearchPattern = searchPattern.ToLower(System.Globalization.CultureInfo.InvariantCulture).Trim(); - - // Search Glyph Table for potential matches - SearchCharacterTable(m_GlyphSearchPattern, ref m_GlyphSearchList); - } - else - m_GlyphSearchPattern = null; - - m_IsGlyphSearchDirty = false; - } - - string styleName = string.IsNullOrEmpty(m_GlyphSearchPattern) ? "SearchCancelButtonEmpty" : "SearchCancelButton"; - if (GUILayout.Button(GUIContent.none, styleName)) - { - GUIUtility.keyboardControl = 0; - m_GlyphSearchPattern = string.Empty; - } - } - EditorGUILayout.EndHorizontal(); - #endregion - - // Display Page Navigation - if (!string.IsNullOrEmpty(m_GlyphSearchPattern)) - arraySize = m_GlyphSearchList.Count; - - // Display Page Navigation - DisplayPageNavigation(ref m_CurrentGlyphPage, arraySize, itemsPerPage); - } - EditorGUILayout.EndVertical(); - - if (arraySize > 0) - { - // Display each SpriteInfo entry using the SpriteInfo property drawer. - for (int i = itemsPerPage * m_CurrentGlyphPage; i < arraySize && i < itemsPerPage * (m_CurrentGlyphPage + 1); i++) - { - // Define the start of the selection region of the element. - Rect elementStartRegion = GUILayoutUtility.GetRect(0f, 0f, GUILayout.ExpandWidth(true)); - - int elementIndex = i; - if (!string.IsNullOrEmpty(m_GlyphSearchPattern)) - elementIndex = m_GlyphSearchList[i]; - - SerializedProperty spriteGlyphProperty = m_SpriteGlyphTableProperty.GetArrayElementAtIndex(elementIndex); - - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - { - EditorGUI.BeginDisabledGroup(i != m_selectedElement); - { - EditorGUILayout.PropertyField(spriteGlyphProperty); - } - EditorGUI.EndDisabledGroup(); - } - EditorGUILayout.EndVertical(); - - // Define the end of the selection region of the element. - Rect elementEndRegion = GUILayoutUtility.GetRect(0f, 0f, GUILayout.ExpandWidth(true)); - - // Check for Item selection - Rect selectionArea = new Rect(elementStartRegion.x, elementStartRegion.y, elementEndRegion.width, elementEndRegion.y - elementStartRegion.y); - if (DoSelectionCheck(selectionArea)) - { - if (m_selectedElement == i) - { - m_selectedElement = -1; - } - else - { - m_selectedElement = i; - GUIUtility.keyboardControl = 0; - } - } - - // Draw & Handle Section Area - if (m_selectedElement == i) - { - // Draw selection highlight - TMP_EditorUtility.DrawBox(selectionArea, 2f, new Color32(40, 192, 255, 255)); - - // Draw options to MoveUp, MoveDown, Add or Remove Sprites - Rect controlRect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight * 1f); - controlRect.width /= 8; - - // Move sprite up. - bool guiEnabled = GUI.enabled; - if (i == 0) { GUI.enabled = false; } - if (GUI.Button(controlRect, "Up")) - { - SwapGlyphElements(i, i - 1); - } - GUI.enabled = guiEnabled; - - // Move sprite down. - controlRect.x += controlRect.width; - if (i == arraySize - 1) { GUI.enabled = false; } - if (GUI.Button(controlRect, "Down")) - { - SwapGlyphElements(i, i + 1); - } - GUI.enabled = guiEnabled; - - // Move sprite to new index - controlRect.x += controlRect.width * 2; - //if (i == arraySize - 1) { GUI.enabled = false; } - m_moveToIndex = EditorGUI.IntField(controlRect, m_moveToIndex); - controlRect.x -= controlRect.width; - if (GUI.Button(controlRect, "Goto")) - { - MoveGlyphToIndex(i, m_moveToIndex); - } - //controlRect.x += controlRect.width; - GUI.enabled = guiEnabled; - - // Add new Sprite - controlRect.x += controlRect.width * 4; - if (GUI.Button(controlRect, "+")) - { - m_SpriteGlyphTableProperty.arraySize += 1; - - int index = m_SpriteGlyphTableProperty.arraySize - 1; - - SerializedProperty newSpriteGlyphProperty = m_SpriteGlyphTableProperty.GetArrayElementAtIndex(index); - - // Copy properties of the selected element - CopyGlyphSerializedProperty(m_SpriteGlyphTableProperty.GetArrayElementAtIndex(elementIndex), ref newSpriteGlyphProperty); - - newSpriteGlyphProperty.FindPropertyRelative("m_Index").intValue = index; - - serializedObject.ApplyModifiedProperties(); - - m_IsGlyphSearchDirty = true; - - //m_SpriteAsset.UpdateLookupTables(); - } - - // Delete selected Sprite - controlRect.x += controlRect.width; - if (m_selectedElement == -1) GUI.enabled = false; - if (GUI.Button(controlRect, "-")) - { - SerializedProperty selectedSpriteGlyphProperty = m_SpriteGlyphTableProperty.GetArrayElementAtIndex(elementIndex); - - int selectedGlyphIndex = selectedSpriteGlyphProperty.FindPropertyRelative("m_Index").intValue; - - m_SpriteGlyphTableProperty.DeleteArrayElementAtIndex(elementIndex); - - // Remove all Sprite Characters referencing this glyph. - for (int j = 0; j < m_SpriteCharacterTableProperty.arraySize; j++) - { - int glyphIndex = m_SpriteCharacterTableProperty.GetArrayElementAtIndex(j).FindPropertyRelative("m_GlyphIndex").intValue; - - if (glyphIndex == selectedGlyphIndex) - { - // Remove character - m_SpriteCharacterTableProperty.DeleteArrayElementAtIndex(j); - } - } - - m_selectedElement = -1; - serializedObject.ApplyModifiedProperties(); - - m_IsGlyphSearchDirty = true; - - //m_SpriteAsset.UpdateLookupTables(); - - return; - } - - - } - } - } - - DisplayPageNavigation(ref m_CurrentGlyphPage, arraySize, itemsPerPage); - - EditorGUIUtility.labelWidth = 40f; - EditorGUIUtility.fieldWidth = 20f; - - GUILayout.Space(5f); - - // GLOBAL TOOLS - #region Global Tools - GUI.enabled = true; - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - rect = EditorGUILayout.GetControlRect(false, 40); - - float width = (rect.width - 75f) / 4; - EditorGUI.LabelField(rect, "Global Offsets & Scale", EditorStyles.boldLabel); - - - rect.x += 70; - bool old_ChangedState = GUI.changed; - - GUI.changed = false; - m_xOffset = EditorGUI.FloatField(new Rect(rect.x + 5f + width * 0, rect.y + 20, width - 5f, 18), new GUIContent("OX:"), m_xOffset); - if (GUI.changed) UpdateGlobalProperty("m_HorizontalBearingX", m_xOffset); - - m_yOffset = EditorGUI.FloatField(new Rect(rect.x + 5f + width * 1, rect.y + 20, width - 5f, 18), new GUIContent("OY:"), m_yOffset); - if (GUI.changed) UpdateGlobalProperty("m_HorizontalBearingY", m_yOffset); - - m_xAdvance = EditorGUI.FloatField(new Rect(rect.x + 5f + width * 2, rect.y + 20, width - 5f, 18), new GUIContent("ADV."), m_xAdvance); - if (GUI.changed) UpdateGlobalProperty("m_HorizontalAdvance", m_xAdvance); - - m_scale = EditorGUI.FloatField(new Rect(rect.x + 5f + width * 3, rect.y + 20, width - 5f, 18), new GUIContent("SF."), m_scale); - if (GUI.changed) UpdateGlobalProperty("m_Scale", m_scale); - - EditorGUILayout.EndVertical(); - #endregion - - GUI.changed = old_ChangedState; - - } - #endregion - - - if (serializedObject.ApplyModifiedProperties() || evt_cmd == k_UndoRedo || isAssetDirty) - { - if (m_SpriteAsset.m_IsSpriteAssetLookupTablesDirty || evt_cmd == k_UndoRedo) - m_SpriteAsset.UpdateLookupTables(); - - TMPro_EventManager.ON_SPRITE_ASSET_PROPERTY_CHANGED(true, m_SpriteAsset); - - isAssetDirty = false; - EditorUtility.SetDirty(target); - } - - // Clear selection if mouse event was not consumed. - GUI.enabled = true; - if (currentEvent.type == EventType.MouseDown && currentEvent.button == 0) - m_selectedElement = -1; - - } - - - /// - /// - /// - /// - /// - void DisplayPageNavigation(ref int currentPage, int arraySize, int itemsPerPage) - { - Rect pagePos = EditorGUILayout.GetControlRect(false, 20); - pagePos.width /= 3; - - int shiftMultiplier = Event.current.shift ? 10 : 1; // Page + Shift goes 10 page forward - - // Previous Page - GUI.enabled = currentPage > 0; - - if (GUI.Button(pagePos, "Previous Page")) - { - currentPage -= 1 * shiftMultiplier; - //m_isNewPage = true; - } - - // Page Counter - GUI.enabled = true; - pagePos.x += pagePos.width; - int totalPages = (int)(arraySize / (float)itemsPerPage + 0.999f); - GUI.Label(pagePos, "Page " + (currentPage + 1) + " / " + totalPages, TMP_UIStyleManager.centeredLabel); - - // Next Page - pagePos.x += pagePos.width; - GUI.enabled = itemsPerPage * (currentPage + 1) < arraySize; - - if (GUI.Button(pagePos, "Next Page")) - { - currentPage += 1 * shiftMultiplier; - //m_isNewPage = true; - } - - // Clamp page range - currentPage = Mathf.Clamp(currentPage, 0, arraySize / itemsPerPage); - - GUI.enabled = true; - } - - - /// - /// Method to update the properties of all sprites - /// - /// - /// - void UpdateGlobalProperty(string property, float value) - { - int arraySize = m_SpriteGlyphTableProperty.arraySize; - - for (int i = 0; i < arraySize; i++) - { - // Get a reference to the sprite glyph. - SerializedProperty spriteGlyphProperty = m_SpriteGlyphTableProperty.GetArrayElementAtIndex(i); - - if (property == "m_Scale") - { - spriteGlyphProperty.FindPropertyRelative(property).floatValue = value; - } - else - { - SerializedProperty glyphMetricsProperty = spriteGlyphProperty.FindPropertyRelative("m_Metrics"); - glyphMetricsProperty.FindPropertyRelative(property).floatValue = value; - } - } - - GUI.changed = false; - } - - // Check if any of the Style elements were clicked on. - private bool DoSelectionCheck(Rect selectionArea) - { - Event currentEvent = Event.current; - - switch (currentEvent.type) - { - case EventType.MouseDown: - if (selectionArea.Contains(currentEvent.mousePosition) && currentEvent.button == 0) - { - currentEvent.Use(); - return true; - } - break; - } - - return false; - } - - - /// - /// Swap the sprite item at the currently selected array index to another index. - /// - /// Selected index. - /// New index. - void SwapCharacterElements(int selectedIndex, int newIndex) - { - m_SpriteCharacterTableProperty.MoveArrayElement(selectedIndex, newIndex); - m_selectedElement = newIndex; - m_IsCharacterSearchDirty = true; - m_SpriteAsset.m_IsSpriteAssetLookupTablesDirty = true; - } - - /// - /// Move Sprite Element at selected index to another index and reorder sprite list. - /// - /// - /// - void MoveCharacterToIndex(int selectedIndex, int newIndex) - { - int arraySize = m_SpriteCharacterTableProperty.arraySize; - - if (newIndex >= arraySize) - newIndex = arraySize - 1; - - m_SpriteCharacterTableProperty.MoveArrayElement(selectedIndex, newIndex); - - m_selectedElement = newIndex; - m_IsCharacterSearchDirty = true; - m_SpriteAsset.m_IsSpriteAssetLookupTablesDirty = true; - - // TODO: Need to handle switching pages if the character or glyph is moved to a different page. - } - - /// - /// - /// - /// - /// - void SwapGlyphElements(int selectedIndex, int newIndex) - { - m_SpriteGlyphTableProperty.MoveArrayElement(selectedIndex, newIndex); - m_selectedElement = newIndex; - m_IsGlyphSearchDirty = true; - m_SpriteAsset.m_IsSpriteAssetLookupTablesDirty = true; - } - - /// - /// Move Sprite Element at selected index to another index and reorder sprite list. - /// - /// - /// - void MoveGlyphToIndex(int selectedIndex, int newIndex) - { - int arraySize = m_SpriteGlyphTableProperty.arraySize; - - if (newIndex >= arraySize) - newIndex = arraySize - 1; - - m_SpriteGlyphTableProperty.MoveArrayElement(selectedIndex, newIndex); - - m_selectedElement = newIndex; - m_IsGlyphSearchDirty = true; - m_SpriteAsset.m_IsSpriteAssetLookupTablesDirty = true; - - // TODO: Need to handle switching pages if the character or glyph is moved to a different page. - } - - - /// - /// - /// - /// - /// - void CopyCharacterSerializedProperty(SerializedProperty source, ref SerializedProperty target) - { - target.FindPropertyRelative("m_Name").stringValue = source.FindPropertyRelative("m_Name").stringValue; - target.FindPropertyRelative("m_HashCode").intValue = source.FindPropertyRelative("m_HashCode").intValue; - target.FindPropertyRelative("m_Unicode").intValue = source.FindPropertyRelative("m_Unicode").intValue; - target.FindPropertyRelative("m_GlyphIndex").intValue = source.FindPropertyRelative("m_GlyphIndex").intValue; - target.FindPropertyRelative("m_Scale").floatValue = source.FindPropertyRelative("m_Scale").floatValue; - } - - void CopyGlyphSerializedProperty(SerializedProperty srcGlyph, ref SerializedProperty dstGlyph) - { - // TODO : Should make a generic function which copies each of the properties. - - // Index - dstGlyph.FindPropertyRelative("m_Index").intValue = srcGlyph.FindPropertyRelative("m_Index").intValue; - - // GlyphMetrics - SerializedProperty srcGlyphMetrics = srcGlyph.FindPropertyRelative("m_Metrics"); - SerializedProperty dstGlyphMetrics = dstGlyph.FindPropertyRelative("m_Metrics"); - - dstGlyphMetrics.FindPropertyRelative("m_Width").floatValue = srcGlyphMetrics.FindPropertyRelative("m_Width").floatValue; - dstGlyphMetrics.FindPropertyRelative("m_Height").floatValue = srcGlyphMetrics.FindPropertyRelative("m_Height").floatValue; - dstGlyphMetrics.FindPropertyRelative("m_HorizontalBearingX").floatValue = srcGlyphMetrics.FindPropertyRelative("m_HorizontalBearingX").floatValue; - dstGlyphMetrics.FindPropertyRelative("m_HorizontalBearingY").floatValue = srcGlyphMetrics.FindPropertyRelative("m_HorizontalBearingY").floatValue; - dstGlyphMetrics.FindPropertyRelative("m_HorizontalAdvance").floatValue = srcGlyphMetrics.FindPropertyRelative("m_HorizontalAdvance").floatValue; - - // GlyphRect - SerializedProperty srcGlyphRect = srcGlyph.FindPropertyRelative("m_GlyphRect"); - SerializedProperty dstGlyphRect = dstGlyph.FindPropertyRelative("m_GlyphRect"); - - dstGlyphRect.FindPropertyRelative("m_X").intValue = srcGlyphRect.FindPropertyRelative("m_X").intValue; - dstGlyphRect.FindPropertyRelative("m_Y").intValue = srcGlyphRect.FindPropertyRelative("m_Y").intValue; - dstGlyphRect.FindPropertyRelative("m_Width").intValue = srcGlyphRect.FindPropertyRelative("m_Width").intValue; - dstGlyphRect.FindPropertyRelative("m_Height").intValue = srcGlyphRect.FindPropertyRelative("m_Height").intValue; - - dstGlyph.FindPropertyRelative("m_Scale").floatValue = srcGlyph.FindPropertyRelative("m_Scale").floatValue; - dstGlyph.FindPropertyRelative("m_AtlasIndex").intValue = srcGlyph.FindPropertyRelative("m_AtlasIndex").intValue; - } - - - /// - /// - /// - /// - /// - void SearchCharacterTable(string searchPattern, ref List searchResults) - { - if (searchResults == null) searchResults = new List(); - searchResults.Clear(); - - int arraySize = m_SpriteCharacterTableProperty.arraySize; - - for (int i = 0; i < arraySize; i++) - { - SerializedProperty sourceSprite = m_SpriteCharacterTableProperty.GetArrayElementAtIndex(i); - - // Check for potential match against array index - if (i.ToString().Contains(searchPattern)) - { - searchResults.Add(i); - continue; - } - - // Check for potential match against decimal id - int id = sourceSprite.FindPropertyRelative("m_GlyphIndex").intValue; - if (id.ToString().Contains(searchPattern)) - { - searchResults.Add(i); - continue; - } - - // Check for potential match against name - string name = sourceSprite.FindPropertyRelative("m_Name").stringValue.ToLower(System.Globalization.CultureInfo.InvariantCulture).Trim(); - if (name.Contains(searchPattern)) - { - searchResults.Add(i); - continue; - } - } - } - - void SearchGlyphTable(string searchPattern, ref List searchResults) - { - if (searchResults == null) searchResults = new List(); - searchResults.Clear(); - - int arraySize = m_SpriteGlyphTableProperty.arraySize; - - for (int i = 0; i < arraySize; i++) - { - SerializedProperty sourceSprite = m_SpriteGlyphTableProperty.GetArrayElementAtIndex(i); - - // Check for potential match against array index - if (i.ToString().Contains(searchPattern)) - { - searchResults.Add(i); - continue; - } - - // Check for potential match against decimal id - int id = sourceSprite.FindPropertyRelative("m_GlyphIndex").intValue; - if (id.ToString().Contains(searchPattern)) - { - searchResults.Add(i); - continue; - } - - // Check for potential match against name - string name = sourceSprite.FindPropertyRelative("m_Name").stringValue.ToLower(System.Globalization.CultureInfo.InvariantCulture).Trim(); - if (name.Contains(searchPattern)) - { - searchResults.Add(i); - continue; - } - } - } - - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SpriteAssetImporter.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SpriteAssetImporter.cs deleted file mode 100644 index 89be4ad..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SpriteAssetImporter.cs +++ /dev/null @@ -1,257 +0,0 @@ -using System; -using UnityEngine; -using UnityEngine.TextCore; -using UnityEditor; -using System.IO; -using System.Collections.Generic; -using TMPro.EditorUtilities; -using TMPro.SpriteAssetUtilities; - -namespace TMPro -{ - public class TMP_SpriteAssetImporter : EditorWindow - { - // Create Sprite Asset Editor Window - [MenuItem("Window/TextMeshPro/Sprite Importer", false, 2026)] - public static void ShowFontAtlasCreatorWindow() - { - var window = GetWindow(); - window.titleContent = new GUIContent("Sprite Importer"); - window.Focus(); - } - - Texture2D m_SpriteAtlas; - SpriteAssetImportFormats m_SpriteDataFormat = SpriteAssetImportFormats.TexturePackerJsonArray; - TextAsset m_JsonFile; - - string m_CreationFeedback; - - TMP_SpriteAsset m_SpriteAsset; - List m_SpriteInfoList = new List(); - - /// - /// - /// - void OnEnable() - { - // Set Editor Window Size - SetEditorWindowSize(); - } - - /// - /// - /// - public void OnGUI() - { - DrawEditorPanel(); - } - - /// - /// - /// - private void OnDisable() - { - // Clean up sprite asset object that may have been created and not saved. - if (m_SpriteAsset != null && !EditorUtility.IsPersistent(m_SpriteAsset)) - DestroyImmediate(m_SpriteAsset); - } - - /// - /// - /// - void DrawEditorPanel() - { - // label - GUILayout.Label("Import Settings", EditorStyles.boldLabel); - - EditorGUI.BeginChangeCheck(); - - // Sprite Texture Selection - m_JsonFile = EditorGUILayout.ObjectField("Sprite Data Source", m_JsonFile, typeof(TextAsset), false) as TextAsset; - - m_SpriteDataFormat = (SpriteAssetImportFormats)EditorGUILayout.EnumPopup("Import Format", m_SpriteDataFormat); - - // Sprite Texture Selection - m_SpriteAtlas = EditorGUILayout.ObjectField("Sprite Texture Atlas", m_SpriteAtlas, typeof(Texture2D), false) as Texture2D; - - if (EditorGUI.EndChangeCheck()) - { - m_CreationFeedback = string.Empty; - } - - GUILayout.Space(10); - - GUI.enabled = m_JsonFile != null && m_SpriteAtlas != null && m_SpriteDataFormat != SpriteAssetImportFormats.None; - - // Create Sprite Asset - if (GUILayout.Button("Create Sprite Asset")) - { - m_CreationFeedback = string.Empty; - - // Clean up sprite asset object that may have been previously created. - if (m_SpriteAsset != null && !EditorUtility.IsPersistent(m_SpriteAsset)) - DestroyImmediate(m_SpriteAsset); - - // Read json data file - if (m_JsonFile != null) - { - switch (m_SpriteDataFormat) - { - case SpriteAssetImportFormats.TexturePackerJsonArray: - TexturePacker_JsonArray.SpriteDataObject jsonData = null; - try - { - jsonData = JsonUtility.FromJson(m_JsonFile.text); - } - catch - { - m_CreationFeedback = "The Sprite Data Source file [" + m_JsonFile.name + "] appears to be invalid or incorrectly formatted."; - } - - if (jsonData != null && jsonData.frames != null && jsonData.frames.Count > 0) - { - int spriteCount = jsonData.frames.Count; - - // Update import results - m_CreationFeedback = "Import Results\n--------------------\n"; - m_CreationFeedback += "" + spriteCount + " Sprites were imported from file."; - - // Create new Sprite Asset - m_SpriteAsset = CreateInstance(); - - // Assign sprite sheet / atlas texture to sprite asset - m_SpriteAsset.spriteSheet = m_SpriteAtlas; - - List spriteGlyphTable = new List(); - List spriteCharacterTable = new List(); - - PopulateSpriteTables(jsonData, spriteCharacterTable, spriteGlyphTable); - - m_SpriteAsset.spriteCharacterTable = spriteCharacterTable; - m_SpriteAsset.spriteGlyphTable = spriteGlyphTable; - } - break; - } - } - } - - GUI.enabled = true; - - // Creation Feedback - GUILayout.Space(5); - GUILayout.BeginVertical(EditorStyles.helpBox, GUILayout.Height(60)); - { - EditorGUILayout.TextArea(m_CreationFeedback, TMP_UIStyleManager.label); - } - GUILayout.EndVertical(); - - GUILayout.Space(5); - GUI.enabled = m_JsonFile != null && m_SpriteAtlas && m_SpriteInfoList != null && m_SpriteAsset != null; - if (GUILayout.Button("Save Sprite Asset") && m_JsonFile != null) - { - string filePath = EditorUtility.SaveFilePanel("Save Sprite Asset File", new FileInfo(AssetDatabase.GetAssetPath(m_JsonFile)).DirectoryName, m_JsonFile.name, "asset"); - - if (filePath.Length == 0) - return; - - SaveSpriteAsset(filePath); - } - GUI.enabled = true; - } - - /// - /// - /// - /// - /// - /// - private static void PopulateSpriteTables(TexturePacker_JsonArray.SpriteDataObject spriteDataObject, List spriteCharacterTable, List spriteGlyphTable) - { - List importedSprites = spriteDataObject.frames; - - float atlasHeight = spriteDataObject.meta.size.h; - - for (int i = 0; i < importedSprites.Count; i++) - { - TexturePacker_JsonArray.Frame spriteData = importedSprites[i]; - - TMP_SpriteGlyph spriteGlyph = new TMP_SpriteGlyph(); - spriteGlyph.index = (uint)i; - - spriteGlyph.metrics = new GlyphMetrics((int)spriteData.frame.w, (int)spriteData.frame.h, -spriteData.frame.w * spriteData.pivot.x, spriteData.frame.h * spriteData.pivot.y, (int)spriteData.frame.w); - spriteGlyph.glyphRect = new GlyphRect((int)spriteData.frame.x, (int)(atlasHeight - spriteData.frame.h - spriteData.frame.y), (int)spriteData.frame.w, (int)spriteData.frame.h); - spriteGlyph.scale = 1.0f; - - spriteGlyphTable.Add(spriteGlyph); - - TMP_SpriteCharacter spriteCharacter = new TMP_SpriteCharacter(0, spriteGlyph); - spriteCharacter.name = spriteData.filename.Split('.')[0]; - spriteCharacter.unicode = 0xFFFE; - spriteCharacter.scale = 1.0f; - - spriteCharacterTable.Add(spriteCharacter); - } - } - - /// - /// - /// - /// - void SaveSpriteAsset(string filePath) - { - filePath = filePath.Substring(0, filePath.Length - 6); // Trim file extension from filePath. - - string dataPath = Application.dataPath; - - if (filePath.IndexOf(dataPath, System.StringComparison.InvariantCultureIgnoreCase) == -1) - { - Debug.LogError("You're saving the font asset in a directory outside of this project folder. This is not supported. Please select a directory under \"" + dataPath + "\""); - return; - } - - string relativeAssetPath = filePath.Substring(dataPath.Length - 6); - string dirName = Path.GetDirectoryName(relativeAssetPath); - string fileName = Path.GetFileNameWithoutExtension(relativeAssetPath); - string pathNoExt = dirName + "/" + fileName; - - // Save Sprite Asset - AssetDatabase.CreateAsset(m_SpriteAsset, pathNoExt + ".asset"); - - // Set version number - m_SpriteAsset.version = "1.1.0"; - - // Compute the hash code for the sprite asset. - m_SpriteAsset.hashCode = TMP_TextUtilities.GetSimpleHashCode(m_SpriteAsset.name); - - // Add new default material for sprite asset. - AddDefaultMaterial(m_SpriteAsset); - } - - /// - /// Create and add new default material to sprite asset. - /// - /// - static void AddDefaultMaterial(TMP_SpriteAsset spriteAsset) - { - Shader shader = Shader.Find("TextMeshPro/Sprite"); - Material material = new Material(shader); - material.SetTexture(ShaderUtilities.ID_MainTex, spriteAsset.spriteSheet); - - spriteAsset.material = material; - material.hideFlags = HideFlags.HideInHierarchy; - AssetDatabase.AddObjectToAsset(material, spriteAsset); - } - - /// - /// Limits the minimum size of the editor window. - /// - void SetEditorWindowSize() - { - EditorWindow editorWindow = this; - - Vector2 currentWindowSize = editorWindow.minSize; - - editorWindow.minSize = new Vector2(Mathf.Max(230, currentWindowSize.x), Mathf.Max(300, currentWindowSize.y)); - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SpriteAssetMenu.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SpriteAssetMenu.cs deleted file mode 100644 index 344150b..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SpriteAssetMenu.cs +++ /dev/null @@ -1,389 +0,0 @@ -using UnityEngine; -using UnityEngine.TextCore; -using UnityEngine.U2D; -using UnityEditor; -using System.Linq; -using System.IO; -using System.Collections; -using System.Collections.Generic; - - -namespace TMPro.EditorUtilities -{ - public static class TMP_SpriteAssetMenu - { - // Add a Context Menu to the Sprite Asset Editor Panel to Create and Add a Default Material. - [MenuItem("CONTEXT/TMP_SpriteAsset/Add Default Material", false, 2200)] - static void CopyTexture(MenuCommand command) - { - TMP_SpriteAsset spriteAsset = (TMP_SpriteAsset)command.context; - - // Make sure the sprite asset already contains a default material - if (spriteAsset != null && spriteAsset.material == null) - { - // Add new default material for sprite asset. - AddDefaultMaterial(spriteAsset); - } - } - - // Add a Context Menu to the Sprite Asset Editor Panel to update existing sprite assets. - [MenuItem("CONTEXT/TMP_SpriteAsset/Update Sprite Asset", false, 2100)] - static void UpdateSpriteAsset(MenuCommand command) - { - TMP_SpriteAsset spriteAsset = (TMP_SpriteAsset)command.context; - - if (spriteAsset == null) - return; - - UpdateSpriteAsset(spriteAsset); - } - - internal static void UpdateSpriteAsset(TMP_SpriteAsset spriteAsset) - { - // Get a list of all the sprites contained in the texture referenced by the sprite asset. - // This only works if the texture is set to sprite mode. - string filePath = AssetDatabase.GetAssetPath(spriteAsset.spriteSheet); - - if (string.IsNullOrEmpty(filePath)) - return; - - // Get all the sprites defined in the sprite sheet texture referenced by this sprite asset. - Sprite[] sprites = AssetDatabase.LoadAllAssetsAtPath(filePath).Select(x => x as Sprite).Where(x => x != null).ToArray(); - - // Return if sprite sheet texture does not have any sprites defined in it. - if (sprites.Length == 0) - { - Debug.Log("Sprite Asset [" + spriteAsset.name + "]'s atlas texture does not appear to have any sprites defined in it. Use the Unity Sprite Editor to define sprites for this texture.", spriteAsset.spriteSheet); - return; - } - - List spriteGlyphTable = spriteAsset.spriteGlyphTable; - - // Find available glpyh indexes - uint[] existingGlyphIndexes = spriteGlyphTable.Select(x => x.index).ToArray(); - List availableGlyphIndexes = new List(); - - uint lastGlyphIndex = existingGlyphIndexes.Length > 0 ? existingGlyphIndexes.Last() : 0; - int elementIndex = 0; - for (uint i = 0; i < lastGlyphIndex; i++) - { - uint existingGlyphIndex = existingGlyphIndexes[elementIndex]; - - if (i == existingGlyphIndex) - elementIndex += 1; - else - availableGlyphIndexes.Add(i); - } - - // Iterate over sprites contained in the updated sprite sheet to identify new and / or modified sprites. - for (int i = 0; i < sprites.Length; i++) - { - Sprite sprite = sprites[i]; - - // Check if current sprites is already contained in the sprite glyph table of the sprite asset. - TMP_SpriteGlyph spriteGlyph = spriteGlyphTable.FirstOrDefault(x => x.sprite == sprite); - - if (spriteGlyph != null) - { - // update existing sprite glyph - if (spriteGlyph.glyphRect.x != sprite.rect.x || spriteGlyph.glyphRect.y != sprite.rect.y || spriteGlyph.glyphRect.width != sprite.rect.width || spriteGlyph.glyphRect.height != sprite.rect.height) - spriteGlyph.glyphRect = new GlyphRect(sprite.rect); - } - else - { - TMP_SpriteCharacter spriteCharacter; - - // Check if this sprite potentially exists under the same name in the sprite character table. - if (spriteAsset.spriteCharacterTable != null && spriteAsset.spriteCharacterTable.Count > 0) - { - spriteCharacter = spriteAsset.spriteCharacterTable.FirstOrDefault(x => x.name == sprite.name); - spriteGlyph = spriteCharacter != null ? spriteGlyphTable[(int)spriteCharacter.glyphIndex] : null; - - if (spriteGlyph != null) - { - // Update sprite reference and data - spriteGlyph.sprite = sprite; - - if (spriteGlyph.glyphRect.x != sprite.rect.x || spriteGlyph.glyphRect.y != sprite.rect.y || spriteGlyph.glyphRect.width != sprite.rect.width || spriteGlyph.glyphRect.height != sprite.rect.height) - spriteGlyph.glyphRect = new GlyphRect(sprite.rect); - } - } - - // Add new Sprite Glyph to the table - spriteGlyph = new TMP_SpriteGlyph(); - - // Get available glyph index - if (availableGlyphIndexes.Count > 0) - { - spriteGlyph.index = availableGlyphIndexes[0]; - availableGlyphIndexes.RemoveAt(0); - } - else - spriteGlyph.index = (uint)spriteGlyphTable.Count; - - spriteGlyph.metrics = new GlyphMetrics(sprite.rect.width, sprite.rect.height, -sprite.pivot.x, sprite.rect.height - sprite.pivot.y, sprite.rect.width); - spriteGlyph.glyphRect = new GlyphRect(sprite.rect); - spriteGlyph.scale = 1.0f; - spriteGlyph.sprite = sprite; - - spriteGlyphTable.Add(spriteGlyph); - - spriteCharacter = new TMP_SpriteCharacter(0xFFFE, spriteGlyph); - spriteCharacter.name = sprite.name; - spriteCharacter.scale = 1.0f; - - spriteAsset.spriteCharacterTable.Add(spriteCharacter); - } - } - - // Update Sprite Character Table to replace unicode 0x0 by 0xFFFE - for (int i = 0; i < spriteAsset.spriteCharacterTable.Count; i++) - { - TMP_SpriteCharacter spriteCharacter = spriteAsset.spriteCharacterTable[i]; - if (spriteCharacter.unicode == 0) - spriteCharacter.unicode = 0xFFFE; - } - - // Sort glyph table by glyph index - spriteAsset.SortGlyphTable(); - spriteAsset.UpdateLookupTables(); - TMPro_EventManager.ON_SPRITE_ASSET_PROPERTY_CHANGED(true, spriteAsset); - - } - - - [MenuItem("Assets/Create/TextMeshPro/Sprite Asset", false, 110)] - public static void CreateSpriteAsset() - { - Object target = Selection.activeObject; - - if (target == null || target.GetType() != typeof(Texture2D)) // && target.GetType() != typeof(SpriteAtlas))) - { - Debug.LogWarning("A texture must first be selected in order to create a TextMesh Pro Sprite Asset."); - return; - } - - // Get the path to the selected asset. - string filePathWithName = AssetDatabase.GetAssetPath(target); - string fileNameWithExtension = Path.GetFileName(filePathWithName); - string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(filePathWithName); - string filePath = filePathWithName.Replace(fileNameWithExtension, ""); - - - // Create new Sprite Asset - TMP_SpriteAsset spriteAsset = ScriptableObject.CreateInstance(); - AssetDatabase.CreateAsset(spriteAsset, filePath + fileNameWithoutExtension + ".asset"); - - spriteAsset.version = "1.1.0"; - - // Compute the hash code for the sprite asset. - spriteAsset.hashCode = TMP_TextUtilities.GetSimpleHashCode(spriteAsset.name); - - List spriteGlyphTable = new List(); - List spriteCharacterTable = new List(); - - if (target.GetType() == typeof(Texture2D)) - { - Texture2D sourceTex = target as Texture2D; - - // Assign new Sprite Sheet texture to the Sprite Asset. - spriteAsset.spriteSheet = sourceTex; - - PopulateSpriteTables(sourceTex, ref spriteCharacterTable, ref spriteGlyphTable); - - spriteAsset.spriteCharacterTable = spriteCharacterTable; - spriteAsset.spriteGlyphTable = spriteGlyphTable; - - // Add new default material for sprite asset. - AddDefaultMaterial(spriteAsset); - } - else if (target.GetType() == typeof(SpriteAtlas)) - { - //SpriteAtlas spriteAtlas = target as SpriteAtlas; - - //PopulateSpriteTables(spriteAtlas, ref spriteCharacterTable, ref spriteGlyphTable); - - //spriteAsset.spriteCharacterTable = spriteCharacterTable; - //spriteAsset.spriteGlyphTable = spriteGlyphTable; - - //spriteAsset.spriteSheet = spriteGlyphTable[0].sprite.texture; - - //// Add new default material for sprite asset. - //AddDefaultMaterial(spriteAsset); - } - - // Update Lookup tables. - spriteAsset.UpdateLookupTables(); - - // Get the Sprites contained in the Sprite Sheet - EditorUtility.SetDirty(spriteAsset); - - //spriteAsset.sprites = sprites; - - // Set source texture back to Not Readable. - //texImporter.isReadable = false; - - AssetDatabase.SaveAssets(); - - AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(spriteAsset)); // Re-import font asset to get the new updated version. - - //AssetDatabase.Refresh(); - } - - - private static void PopulateSpriteTables(Texture source, ref List spriteCharacterTable, ref List spriteGlyphTable) - { - //Debug.Log("Creating new Sprite Asset."); - - string filePath = AssetDatabase.GetAssetPath(source); - - // Get all the Sprites sorted by Index - Sprite[] sprites = AssetDatabase.LoadAllAssetsAtPath(filePath).Select(x => x as Sprite).Where(x => x != null).OrderByDescending(x => x.rect.y).ThenBy(x => x.rect.x).ToArray(); - - for (int i = 0; i < sprites.Length; i++) - { - Sprite sprite = sprites[i]; - - TMP_SpriteGlyph spriteGlyph = new TMP_SpriteGlyph(); - spriteGlyph.index = (uint)i; - spriteGlyph.metrics = new GlyphMetrics(sprite.rect.width, sprite.rect.height, -sprite.pivot.x, sprite.rect.height - sprite.pivot.y, sprite.rect.width); - spriteGlyph.glyphRect = new GlyphRect(sprite.rect); - spriteGlyph.scale = 1.0f; - spriteGlyph.sprite = sprite; - - spriteGlyphTable.Add(spriteGlyph); - - TMP_SpriteCharacter spriteCharacter = new TMP_SpriteCharacter(0xFFFE, spriteGlyph); - spriteCharacter.name = sprite.name; - spriteCharacter.scale = 1.0f; - - spriteCharacterTable.Add(spriteCharacter); - } - } - - - private static void PopulateSpriteTables(SpriteAtlas spriteAtlas, ref List spriteCharacterTable, ref List spriteGlyphTable) - { - // Get number of sprites contained in the sprite atlas. - int spriteCount = spriteAtlas.spriteCount; - Sprite[] sprites = new Sprite[spriteCount]; - - // Get all the sprites - spriteAtlas.GetSprites(sprites); - - for (int i = 0; i < sprites.Length; i++) - { - Sprite sprite = sprites[i]; - - TMP_SpriteGlyph spriteGlyph = new TMP_SpriteGlyph(); - spriteGlyph.index = (uint)i; - spriteGlyph.metrics = new GlyphMetrics(sprite.textureRect.width, sprite.textureRect.height, -sprite.pivot.x, sprite.textureRect.height - sprite.pivot.y, sprite.textureRect.width); - spriteGlyph.glyphRect = new GlyphRect(sprite.textureRect); - spriteGlyph.scale = 1.0f; - spriteGlyph.sprite = sprite; - - spriteGlyphTable.Add(spriteGlyph); - - TMP_SpriteCharacter spriteCharacter = new TMP_SpriteCharacter(0xFFFE, spriteGlyph); - spriteCharacter.name = sprite.name; - spriteCharacter.scale = 1.0f; - - spriteCharacterTable.Add(spriteCharacter); - } - } - - - /// - /// Create and add new default material to sprite asset. - /// - /// - private static void AddDefaultMaterial(TMP_SpriteAsset spriteAsset) - { - Shader shader = Shader.Find("TextMeshPro/Sprite"); - Material material = new Material(shader); - material.SetTexture(ShaderUtilities.ID_MainTex, spriteAsset.spriteSheet); - - spriteAsset.material = material; - material.hideFlags = HideFlags.HideInHierarchy; - AssetDatabase.AddObjectToAsset(material, spriteAsset); - } - - - // Update existing SpriteInfo - private static List UpdateSpriteInfo(TMP_SpriteAsset spriteAsset) - { - //Debug.Log("Updating Sprite Asset."); - - string filePath = AssetDatabase.GetAssetPath(spriteAsset.spriteSheet); - - // Get all the Sprites sorted Left to Right / Top to Bottom - Sprite[] sprites = AssetDatabase.LoadAllAssetsAtPath(filePath).Select(x => x as Sprite).Where(x => x != null).OrderByDescending(x => x.rect.y).ThenBy(x => x.rect.x).ToArray(); - - for (int i = 0; i < sprites.Length; i++) - { - Sprite sprite = sprites[i]; - - // Check if the sprite is already contained in the SpriteInfoList - int index = -1; - if (spriteAsset.spriteInfoList.Count > i && spriteAsset.spriteInfoList[i].sprite != null) - index = spriteAsset.spriteInfoList.FindIndex(item => item.sprite.GetInstanceID() == sprite.GetInstanceID()); - - // Use existing SpriteInfo if it already exists - TMP_Sprite spriteInfo = index == -1 ? new TMP_Sprite() : spriteAsset.spriteInfoList[index]; - - Rect spriteRect = sprite.rect; - spriteInfo.x = spriteRect.x; - spriteInfo.y = spriteRect.y; - spriteInfo.width = spriteRect.width; - spriteInfo.height = spriteRect.height; - - // Get Sprite Pivot - Vector2 pivot = new Vector2(0 - (sprite.bounds.min.x) / (sprite.bounds.extents.x * 2), 0 - (sprite.bounds.min.y) / (sprite.bounds.extents.y * 2)); - - // The position of the pivot influences the Offset position. - spriteInfo.pivot = new Vector2(0 - pivot.x * spriteRect.width, spriteRect.height - pivot.y * spriteRect.height); - - if (index == -1) - { - // Find the next available index for this Sprite - int[] ids = spriteAsset.spriteInfoList.Select(item => item.id).ToArray(); - - int id = 0; - for (int j = 0; j < ids.Length; j++ ) - { - if (ids[0] != 0) break; - - if (j > 0 && (ids[j] - ids[j - 1]) > 1) - { - id = ids[j - 1] + 1; - break; - } - - id = j + 1; - } - - spriteInfo.sprite = sprite; - spriteInfo.name = sprite.name; - spriteInfo.hashCode = TMP_TextUtilities.GetSimpleHashCode(spriteInfo.name); - spriteInfo.id = id; - spriteInfo.xAdvance = spriteRect.width; - spriteInfo.scale = 1.0f; - - spriteInfo.xOffset = spriteInfo.pivot.x; - spriteInfo.yOffset = spriteInfo.pivot.y; - - spriteAsset.spriteInfoList.Add(spriteInfo); - - // Sort the Sprites by ID - spriteAsset.spriteInfoList = spriteAsset.spriteInfoList.OrderBy(s => s.id).ToList(); - } - else - { - spriteAsset.spriteInfoList[index] = spriteInfo; - } - } - - return spriteAsset.spriteInfoList; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SpriteCharacterPropertyDrawer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SpriteCharacterPropertyDrawer.cs deleted file mode 100644 index bc50161..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SpriteCharacterPropertyDrawer.cs +++ /dev/null @@ -1,227 +0,0 @@ -using UnityEngine; -using UnityEngine.TextCore; -using UnityEditor; -using System.Collections; - - -namespace TMPro.EditorUtilities -{ - - [CustomPropertyDrawer(typeof(TMP_SpriteCharacter))] - public class TMP_SpriteCharacterPropertyDrawer : PropertyDrawer - { - int m_GlyphSelectedForEditing = -1; - - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - SerializedProperty prop_SpriteName = property.FindPropertyRelative("m_Name"); - SerializedProperty prop_SpriteNameHashCode = property.FindPropertyRelative("m_HashCode"); - SerializedProperty prop_SpriteUnicode = property.FindPropertyRelative("m_Unicode"); - SerializedProperty prop_SpriteGlyphIndex = property.FindPropertyRelative("m_GlyphIndex"); - SerializedProperty prop_SpriteScale = property.FindPropertyRelative("m_Scale"); - - - GUIStyle style = new GUIStyle(EditorStyles.label); - style.richText = true; - - EditorGUIUtility.labelWidth = 40f; - EditorGUIUtility.fieldWidth = 50; - - Rect rect = new Rect(position.x + 60, position.y, position.width, 49); - - // Display non-editable fields - if (GUI.enabled == false) - { - // Sprite Character Index - int spriteCharacterIndex; - int.TryParse(property.displayName.Split(' ')[1], out spriteCharacterIndex); - EditorGUI.LabelField(new Rect(rect.x, rect.y, 75f, 18), new GUIContent("Index: " + spriteCharacterIndex + ""), style); - - EditorGUI.LabelField(new Rect(rect.x + 75f, rect.y, 120f, 18), new GUIContent("Unicode: 0x" + prop_SpriteUnicode.intValue.ToString("X") + ""), style); - EditorGUI.LabelField(new Rect(rect.x + 195f, rect.y, rect.width - 255, 18), new GUIContent("Name: " + prop_SpriteName.stringValue + ""), style); - - EditorGUI.LabelField(new Rect(rect.x, rect.y + 18, 120, 18), new GUIContent("Glyph ID: " + prop_SpriteGlyphIndex.intValue + ""), style); - - // Draw Sprite Glyph (if exists) - DrawSpriteGlyph(position, property); - - EditorGUI.LabelField(new Rect(rect.x, rect.y + 36, 80, 18), new GUIContent("Scale: " + prop_SpriteScale.floatValue + ""), style); - } - else // Display editable fields - { - // Get a reference to the underlying Sprite Asset - TMP_SpriteAsset spriteAsset = property.serializedObject.targetObject as TMP_SpriteAsset; - - // Sprite Character Index - int spriteCharacterIndex; - int.TryParse(property.displayName.Split(' ')[1], out spriteCharacterIndex); - - EditorGUI.LabelField(new Rect(rect.x, rect.y, 75f, 18), new GUIContent("Index: " + spriteCharacterIndex + ""), style); - - EditorGUIUtility.labelWidth = 55f; - GUI.SetNextControlName("Unicode Input"); - EditorGUI.BeginChangeCheck(); - string unicode = EditorGUI.DelayedTextField(new Rect(rect.x + 75f, rect.y, 120, 18), "Unicode:", prop_SpriteUnicode.intValue.ToString("X")); - - if (GUI.GetNameOfFocusedControl() == "Unicode Input") - { - //Filter out unwanted characters. - char chr = Event.current.character; - if ((chr < '0' || chr > '9') && (chr < 'a' || chr > 'f') && (chr < 'A' || chr > 'F')) - { - Event.current.character = '\0'; - } - } - - if (EditorGUI.EndChangeCheck()) - { - // Update Unicode value - prop_SpriteUnicode.intValue = TMP_TextUtilities.StringHexToInt(unicode); - spriteAsset.m_IsSpriteAssetLookupTablesDirty = true; - } - - EditorGUIUtility.labelWidth = 41f; - EditorGUI.BeginChangeCheck(); - EditorGUI.DelayedTextField(new Rect(rect.x + 195f, rect.y, rect.width - 255, 18), prop_SpriteName, new GUIContent("Name:")); - if (EditorGUI.EndChangeCheck()) - { - // Recompute hashCode for new name - prop_SpriteNameHashCode.intValue = TMP_TextUtilities.GetSimpleHashCode(prop_SpriteName.stringValue); - spriteAsset.m_IsSpriteAssetLookupTablesDirty = true; - } - - EditorGUIUtility.labelWidth = 59f; - EditorGUI.BeginChangeCheck(); - EditorGUI.DelayedIntField(new Rect(rect.x, rect.y + 18, 100, 18), prop_SpriteGlyphIndex, new GUIContent("Glyph ID:")); - if (EditorGUI.EndChangeCheck()) - { - spriteAsset.m_IsSpriteAssetLookupTablesDirty = true; - } - - // Draw Sprite Glyph (if exists) - DrawSpriteGlyph(position, property); - - int glyphIndex = prop_SpriteGlyphIndex.intValue; - - // Reset glyph selection if new character has been selected. - if (GUI.enabled && m_GlyphSelectedForEditing != glyphIndex) - m_GlyphSelectedForEditing = -1; - - // Display button to edit the glyph data. - if (GUI.Button(new Rect(rect.x + 120, rect.y + 18, 75, 18), new GUIContent("Edit Glyph"))) - { - if (m_GlyphSelectedForEditing == -1) - m_GlyphSelectedForEditing = glyphIndex; - else - m_GlyphSelectedForEditing = -1; - - // Button clicks should not result in potential change. - GUI.changed = false; - } - - // Show the glyph property drawer if selected - if (glyphIndex == m_GlyphSelectedForEditing && GUI.enabled) - { - if (spriteAsset != null) - { - // Lookup glyph and draw glyph (if available) - int elementIndex = spriteAsset.spriteGlyphTable.FindIndex(item => item.index == glyphIndex); - - if (elementIndex != -1) - { - // Get a reference to the Sprite Glyph Table - SerializedProperty prop_SpriteGlyphTable = property.serializedObject.FindProperty("m_SpriteGlyphTable"); - - SerializedProperty prop_SpriteGlyph = prop_SpriteGlyphTable.GetArrayElementAtIndex(elementIndex); - SerializedProperty prop_GlyphMetrics = prop_SpriteGlyph.FindPropertyRelative("m_Metrics"); - SerializedProperty prop_GlyphRect = prop_SpriteGlyph.FindPropertyRelative("m_GlyphRect"); - - Rect newRect = EditorGUILayout.GetControlRect(false, 115); - EditorGUI.DrawRect(new Rect(newRect.x + 62, newRect.y - 20, newRect.width - 62, newRect.height - 5), new Color(0.1f, 0.1f, 0.1f, 0.45f)); - EditorGUI.DrawRect(new Rect(newRect.x + 63, newRect.y - 19, newRect.width - 64, newRect.height - 7), new Color(0.3f, 0.3f, 0.3f, 0.8f)); - - // Display GlyphRect - newRect.x += 65; - newRect.y -= 18; - newRect.width += 5; - EditorGUI.PropertyField(newRect, prop_GlyphRect); - - // Display GlyphMetrics - newRect.y += 45; - EditorGUI.PropertyField(newRect, prop_GlyphMetrics); - - rect.y += 120; - } - } - } - - EditorGUIUtility.labelWidth = 39f; - EditorGUI.PropertyField(new Rect(rect.x, rect.y + 36, 80, 18), prop_SpriteScale, new GUIContent("Scale:")); - } - } - - - public override float GetPropertyHeight(SerializedProperty property, GUIContent label) - { - return 58; - } - - - void DrawSpriteGlyph(Rect position, SerializedProperty property) - { - // Get a reference to the sprite glyph table - TMP_SpriteAsset spriteAsset = property.serializedObject.targetObject as TMP_SpriteAsset; - - if (spriteAsset == null) - return; - - int glyphIndex = property.FindPropertyRelative("m_GlyphIndex").intValue; - - // Lookup glyph and draw glyph (if available) - int elementIndex = spriteAsset.spriteGlyphTable.FindIndex(item => item.index == glyphIndex); - - if (elementIndex != -1) - { - // Get a reference to the Sprite Glyph Table - SerializedProperty prop_SpriteGlyphTable = property.serializedObject.FindProperty("m_SpriteGlyphTable"); - SerializedProperty prop_SpriteGlyph = prop_SpriteGlyphTable.GetArrayElementAtIndex(elementIndex); - SerializedProperty prop_GlyphRect = prop_SpriteGlyph.FindPropertyRelative("m_GlyphRect"); - - // Get a reference to the sprite texture - Texture tex = spriteAsset.spriteSheet; - - // Return if we don't have a texture assigned to the sprite asset. - if (tex == null) - { - Debug.LogWarning("Please assign a valid Sprite Atlas texture to the [" + spriteAsset.name + "] Sprite Asset.", spriteAsset); - return; - } - - Vector2 spriteTexPosition = new Vector2(position.x, position.y); - Vector2 spriteSize = new Vector2(48, 48); - Vector2 alignmentOffset = new Vector2((58 - spriteSize.x) / 2, (58 - spriteSize.y) / 2); - - float x = prop_GlyphRect.FindPropertyRelative("m_X").intValue; - float y = prop_GlyphRect.FindPropertyRelative("m_Y").intValue; - float spriteWidth = prop_GlyphRect.FindPropertyRelative("m_Width").intValue; - float spriteHeight = prop_GlyphRect.FindPropertyRelative("m_Height").intValue; - - if (spriteWidth >= spriteHeight) - { - spriteSize.y = spriteHeight * spriteSize.x / spriteWidth; - spriteTexPosition.y += (spriteSize.x - spriteSize.y) / 2; - } - else - { - spriteSize.x = spriteWidth * spriteSize.y / spriteHeight; - spriteTexPosition.x += (spriteSize.y - spriteSize.x) / 2; - } - - // Compute the normalized texture coordinates - Rect texCoords = new Rect(x / tex.width, y / tex.height, spriteWidth / tex.width, spriteHeight / tex.height); - GUI.DrawTextureWithTexCoords(new Rect(spriteTexPosition.x + alignmentOffset.x, spriteTexPosition.y + alignmentOffset.y, spriteSize.x, spriteSize.y), tex, texCoords, true); - } - } - - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SpriteGlyphPropertyDrawer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SpriteGlyphPropertyDrawer.cs deleted file mode 100644 index cf79bc8..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SpriteGlyphPropertyDrawer.cs +++ /dev/null @@ -1,94 +0,0 @@ -using UnityEngine; -using UnityEngine.TextCore; -using UnityEditor; -using System.Collections; - - -namespace TMPro.EditorUtilities -{ - - [CustomPropertyDrawer(typeof(TMP_SpriteGlyph))] - public class TMP_SpriteGlyphPropertyDrawer : PropertyDrawer - { - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - SerializedProperty prop_GlyphIndex = property.FindPropertyRelative("m_Index"); - SerializedProperty prop_GlyphMetrics = property.FindPropertyRelative("m_Metrics"); - SerializedProperty prop_GlyphRect = property.FindPropertyRelative("m_GlyphRect"); - SerializedProperty prop_Scale = property.FindPropertyRelative("m_Scale"); - SerializedProperty prop_AtlasIndex = property.FindPropertyRelative("m_AtlasIndex"); - - GUIStyle style = new GUIStyle(EditorStyles.label); - style.richText = true; - - Rect rect = new Rect(position.x + 70, position.y, position.width, 49); - - // Draw GlyphRect - EditorGUI.PropertyField(rect, prop_GlyphRect); - - // Draw GlyphMetrics - rect.y += 45; - EditorGUI.PropertyField(rect, prop_GlyphMetrics); - - EditorGUIUtility.labelWidth = 40f; - EditorGUI.PropertyField(new Rect(rect.x, rect.y + 65, 75, 18), prop_Scale, new GUIContent("Scale:")); - - EditorGUIUtility.labelWidth = 74f; - EditorGUI.PropertyField(new Rect(rect.x + 85, rect.y + 65, 95, 18), prop_AtlasIndex, new GUIContent("Atlas Index:")); - - DrawGlyph(position, property); - - int spriteCharacterIndex; - int.TryParse(property.displayName.Split(' ')[1], out spriteCharacterIndex); - - EditorGUI.LabelField(new Rect(position.x, position.y + 5, 64f, 18f), new GUIContent("#" + spriteCharacterIndex), style); - - float labelWidthID = GUI.skin.label.CalcSize(new GUIContent("ID: " + prop_GlyphIndex.intValue)).x; - EditorGUI.LabelField(new Rect(position.x + (64 - labelWidthID) / 2, position.y + 110, 64f, 18f), new GUIContent("ID: " + prop_GlyphIndex.intValue + ""), style); - } - - void DrawGlyph(Rect position, SerializedProperty property) - { - // Get a reference to the sprite texture - Texture tex = (property.serializedObject.targetObject as TMP_SpriteAsset).spriteSheet; - - // Return if we don't have a texture assigned to the sprite asset. - if (tex == null) - { - Debug.LogWarning("Please assign a valid Sprite Atlas texture to the [" + property.serializedObject.targetObject.name + "] Sprite Asset.", property.serializedObject.targetObject); - return; - } - - Vector2 spriteTexPosition = new Vector2(position.x, position.y); - Vector2 spriteSize = new Vector2(65, 65); - - SerializedProperty prop_GlyphRect = property.FindPropertyRelative("m_GlyphRect"); - - int spriteImageX = prop_GlyphRect.FindPropertyRelative("m_X").intValue; - int spriteImageY = prop_GlyphRect.FindPropertyRelative("m_Y").intValue; - int spriteImageWidth = prop_GlyphRect.FindPropertyRelative("m_Width").intValue; - int spriteImageHeight = prop_GlyphRect.FindPropertyRelative("m_Height").intValue; - - if (spriteImageWidth >= spriteImageHeight) - { - spriteSize.y = spriteImageHeight * spriteSize.x / spriteImageWidth; - spriteTexPosition.y += (spriteSize.x - spriteSize.y) / 2; - } - else - { - spriteSize.x = spriteImageWidth * spriteSize.y / spriteImageHeight; - spriteTexPosition.x += (spriteSize.y - spriteSize.x) / 2; - } - - // Compute the normalized texture coordinates - Rect texCoords = new Rect((float)spriteImageX / tex.width, (float)spriteImageY / tex.height, (float)spriteImageWidth / tex.width, (float)spriteImageHeight / tex.height); - GUI.DrawTextureWithTexCoords(new Rect(spriteTexPosition.x + 5, spriteTexPosition.y + 32f, spriteSize.x, spriteSize.y), tex, texCoords, true); - } - - public override float GetPropertyHeight(SerializedProperty property, GUIContent label) - { - return 130f; - } - - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_StyleAssetMenu.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_StyleAssetMenu.cs deleted file mode 100644 index 480a776..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_StyleAssetMenu.cs +++ /dev/null @@ -1,56 +0,0 @@ -using UnityEngine; -using UnityEditor; -using System.IO; -using System.Collections; - - -namespace TMPro.EditorUtilities -{ - - public static class TMP_StyleAssetMenu - { - - [MenuItem("Assets/Create/TextMeshPro/Style Sheet", false, 120)] - public static void CreateTextMeshProObjectPerform() - { - string filePath; - if (Selection.assetGUIDs.Length == 0) - { - // No asset selected. - filePath = "Assets"; - } - else - { - // Get the path of the selected folder or asset. - filePath = AssetDatabase.GUIDToAssetPath(Selection.assetGUIDs[0]); - - // Get the file extension of the selected asset as it might need to be removed. - string fileExtension = Path.GetExtension(filePath); - if (fileExtension != "") - { - filePath = Path.GetDirectoryName(filePath); - } - } - - - string filePathWithName = AssetDatabase.GenerateUniqueAssetPath(filePath + "/Text StyleSheet.asset"); - - //// Create new Style Sheet Asset. - TMP_StyleSheet styleSheet = ScriptableObject.CreateInstance(); - - // Create Normal default style - TMP_Style style = new TMP_Style("Normal", string.Empty, string.Empty); - styleSheet.styles.Add(style); - - AssetDatabase.CreateAsset(styleSheet, filePathWithName); - - EditorUtility.SetDirty(styleSheet); - - AssetDatabase.SaveAssets(); - - EditorUtility.FocusProjectWindow(); - EditorGUIUtility.PingObject(styleSheet); - } - } - -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_StyleSheetEditor.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_StyleSheetEditor.cs deleted file mode 100644 index 2968c29..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_StyleSheetEditor.cs +++ /dev/null @@ -1,318 +0,0 @@ -using System; -using UnityEngine; -using UnityEditor; - - -namespace TMPro.EditorUtilities -{ - - [CustomPropertyDrawer(typeof(TMP_Style))] - public class StyleDrawer : PropertyDrawer - { - public static readonly float height = 95f; - - public override float GetPropertyHeight(SerializedProperty property, GUIContent label) - { - return height; - } - - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - SerializedProperty nameProperty = property.FindPropertyRelative("m_Name"); - SerializedProperty hashCodeProperty = property.FindPropertyRelative("m_HashCode"); - SerializedProperty openingDefinitionProperty = property.FindPropertyRelative("m_OpeningDefinition"); - SerializedProperty closingDefinitionProperty = property.FindPropertyRelative("m_ClosingDefinition"); - SerializedProperty openingDefinitionArray = property.FindPropertyRelative("m_OpeningTagArray"); - SerializedProperty closingDefinitionArray = property.FindPropertyRelative("m_ClosingTagArray"); - - - EditorGUIUtility.labelWidth = 86; - position.height = EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; - float labelHeight = position.height + 2f; - - EditorGUI.BeginChangeCheck(); - Rect rect0 = new Rect(position.x, position.y, (position.width) / 2 + 5, position.height); - EditorGUI.PropertyField(rect0, nameProperty); - if (EditorGUI.EndChangeCheck()) - { - // Recompute HashCode if name has changed. - hashCodeProperty.intValue = TMP_TextUtilities.GetSimpleHashCode(nameProperty.stringValue); - - property.serializedObject.ApplyModifiedProperties(); - - // Dictionary needs to be updated since HashCode has changed. - TMP_StyleSheet styleSheet = property.serializedObject.targetObject as TMP_StyleSheet; - styleSheet.RefreshStyles(); - } - - // HashCode - Rect rect1 = new Rect(rect0.x + rect0.width + 5, position.y, 65, position.height); - GUI.Label(rect1, "HashCode"); - GUI.enabled = false; - rect1.x += 65; - rect1.width = position.width / 2 - 75; - EditorGUI.PropertyField(rect1, hashCodeProperty, GUIContent.none); - - GUI.enabled = true; - - // Text Tags - EditorGUI.BeginChangeCheck(); - - // Opening Tags - position.y += labelHeight; - GUI.Label(position, "Opening Tags"); - Rect textRect1 = new Rect(110, position.y, position.width - 86, 35); - openingDefinitionProperty.stringValue = EditorGUI.TextArea(textRect1, openingDefinitionProperty.stringValue); - if (EditorGUI.EndChangeCheck()) - { - // If any properties have changed, we need to update the Opening and Closing Arrays. - int size = openingDefinitionProperty.stringValue.Length; - - // Adjust array size to match new string length. - if (openingDefinitionArray.arraySize != size) openingDefinitionArray.arraySize = size; - - for (int i = 0; i < size; i++) - { - SerializedProperty element = openingDefinitionArray.GetArrayElementAtIndex(i); - element.intValue = openingDefinitionProperty.stringValue[i]; - } - } - - EditorGUI.BeginChangeCheck(); - - // Closing Tags - position.y += 38; - GUI.Label(position, "Closing Tags"); - Rect textRect2 = new Rect(110, position.y, position.width - 86, 35); - closingDefinitionProperty.stringValue = EditorGUI.TextArea(textRect2, closingDefinitionProperty.stringValue); - - if (EditorGUI.EndChangeCheck()) - { - // If any properties have changed, we need to update the Opening and Closing Arrays. - int size = closingDefinitionProperty.stringValue.Length; - - // Adjust array size to match new string length. - if (closingDefinitionArray.arraySize != size) closingDefinitionArray.arraySize = size; - - for (int i = 0; i < size; i++) - { - SerializedProperty element = closingDefinitionArray.GetArrayElementAtIndex(i); - element.intValue = closingDefinitionProperty.stringValue[i]; - } - } - - } - } - - - - [CustomEditor(typeof(TMP_StyleSheet)), CanEditMultipleObjects] - public class TMP_StyleEditor : Editor - { - - TMP_StyleSheet m_StyleSheet; - SerializedProperty m_StyleListProp; - - int m_SelectedElement = -1; - int m_Page; - - bool m_IsStyleSheetDirty; - - - void OnEnable() - { - m_StyleSheet = target as TMP_StyleSheet; - m_StyleListProp = serializedObject.FindProperty("m_StyleList"); - } - - - public override void OnInspectorGUI() - { - Event currentEvent = Event.current; - - serializedObject.Update(); - - m_IsStyleSheetDirty = false; - int elementCount = m_StyleListProp.arraySize; - int itemsPerPage = (Screen.height - 100) / 110; - - if (elementCount > 0) - { - // Display each Style entry using the StyleDrawer PropertyDrawer. - for (int i = itemsPerPage * m_Page; i < elementCount && i < itemsPerPage * (m_Page + 1); i++) - { - // Define the start of the selection region of the element. - Rect elementStartRegion = GUILayoutUtility.GetRect(0f, 0f, GUILayout.ExpandWidth(true)); - - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - - SerializedProperty styleProperty = m_StyleListProp.GetArrayElementAtIndex(i); - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(styleProperty); - EditorGUILayout.EndVertical(); - if (EditorGUI.EndChangeCheck()) - { - // - } - - // Define the end of the selection region of the element. - Rect elementEndRegion = GUILayoutUtility.GetRect(0f, 0f, GUILayout.ExpandWidth(true)); - - // Check for Item selection - Rect selectionArea = new Rect(elementStartRegion.x, elementStartRegion.y, elementEndRegion.width, elementEndRegion.y - elementStartRegion.y); - if (DoSelectionCheck(selectionArea)) - { - if (m_SelectedElement == i) - { - m_SelectedElement = -1; - } - else - { - m_SelectedElement = i; - GUIUtility.keyboardControl = 0; - } - } - - // Handle Selection Highlighting - if (m_SelectedElement == i) - TMP_EditorUtility.DrawBox(selectionArea, 2f, new Color32(40, 192, 255, 255)); - } - } - - // STYLE LIST MANAGEMENT - Rect rect = EditorGUILayout.GetControlRect(false, 20); - rect.width /= 6; - - // Move Style up. - bool guiEnabled = GUI.enabled; - if (m_SelectedElement == -1 || m_SelectedElement == 0) { GUI.enabled = false; } - if (GUI.Button(rect, "Up")) - { - SwapStyleElements(m_SelectedElement, m_SelectedElement - 1); - } - GUI.enabled = guiEnabled; - - // Move Style down. - rect.x += rect.width; - if (m_SelectedElement == elementCount - 1) { GUI.enabled = false; } - if (GUI.Button(rect, "Down")) - { - SwapStyleElements(m_SelectedElement, m_SelectedElement + 1); - } - GUI.enabled = guiEnabled; - - // Add Style - rect.x += rect.width * 3; - if (GUI.Button(rect, "+")) - { - int index = m_SelectedElement == -1 ? 0 : m_SelectedElement; - - if (index > elementCount) - index = elementCount; - - // Copy selected element - m_StyleListProp.InsertArrayElementAtIndex(index); - - // Select newly inserted element - m_SelectedElement = index + 1; - - serializedObject.ApplyModifiedProperties(); - m_StyleSheet.RefreshStyles(); - } - - // Delete style - rect.x += rect.width; - if (m_SelectedElement == -1 || m_SelectedElement >= elementCount) GUI.enabled = false; - if (GUI.Button(rect, "-")) - { - int index = m_SelectedElement == -1 ? 0 : m_SelectedElement; - - m_StyleListProp.DeleteArrayElementAtIndex(index); - - m_SelectedElement = -1; - serializedObject.ApplyModifiedProperties(); - m_StyleSheet.RefreshStyles(); - return; - } - - // Return if we can't display any items. - if (itemsPerPage == 0) return; - - // DISPLAY PAGE CONTROLS - int shiftMultiplier = currentEvent.shift ? 10 : 1; // Page + Shift goes 10 page forward - - Rect pagePos = EditorGUILayout.GetControlRect(false, 20); - pagePos.width /= 3; - - // Previous Page - if (m_Page > 0) GUI.enabled = true; - else GUI.enabled = false; - - if (GUI.Button(pagePos, "Previous")) - m_Page -= 1 * shiftMultiplier; - - // PAGE COUNTER - GUI.enabled = true; - pagePos.x += pagePos.width; - int totalPages = (int)(elementCount / (float)itemsPerPage + 0.999f); - GUI.Label(pagePos, "Page " + (m_Page + 1) + " / " + totalPages, TMP_UIStyleManager.centeredLabel); - - // Next Page - pagePos.x += pagePos.width; - if (itemsPerPage * (m_Page + 1) < elementCount) GUI.enabled = true; - else GUI.enabled = false; - - if (GUI.Button(pagePos, "Next")) - m_Page += 1 * shiftMultiplier; - - // Clamp page range - m_Page = Mathf.Clamp(m_Page, 0, elementCount / itemsPerPage); - - - if (serializedObject.ApplyModifiedProperties()) - { - TMPro_EventManager.ON_TEXT_STYLE_PROPERTY_CHANGED(true); - - if (m_IsStyleSheetDirty) - { - m_IsStyleSheetDirty = false; - m_StyleSheet.RefreshStyles(); - } - } - - // Clear selection if mouse event was not consumed. - GUI.enabled = true; - if (currentEvent.type == EventType.MouseDown && currentEvent.button == 0) - m_SelectedElement = -1; - - } - - - // Check if any of the Style elements were clicked on. - static bool DoSelectionCheck(Rect selectionArea) - { - Event currentEvent = Event.current; - - switch (currentEvent.type) - { - case EventType.MouseDown: - if (selectionArea.Contains(currentEvent.mousePosition) && currentEvent.button == 0) - { - currentEvent.Use(); - return true; - } - break; - } - - return false; - } - - void SwapStyleElements(int selectedIndex, int newIndex) - { - m_StyleListProp.MoveArrayElement(selectedIndex, newIndex); - m_SelectedElement = newIndex; - m_IsStyleSheetDirty = true; - } - - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SubMeshUI_Editor.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SubMeshUI_Editor.cs deleted file mode 100644 index 679f445..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SubMeshUI_Editor.cs +++ /dev/null @@ -1,104 +0,0 @@ -using UnityEngine; -using UnityEditor; -using System.Collections; - -namespace TMPro.EditorUtilities -{ - [CustomEditor(typeof(TMP_SubMeshUI)), CanEditMultipleObjects] - public class TMP_SubMeshUI_Editor : Editor - { - private struct m_foldout - { // Track Inspector foldout panel states, globally. - //public static bool textInput = true; - public static bool fontSettings = true; - //public static bool extraSettings = false; - //public static bool shadowSetting = false; - //public static bool materialEditor = true; - } - - private SerializedProperty fontAsset_prop; - private SerializedProperty spriteAsset_prop; - - //private TMP_SubMeshUI m_SubMeshComponent; - - //private CanvasRenderer m_canvasRenderer; - private Editor m_materialEditor; - private Material m_targetMaterial; - - - public void OnEnable() - { - fontAsset_prop = serializedObject.FindProperty("m_fontAsset"); - spriteAsset_prop = serializedObject.FindProperty("m_spriteAsset"); - - //m_SubMeshComponent = target as TMP_SubMeshUI; - //m_rectTransform = m_SubMeshComponent.rectTransform; - //m_canvasRenderer = m_SubMeshComponent.canvasRenderer; - - - // Create new Material Editor if one does not exists - /* - if (m_canvasRenderer != null && m_canvasRenderer.GetMaterial() != null) - { - m_materialEditor = Editor.CreateEditor(m_canvasRenderer.GetMaterial()); - m_targetMaterial = m_canvasRenderer.GetMaterial(); - } - */ - } - - - public void OnDisable() - { - // Destroy material editor if one exists - /* - if (m_materialEditor != null) - { - //Debug.Log("Destroying Inline Material Editor."); - DestroyImmediate(m_materialEditor); - } - */ - } - - - - public override void OnInspectorGUI() - { - GUI.enabled = false; - EditorGUILayout.PropertyField(fontAsset_prop); - EditorGUILayout.PropertyField(spriteAsset_prop); - GUI.enabled = true; - - EditorGUILayout.Space(); - - // If a Custom Material Editor exists, we use it. - /* - if (m_canvasRenderer != null && m_canvasRenderer.GetMaterial() != null) - { - Material mat = m_canvasRenderer.GetMaterial(); - - //Debug.Log(mat + " " + m_targetMaterial); - - if (mat != m_targetMaterial) - { - // Destroy previous Material Instance - //Debug.Log("New Material has been assigned."); - m_targetMaterial = mat; - DestroyImmediate(m_materialEditor); - } - - - if (m_materialEditor == null) - { - m_materialEditor = Editor.CreateEditor(mat); - } - - m_materialEditor.DrawHeader(); - - - m_materialEditor.OnInspectorGUI(); - } - */ - } - - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SubMesh_Editor.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SubMesh_Editor.cs deleted file mode 100644 index f668af9..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_SubMesh_Editor.cs +++ /dev/null @@ -1,71 +0,0 @@ -using UnityEngine; -using UnityEditor; -using System.Collections; - -namespace TMPro.EditorUtilities -{ - [CustomEditor(typeof(TMP_SubMesh)), CanEditMultipleObjects] - public class TMP_SubMesh_Editor : Editor - { - private struct m_foldout - { // Track Inspector foldout panel states, globally. - //public static bool textInput = true; - public static bool fontSettings = true; - //public static bool extraSettings = false; - //public static bool shadowSetting = false; - //public static bool materialEditor = true; - } - - private SerializedProperty fontAsset_prop; - private SerializedProperty spriteAsset_prop; - - private TMP_SubMesh m_SubMeshComponent; - private Renderer m_Renderer; - - private string[] m_SortingLayerNames; - - public void OnEnable() - { - fontAsset_prop = serializedObject.FindProperty("m_fontAsset"); - spriteAsset_prop = serializedObject.FindProperty("m_spriteAsset"); - - m_SubMeshComponent = target as TMP_SubMesh; - - m_Renderer = m_SubMeshComponent.renderer; - - m_SortingLayerNames = SortingLayerHelper.sortingLayerNames; - } - - - public override void OnInspectorGUI() - { - EditorGUI.indentLevel = 0; - - GUI.enabled = false; - EditorGUILayout.PropertyField(fontAsset_prop); - EditorGUILayout.PropertyField(spriteAsset_prop); - GUI.enabled = true; - - EditorGUI.BeginChangeCheck(); - - // Look up the layer name using the current layer ID - string oldName = SortingLayer.IDToName(m_Renderer.sortingLayerID); - - // Use the name to look up our array index into the names list - int oldLayerIndex = System.Array.IndexOf(m_SortingLayerNames, oldName); - - // Show the pop-up for the names - int newLayerIndex = EditorGUILayout.Popup("Sorting Layer", oldLayerIndex, m_SortingLayerNames); - - // If the index changes, look up the ID for the new index to store as the new ID - if (newLayerIndex != oldLayerIndex) - m_Renderer.sortingLayerID = SortingLayer.NameToID(m_SortingLayerNames[newLayerIndex]); - - // Expose the manual sorting order - int newSortingLayerOrder = EditorGUILayout.IntField("Order in Layer", m_Renderer.sortingOrder); - if (newSortingLayerOrder != m_Renderer.sortingOrder) - m_Renderer.sortingOrder = newSortingLayerOrder; - - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_TextAlignmentDrawer.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_TextAlignmentDrawer.cs deleted file mode 100644 index 1361de7..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_TextAlignmentDrawer.cs +++ /dev/null @@ -1,273 +0,0 @@ -using UnityEngine; -using UnityEditor; - -namespace TMPro.EditorUtilities -{ - - [CustomPropertyDrawer(typeof(TextAlignmentOptions))] - public class TMP_TextAlignmentDrawer : PropertyDrawer - { - const int k_AlignmentButtonWidth = 24; - const int k_AlignmentButtonHeight = 20; - const int k_WideViewWidth = 504; - const int k_ControlsSpacing = 6; - const int k_GroupWidth = k_AlignmentButtonWidth * 6; - static readonly int k_TextAlignmentHash = "DoTextAligmentControl".GetHashCode(); - - public override float GetPropertyHeight(SerializedProperty property, GUIContent label) - { - return EditorGUIUtility.currentViewWidth > k_WideViewWidth ? k_AlignmentButtonHeight : k_AlignmentButtonHeight * 2 + 3; - } - - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - var id = GUIUtility.GetControlID(k_TextAlignmentHash, FocusType.Keyboard, position); - - EditorGUI.BeginProperty(position, label, property); - { - var controlArea = EditorGUI.PrefixLabel(position, id, label); - - var horizontalAligment = new Rect(controlArea.x, controlArea.y, k_GroupWidth, k_AlignmentButtonHeight); - var verticalAligment = new Rect(!(EditorGUIUtility.currentViewWidth > k_WideViewWidth) ? controlArea.x : horizontalAligment.xMax + k_ControlsSpacing, !(EditorGUIUtility.currentViewWidth > k_WideViewWidth) ? controlArea.y + k_AlignmentButtonHeight + 3 : controlArea.y, k_GroupWidth, k_AlignmentButtonHeight); - - EditorGUI.BeginChangeCheck(); - - var selectedHorizontal = DoHorizontalAligmentControl(horizontalAligment, property); - var selectedVertical = DoVerticalAligmentControl(verticalAligment, property); - - if (EditorGUI.EndChangeCheck()) - { - var value = (0x1 << selectedHorizontal) | (0x100 << selectedVertical); - property.intValue = value; - } - } - EditorGUI.EndProperty(); - } - - static int DoHorizontalAligmentControl(Rect position, SerializedProperty alignment) - { - var selected = TMP_EditorUtility.GetHorizontalAlignmentGridValue(alignment.intValue); - - var values = new bool[6]; - - values[selected] = true; - - if (alignment.hasMultipleDifferentValues) - { - foreach (var obj in alignment.serializedObject.targetObjects) - { - var text = obj as TMP_Text; - if (text != null) - { - values[TMP_EditorUtility.GetHorizontalAlignmentGridValue((int)text.alignment)] = true; - } - } - } - - position.width = k_AlignmentButtonWidth; - - for (var i = 0; i < values.Length; i++) - { - var oldValue = values[i]; - var newValue = TMP_EditorUtility.EditorToggle(position, oldValue, TMP_UIStyleManager.alignContentA[i], i == 0 ? TMP_UIStyleManager.alignmentButtonLeft : (i == 5 ? TMP_UIStyleManager.alignmentButtonRight : TMP_UIStyleManager.alignmentButtonMid)); - if (newValue != oldValue) - { - selected = i; - } - position.x += position.width; - } - - return selected; - } - - static int DoVerticalAligmentControl(Rect position, SerializedProperty alignment) - { - var selected = TMP_EditorUtility.GetVerticalAlignmentGridValue(alignment.intValue); - - var values = new bool[6]; - - values[selected] = true; - - if (alignment.hasMultipleDifferentValues) - { - foreach (var obj in alignment.serializedObject.targetObjects) - { - var text = obj as TMP_Text; - if (text != null) - { - values[TMP_EditorUtility.GetVerticalAlignmentGridValue((int)text.alignment)] = true; - } - } - } - - position.width = k_AlignmentButtonWidth; - - for (var i = 0; i < values.Length; i++) - { - var oldValue = values[i]; - var newValue = TMP_EditorUtility.EditorToggle(position, oldValue, TMP_UIStyleManager.alignContentB[i], i == 0 ? TMP_UIStyleManager.alignmentButtonLeft : (i == 5 ? TMP_UIStyleManager.alignmentButtonRight : TMP_UIStyleManager.alignmentButtonMid)); - if (newValue != oldValue) - { - selected = i; - } - position.x += position.width; - } - - return selected; - } - } - - [CustomPropertyDrawer(typeof(HorizontalAlignmentOptions))] - public class TMP_HorizontalAlignmentDrawer : PropertyDrawer - { - const int k_AlignmentButtonWidth = 24; - const int k_AlignmentButtonHeight = 20; - const int k_WideViewWidth = 504; - const int k_ControlsSpacing = 6; - const int k_GroupWidth = k_AlignmentButtonWidth * 6; - static readonly int k_TextAlignmentHash = "DoTextAligmentControl".GetHashCode(); - - public override float GetPropertyHeight(SerializedProperty property, GUIContent label) - { - return EditorGUIUtility.currentViewWidth > k_WideViewWidth ? k_AlignmentButtonHeight : k_AlignmentButtonHeight * 2 + 3; - } - - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - var id = GUIUtility.GetControlID(k_TextAlignmentHash, FocusType.Keyboard, position); - - EditorGUI.BeginProperty(position, label, property); - { - var controlArea = EditorGUI.PrefixLabel(position, id, label); - - var horizontalAligment = new Rect(controlArea.x, controlArea.y, k_GroupWidth, k_AlignmentButtonHeight); - //var verticalAligment = new Rect(!(EditorGUIUtility.currentViewWidth > k_WideViewWidth) ? controlArea.x : horizontalAligment.xMax + k_ControlsSpacing, !(EditorGUIUtility.currentViewWidth > k_WideViewWidth) ? controlArea.y + k_AlignmentButtonHeight + 3 : controlArea.y, k_GroupWidth, k_AlignmentButtonHeight); - - EditorGUI.BeginChangeCheck(); - - var selectedHorizontal = DoHorizontalAligmentControl(horizontalAligment, property); - - if (EditorGUI.EndChangeCheck()) - { - var value = 0x1 << selectedHorizontal; - property.intValue = value; - } - } - EditorGUI.EndProperty(); - } - - static int DoHorizontalAligmentControl(Rect position, SerializedProperty alignment) - { - var selected = TMP_EditorUtility.GetHorizontalAlignmentGridValue(alignment.intValue); - - var values = new bool[6]; - - values[selected] = true; - - if (alignment.hasMultipleDifferentValues) - { - foreach (var obj in alignment.serializedObject.targetObjects) - { - var text = obj as TMP_Text; - if (text != null) - { - values[TMP_EditorUtility.GetHorizontalAlignmentGridValue((int)text.horizontalAlignment)] = true; - } - } - } - - position.width = k_AlignmentButtonWidth; - - for (var i = 0; i < values.Length; i++) - { - var oldValue = values[i]; - var newValue = TMP_EditorUtility.EditorToggle(position, oldValue, TMP_UIStyleManager.alignContentA[i], i == 0 ? TMP_UIStyleManager.alignmentButtonLeft : (i == 5 ? TMP_UIStyleManager.alignmentButtonRight : TMP_UIStyleManager.alignmentButtonMid)); - if (newValue != oldValue) - { - selected = i; - } - position.x += position.width; - } - - return selected; - } - } - - - [CustomPropertyDrawer(typeof(VerticalAlignmentOptions))] - public class TMP_VerticalAlignmentDrawer : PropertyDrawer - { - const int k_AlignmentButtonWidth = 24; - const int k_AlignmentButtonHeight = 20; - const int k_WideViewWidth = 504; - const int k_ControlsSpacing = 6; - const int k_GroupWidth = k_AlignmentButtonWidth * 6; - static readonly int k_TextAlignmentHash = "DoTextAligmentControl".GetHashCode(); - - public override float GetPropertyHeight(SerializedProperty property, GUIContent label) - { - return EditorGUIUtility.currentViewWidth > k_WideViewWidth ? k_AlignmentButtonHeight : k_AlignmentButtonHeight * 2 + 3; - } - - public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) - { - var id = GUIUtility.GetControlID(k_TextAlignmentHash, FocusType.Keyboard, position); - - EditorGUI.BeginProperty(position, label, property); - { - var controlArea = EditorGUI.PrefixLabel(position, id, label); - - var horizontalAligment = new Rect(controlArea.x, controlArea.y, k_GroupWidth, k_AlignmentButtonHeight); - var verticalAligment = new Rect(!(EditorGUIUtility.currentViewWidth > k_WideViewWidth) ? controlArea.x : horizontalAligment.xMax + k_ControlsSpacing, !(EditorGUIUtility.currentViewWidth > k_WideViewWidth) ? controlArea.y + k_AlignmentButtonHeight + 3 : controlArea.y, k_GroupWidth, k_AlignmentButtonHeight); - - EditorGUI.BeginChangeCheck(); - - //var selectedHorizontal = DoHorizontalAligmentControl(horizontalAligment, property); - var selectedVertical = DoVerticalAligmentControl(verticalAligment, property); - - if (EditorGUI.EndChangeCheck()) - { - var value = 0x100 << selectedVertical; - property.intValue = value; - } - } - EditorGUI.EndProperty(); - } - - static int DoVerticalAligmentControl(Rect position, SerializedProperty alignment) - { - var selected = TMP_EditorUtility.GetVerticalAlignmentGridValue(alignment.intValue); - - var values = new bool[6]; - - values[selected] = true; - - if (alignment.hasMultipleDifferentValues) - { - foreach (var obj in alignment.serializedObject.targetObjects) - { - var text = obj as TMP_Text; - if (text != null) - { - values[TMP_EditorUtility.GetVerticalAlignmentGridValue((int)text.verticalAlignment)] = true; - } - } - } - - position.width = k_AlignmentButtonWidth; - - for (var i = 0; i < values.Length; i++) - { - var oldValue = values[i]; - var newValue = TMP_EditorUtility.EditorToggle(position, oldValue, TMP_UIStyleManager.alignContentB[i], i == 0 ? TMP_UIStyleManager.alignmentButtonLeft : (i == 5 ? TMP_UIStyleManager.alignmentButtonRight : TMP_UIStyleManager.alignmentButtonMid)); - if (newValue != oldValue) - { - selected = i; - } - position.x += position.width; - } - - return selected; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_UIStyleManager.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_UIStyleManager.cs deleted file mode 100644 index 0a94a99..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMP_UIStyleManager.cs +++ /dev/null @@ -1,134 +0,0 @@ -using UnityEngine; -using UnityEditor; -using System.Collections; - - -namespace TMPro.EditorUtilities -{ - - public static class TMP_UIStyleManager - { - public static GUIStyle label; - public static GUIStyle textAreaBoxWindow; - public static GUIStyle boldFoldout; - public static GUIStyle panelTitle; - public static GUIStyle sectionHeader; - public static GUIStyle centeredLabel; - public static GUIStyle rightLabel; - public static GUIStyle wrappingTextArea; - - public static GUIStyle alignmentButtonLeft; - public static GUIStyle alignmentButtonMid; - public static GUIStyle alignmentButtonRight; - - // Alignment Button Textures - public static Texture2D alignLeft; - public static Texture2D alignCenter; - public static Texture2D alignRight; - public static Texture2D alignJustified; - public static Texture2D alignFlush; - public static Texture2D alignGeoCenter; - public static Texture2D alignTop; - public static Texture2D alignMiddle; - public static Texture2D alignBottom; - public static Texture2D alignBaseline; - public static Texture2D alignMidline; - public static Texture2D alignCapline; - public static Texture2D sectionHeaderTexture; - - public static GUIContent[] alignContentA; - public static GUIContent[] alignContentB; - - static TMP_UIStyleManager() - { - // Find to location of the TextMesh Pro Asset Folder (as users may have moved it) - var tmproAssetFolderPath = TMP_EditorUtility.packageRelativePath; - - if (EditorGUIUtility.isProSkin) - { - alignLeft = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignLeft.psd", typeof(Texture2D)) as Texture2D; - alignCenter = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCenter.psd", typeof(Texture2D)) as Texture2D; - alignRight = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignRight.psd", typeof(Texture2D)) as Texture2D; - alignJustified = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignJustified.psd", typeof(Texture2D)) as Texture2D; - alignFlush = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignFlush.psd", typeof(Texture2D)) as Texture2D; - alignGeoCenter = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCenterGeo.psd", typeof(Texture2D)) as Texture2D; - alignTop = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignTop.psd", typeof(Texture2D)) as Texture2D; - alignMiddle = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignMiddle.psd", typeof(Texture2D)) as Texture2D; - alignBottom = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignBottom.psd", typeof(Texture2D)) as Texture2D; - alignBaseline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignBaseLine.psd", typeof(Texture2D)) as Texture2D; - alignMidline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignMidLine.psd", typeof(Texture2D)) as Texture2D; - alignCapline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCapLine.psd", typeof(Texture2D)) as Texture2D; - sectionHeaderTexture = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/SectionHeader_Dark.psd", typeof(Texture2D)) as Texture2D; - } - else - { - alignLeft = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignLeft_Light.psd", typeof(Texture2D)) as Texture2D; - alignCenter = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCenter_Light.psd", typeof(Texture2D)) as Texture2D; - alignRight = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignRight_Light.psd", typeof(Texture2D)) as Texture2D; - alignJustified = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignJustified_Light.psd", typeof(Texture2D)) as Texture2D; - alignFlush = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignFlush_Light.psd", typeof(Texture2D)) as Texture2D; - alignGeoCenter = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCenterGeo_Light.psd", typeof(Texture2D)) as Texture2D; - alignTop = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignTop_Light.psd", typeof(Texture2D)) as Texture2D; - alignMiddle = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignMiddle_Light.psd", typeof(Texture2D)) as Texture2D; - alignBottom = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignBottom_Light.psd", typeof(Texture2D)) as Texture2D; - alignBaseline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignBaseLine_Light.psd", typeof(Texture2D)) as Texture2D; - alignMidline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignMidLine_Light.psd", typeof(Texture2D)) as Texture2D; - alignCapline = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/btn_AlignCapLine_Light.psd", typeof(Texture2D)) as Texture2D; - sectionHeaderTexture = AssetDatabase.LoadAssetAtPath(tmproAssetFolderPath + "/Editor Resources/Textures/SectionHeader_Light.psd", typeof(Texture2D)) as Texture2D; - } - - label = new GUIStyle(EditorStyles.label) { richText = true, wordWrap = true, stretchWidth = true }; - textAreaBoxWindow = new GUIStyle(EditorStyles.textArea) { richText = true }; - boldFoldout = new GUIStyle(EditorStyles.foldout) { fontStyle = FontStyle.Bold }; - panelTitle = new GUIStyle(EditorStyles.label) { fontStyle = FontStyle.Bold }; - - sectionHeader = new GUIStyle(EditorStyles.label) { fixedHeight = 22, richText = true, border = new RectOffset(9, 9, 0, 0), overflow = new RectOffset(9, 0, 0, 0), padding = new RectOffset(0, 0, 4, 0) }; - sectionHeader.normal.background = sectionHeaderTexture; - - centeredLabel = new GUIStyle(EditorStyles.label) { alignment = TextAnchor.MiddleCenter}; - rightLabel = new GUIStyle(EditorStyles.label) { alignment = TextAnchor.MiddleRight, richText = true }; - - - alignmentButtonLeft = new GUIStyle(EditorStyles.miniButtonLeft); - alignmentButtonLeft.padding.left = 4; - alignmentButtonLeft.padding.right = 4; - alignmentButtonLeft.padding.top = 2; - alignmentButtonLeft.padding.bottom = 2; - - alignmentButtonMid = new GUIStyle(EditorStyles.miniButtonMid); - alignmentButtonMid.padding.left = 4; - alignmentButtonMid.padding.right = 4; - alignmentButtonLeft.padding.top = 2; - alignmentButtonLeft.padding.bottom = 2; - - alignmentButtonRight = new GUIStyle(EditorStyles.miniButtonRight); - alignmentButtonRight.padding.left = 4; - alignmentButtonRight.padding.right = 4; - alignmentButtonLeft.padding.top = 2; - alignmentButtonLeft.padding.bottom = 2; - - wrappingTextArea = new GUIStyle(EditorStyles.textArea); - wrappingTextArea.wordWrap = true; - - alignContentA = new [] - { - new GUIContent(alignLeft, "Left"), - new GUIContent(alignCenter, "Center"), - new GUIContent(alignRight, "Right"), - new GUIContent(alignJustified, "Justified"), - new GUIContent(alignFlush, "Flush"), - new GUIContent(alignGeoCenter, "Geometry Center") - }; - - alignContentB = new [] - { - new GUIContent(alignTop, "Top"), - new GUIContent(alignMiddle, "Middle"), - new GUIContent(alignBottom, "Bottom"), - new GUIContent(alignBaseline, "Baseline"), - new GUIContent(alignMidline, "Midline"), - new GUIContent(alignCapline, "Capline") - }; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_ContextMenus.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_ContextMenus.cs deleted file mode 100644 index a01760d..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_ContextMenus.cs +++ /dev/null @@ -1,367 +0,0 @@ -using UnityEngine; -using UnityEditor; -using System.IO; -using System.Collections; - - -namespace TMPro.EditorUtilities -{ - - public class TMP_ContextMenus : Editor - { - - private static Texture m_copiedTexture; - - private static Material m_copiedProperties; - private static Material m_copiedAtlasProperties; - - - // Add a Context Menu to the Texture Editor Panel to allow Copy / Paste of Texture. - [MenuItem("CONTEXT/Texture/Copy", false, 2000)] - static void CopyTexture(MenuCommand command) - { - m_copiedTexture = command.context as Texture; - } - - - // Select the currently assigned material or material preset. - [MenuItem("CONTEXT/Material/Select Material", false, 500)] - static void SelectMaterial(MenuCommand command) - { - Material mat = command.context as Material; - - // Select current material - EditorUtility.FocusProjectWindow(); - EditorGUIUtility.PingObject(mat); - } - - - // Add a Context Menu to allow easy duplication of the Material. - [MenuItem("CONTEXT/Material/Create Material Preset", false)] - static void DuplicateMaterial(MenuCommand command) - { - // Get the type of text object - // If material is not a base material, we get material leaks... - - Material source_Mat = (Material)command.context; - if (!EditorUtility.IsPersistent(source_Mat)) - { - Debug.LogWarning("Material is an instance and cannot be converted into a persistent asset."); - return; - } - - string assetPath = AssetDatabase.GetAssetPath(source_Mat).Split('.')[0]; - - if (assetPath.IndexOf("Assets/", System.StringComparison.InvariantCultureIgnoreCase) == -1) - { - Debug.LogWarning("Material Preset cannot be created from a material that is located outside the project."); - return; - } - - Material duplicate = new Material(source_Mat); - - // Need to manually copy the shader keywords - duplicate.shaderKeywords = source_Mat.shaderKeywords; - - AssetDatabase.CreateAsset(duplicate, AssetDatabase.GenerateUniqueAssetPath(assetPath + ".mat")); - - GameObject[] selectedObjects = Selection.gameObjects; - - // Assign new Material Preset to selected text objects. - for (int i = 0; i < selectedObjects.Length; i++) - { - TMP_Text textObject = selectedObjects[i].GetComponent(); - - if (textObject != null) - { - textObject.fontSharedMaterial = duplicate; - } - else - { - TMP_SubMesh subMeshObject = selectedObjects[i].GetComponent(); - - if (subMeshObject != null) - subMeshObject.sharedMaterial = duplicate; - else - { - TMP_SubMeshUI subMeshUIObject = selectedObjects[i].GetComponent(); - - if (subMeshUIObject != null) - subMeshUIObject.sharedMaterial = duplicate; - } - } - } - - // Ping newly created Material Preset. - EditorUtility.FocusProjectWindow(); - EditorGUIUtility.PingObject(duplicate); - } - - - // COPY MATERIAL PROPERTIES - [MenuItem("CONTEXT/Material/Copy Material Properties", false)] - static void CopyMaterialProperties(MenuCommand command) - { - Material mat = null; - if (command.context.GetType() == typeof(Material)) - mat = (Material)command.context; - else - { - mat = Selection.activeGameObject.GetComponent().GetMaterial(); - } - - m_copiedProperties = new Material(mat); - - m_copiedProperties.shaderKeywords = mat.shaderKeywords; - - m_copiedProperties.hideFlags = HideFlags.DontSave; - } - - - // PASTE MATERIAL - //[MenuItem("CONTEXT/MaterialComponent/Paste Material Properties", false)] - [MenuItem("CONTEXT/Material/Paste Material Properties", false)] - static void PasteMaterialProperties(MenuCommand command) - { - if (m_copiedProperties == null) - { - Debug.LogWarning("No Material Properties to Paste. Use Copy Material Properties first."); - return; - } - - Material mat = null; - if (command.context.GetType() == typeof(Material)) - mat = (Material)command.context; - else - { - mat = Selection.activeGameObject.GetComponent().GetMaterial(); - } - - Undo.RecordObject(mat, "Paste Material"); - - ShaderUtilities.GetShaderPropertyIDs(); // Make sure we have valid Property IDs - if (mat.HasProperty(ShaderUtilities.ID_GradientScale)) - { - // Preserve unique SDF properties from destination material. - m_copiedProperties.SetTexture(ShaderUtilities.ID_MainTex, mat.GetTexture(ShaderUtilities.ID_MainTex)); - m_copiedProperties.SetFloat(ShaderUtilities.ID_GradientScale, mat.GetFloat(ShaderUtilities.ID_GradientScale)); - m_copiedProperties.SetFloat(ShaderUtilities.ID_TextureWidth, mat.GetFloat(ShaderUtilities.ID_TextureWidth)); - m_copiedProperties.SetFloat(ShaderUtilities.ID_TextureHeight, mat.GetFloat(ShaderUtilities.ID_TextureHeight)); - } - - EditorShaderUtilities.CopyMaterialProperties(m_copiedProperties, mat); - - // Copy ShaderKeywords from one material to the other. - mat.shaderKeywords = m_copiedProperties.shaderKeywords; - - // Let TextMeshPro Objects that this mat has changed. - TMPro_EventManager.ON_MATERIAL_PROPERTY_CHANGED(true, mat); - } - - - // Enable Resetting of Material properties without losing unique properties of the font atlas. - [MenuItem("CONTEXT/Material/Reset", false, 2100)] - static void ResetSettings(MenuCommand command) - { - Material mat = null; - if (command.context.GetType() == typeof(Material)) - mat = (Material)command.context; - else - { - mat = Selection.activeGameObject.GetComponent().GetMaterial(); - } - - Undo.RecordObject(mat, "Reset Material"); - - ShaderUtilities.GetShaderPropertyIDs(); // Make sure we have valid Property IDs - if (mat.HasProperty(ShaderUtilities.ID_GradientScale)) - { - // Copy unique properties of the SDF Material - var texture = mat.GetTexture(ShaderUtilities.ID_MainTex); - var gradientScale = mat.GetFloat(ShaderUtilities.ID_GradientScale); - var texWidth = mat.GetFloat(ShaderUtilities.ID_TextureWidth); - var texHeight = mat.GetFloat(ShaderUtilities.ID_TextureHeight); - - var stencilId = 0.0f; - var stencilComp = 0.0f; - - if (mat.HasProperty(ShaderUtilities.ID_StencilID)) - { - stencilId = mat.GetFloat(ShaderUtilities.ID_StencilID); - stencilComp = mat.GetFloat(ShaderUtilities.ID_StencilComp); - } - - var normalWeight = mat.GetFloat(ShaderUtilities.ID_WeightNormal); - var boldWeight = mat.GetFloat(ShaderUtilities.ID_WeightBold); - - // Reset the material - Unsupported.SmartReset(mat); - - // Reset ShaderKeywords - mat.shaderKeywords = new string[0]; // { "BEVEL_OFF", "GLOW_OFF", "UNDERLAY_OFF" }; - - // Copy unique material properties back to the material. - mat.SetTexture(ShaderUtilities.ID_MainTex, texture); - mat.SetFloat(ShaderUtilities.ID_GradientScale, gradientScale); - mat.SetFloat(ShaderUtilities.ID_TextureWidth, texWidth); - mat.SetFloat(ShaderUtilities.ID_TextureHeight, texHeight); - - if (mat.HasProperty(ShaderUtilities.ID_StencilID)) - { - mat.SetFloat(ShaderUtilities.ID_StencilID, stencilId); - mat.SetFloat(ShaderUtilities.ID_StencilComp, stencilComp); - } - - mat.SetFloat(ShaderUtilities.ID_WeightNormal, normalWeight); - mat.SetFloat(ShaderUtilities.ID_WeightBold, boldWeight); - } - else - { - Unsupported.SmartReset(mat); - } - - TMPro_EventManager.ON_MATERIAL_PROPERTY_CHANGED(true, mat); - } - - - //This function is used for debugging and fixing potentially broken font atlas links. - [MenuItem("CONTEXT/Material/Copy Atlas", false, 2000)] - static void CopyAtlas(MenuCommand command) - { - Material mat = command.context as Material; - - m_copiedAtlasProperties = new Material(mat); - m_copiedAtlasProperties.hideFlags = HideFlags.DontSave; - } - - - // This function is used for debugging and fixing potentially broken font atlas links - [MenuItem("CONTEXT/Material/Paste Atlas", false, 2001)] - static void PasteAtlas(MenuCommand command) - { - Material mat = command.context as Material; - - if (mat == null) - return; - - if (m_copiedAtlasProperties != null) - { - Undo.RecordObject(mat, "Paste Texture"); - - ShaderUtilities.GetShaderPropertyIDs(); // Make sure we have valid Property IDs - - if (m_copiedAtlasProperties.HasProperty(ShaderUtilities.ID_MainTex)) - mat.SetTexture(ShaderUtilities.ID_MainTex, m_copiedAtlasProperties.GetTexture(ShaderUtilities.ID_MainTex)); - - if (m_copiedAtlasProperties.HasProperty(ShaderUtilities.ID_GradientScale)) - { - mat.SetFloat(ShaderUtilities.ID_GradientScale, m_copiedAtlasProperties.GetFloat(ShaderUtilities.ID_GradientScale)); - mat.SetFloat(ShaderUtilities.ID_TextureWidth, m_copiedAtlasProperties.GetFloat(ShaderUtilities.ID_TextureWidth)); - mat.SetFloat(ShaderUtilities.ID_TextureHeight, m_copiedAtlasProperties.GetFloat(ShaderUtilities.ID_TextureHeight)); - } - } - else if (m_copiedTexture != null) - { - Undo.RecordObject(mat, "Paste Texture"); - - mat.SetTexture(ShaderUtilities.ID_MainTex, m_copiedTexture); - } - - //DestroyImmediate(m_copiedAtlasProperties); - } - - - // Context Menus for TMPro Font Assets - //This function is used for debugging and fixing potentially broken font atlas links. - [MenuItem("CONTEXT/TMP_FontAsset/Extract Atlas", false, 2100)] - static void ExtractAtlas(MenuCommand command) - { - TMP_FontAsset font = command.context as TMP_FontAsset; - - string fontPath = AssetDatabase.GetAssetPath(font); - string texPath = Path.GetDirectoryName(fontPath) + "/" + Path.GetFileNameWithoutExtension(fontPath) + " Atlas.png"; - - // Create a Serialized Object of the texture to allow us to make it readable. - SerializedObject texprop = new SerializedObject(font.material.GetTexture(ShaderUtilities.ID_MainTex)); - texprop.FindProperty("m_IsReadable").boolValue = true; - texprop.ApplyModifiedProperties(); - - // Create a copy of the texture. - Texture2D tex = Instantiate(font.material.GetTexture(ShaderUtilities.ID_MainTex)) as Texture2D; - - // Set the texture to not readable again. - texprop.FindProperty("m_IsReadable").boolValue = false; - texprop.ApplyModifiedProperties(); - - Debug.Log(texPath); - // Saving File for Debug - var pngData = tex.EncodeToPNG(); - File.WriteAllBytes(texPath, pngData); - - AssetDatabase.Refresh(); - DestroyImmediate(tex); - } - - /// - /// - /// - /// - [MenuItem("CONTEXT/TMP_FontAsset/Update Atlas Texture...", false, 2000)] - static void RegenerateFontAsset(MenuCommand command) - { - TMP_FontAsset fontAsset = command.context as TMP_FontAsset; - - if (fontAsset != null) - { - TMPro_FontAssetCreatorWindow.ShowFontAtlasCreatorWindow(fontAsset); - } - } - - [MenuItem("CONTEXT/TMP_FontAsset/Force Upgrade To Version 1.1.0...", false, 2010)] - static void ForceFontAssetUpgrade(MenuCommand command) - { - TMP_FontAsset fontAsset = command.context as TMP_FontAsset; - - if (fontAsset != null) - { - fontAsset.UpgradeFontAsset(); - TMPro_EventManager.ON_FONT_PROPERTY_CHANGED(true, fontAsset); - } - } - - - /// - /// Clear Dynamic Font Asset data such as glyph, character and font features. - /// - /// - [MenuItem("CONTEXT/TMP_FontAsset/Reset", false, 100)] - static void ClearFontAssetData(MenuCommand command) - { - TMP_FontAsset fontAsset = command.context as TMP_FontAsset; - - if (fontAsset != null && Selection.activeObject != fontAsset) - { - Selection.activeObject = fontAsset; - } - - fontAsset.ClearFontAssetData(true); - - TMPro_EventManager.ON_FONT_PROPERTY_CHANGED(true, fontAsset); - } - - - [MenuItem("CONTEXT/TrueTypeFontImporter/Create TMP Font Asset...", false, 200)] - static void CreateFontAsset(MenuCommand command) - { - TrueTypeFontImporter importer = command.context as TrueTypeFontImporter; - - if (importer != null) - { - Font sourceFontFile = AssetDatabase.LoadAssetAtPath(importer.assetPath); - - if (sourceFontFile) - TMPro_FontAssetCreatorWindow.ShowFontAtlasCreatorWindow(sourceFontFile); - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_CreateObjectMenu.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_CreateObjectMenu.cs deleted file mode 100644 index 99b83a6..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_CreateObjectMenu.cs +++ /dev/null @@ -1,392 +0,0 @@ -using UnityEngine; -using UnityEditor; -using UnityEditor.Presets; -using UnityEditor.SceneManagement; -using UnityEditor.Experimental.SceneManagement; -using UnityEngine.SceneManagement; -using UnityEngine.UI; -using UnityEngine.EventSystems; - - -namespace TMPro.EditorUtilities -{ - public static class TMPro_CreateObjectMenu - { - - /// - /// Create a TextMeshPro object that works with the Mesh Renderer - /// - /// - [MenuItem("GameObject/3D Object/Text - TextMeshPro", false, 30)] - static void CreateTextMeshProObjectPerform(MenuCommand command) - { - GameObject go = ObjectFactory.CreateGameObject("Text (TMP)"); - - // Add support for new prefab mode - StageUtility.PlaceGameObjectInCurrentStage(go); - - TextMeshPro textComponent = ObjectFactory.AddComponent(go); - - if (textComponent.m_isWaitingOnResourceLoad == false) - { - // Get reference to potential Presets for component - #if UNITY_2019_3_OR_NEWER - Preset[] presets = Preset.GetDefaultPresetsForObject(textComponent); - - if (presets == null || presets.Length == 0) - { - textComponent.text = "Sample text"; - textComponent.alignment = TextAlignmentOptions.TopLeft; - } - else - { - textComponent.renderer.sortingLayerID = textComponent._SortingLayerID; - textComponent.renderer.sortingOrder = textComponent._SortingOrder; - } - #else - if (Preset.GetDefaultForObject(textComponent) == null) - { - textComponent.text = "Sample text"; - textComponent.alignment = TextAlignmentOptions.TopLeft; - } - else - { - textComponent.renderer.sortingLayerID = textComponent._SortingLayerID; - textComponent.renderer.sortingOrder = textComponent._SortingOrder; - } - #endif - - if (TMP_Settings.autoSizeTextContainer) - { - Vector2 size = textComponent.GetPreferredValues(TMP_Math.FLOAT_MAX, TMP_Math.FLOAT_MAX); - textComponent.rectTransform.sizeDelta = size; - } - else - { - textComponent.rectTransform.sizeDelta = TMP_Settings.defaultTextMeshProTextContainerSize; - } - } - else - { - textComponent.text = "Sample text"; - textComponent.alignment = TextAlignmentOptions.TopLeft; - } - - Undo.RegisterCreatedObjectUndo(go, "Create " + go.name); - - GameObject contextObject = command.context as GameObject; - if (contextObject != null) - { - GameObjectUtility.SetParentAndAlign(go, contextObject); - Undo.SetTransformParent(go.transform, contextObject.transform, "Parent " + go.name); - } - - Selection.activeGameObject = go; - } - - - /// - /// Create a TextMeshPro object that works with the CanvasRenderer - /// - /// - [MenuItem("GameObject/UI/Text - TextMeshPro", false, 2001)] - static void CreateTextMeshProGuiObjectPerform(MenuCommand menuCommand) - { - GameObject go = TMP_DefaultControls.CreateText(GetStandardResources()); - - // Override text color and font size - TextMeshProUGUI textComponent = go.GetComponent(); - - if (textComponent.m_isWaitingOnResourceLoad == false) - { - // Get reference to potential Presets for component - #if UNITY_2019_3_OR_NEWER - Preset[] presets = Preset.GetDefaultPresetsForObject(textComponent); - - if (presets == null || presets.Length == 0) - { - textComponent.fontSize = TMP_Settings.defaultFontSize; - textComponent.color = Color.white; - textComponent.text = "New Text"; - } - #else - if (Preset.GetDefaultForObject(textComponent) == null) - { - textComponent.fontSize = TMP_Settings.defaultFontSize; - textComponent.color = Color.white; - textComponent.text = "New Text"; - } - #endif - - if (TMP_Settings.autoSizeTextContainer) - { - Vector2 size = textComponent.GetPreferredValues(TMP_Math.FLOAT_MAX, TMP_Math.FLOAT_MAX); - textComponent.rectTransform.sizeDelta = size; - } - else - { - textComponent.rectTransform.sizeDelta = TMP_Settings.defaultTextMeshProUITextContainerSize; - } - } - else - { - textComponent.fontSize = 36; - textComponent.color = Color.white; - textComponent.text = "New Text"; - } - - PlaceUIElementRoot(go, menuCommand); - } - - [MenuItem("GameObject/UI/Button - TextMeshPro", false, 2031)] - public static void AddButton(MenuCommand menuCommand) - { - GameObject go = TMP_DefaultControls.CreateButton(GetStandardResources()); - - // Override font size - TMP_Text textComponent = go.GetComponentInChildren(); - textComponent.fontSize = 24; - - PlaceUIElementRoot(go, menuCommand); - } - - - - [MenuItem("GameObject/UI/Input Field - TextMeshPro", false, 2037)] - static void AddTextMeshProInputField(MenuCommand menuCommand) - { - GameObject go = TMP_DefaultControls.CreateInputField(GetStandardResources()); - PlaceUIElementRoot(go, menuCommand); - } - - - [MenuItem("GameObject/UI/Dropdown - TextMeshPro", false, 2036)] - public static void AddDropdown(MenuCommand menuCommand) - { - GameObject go = TMP_DefaultControls.CreateDropdown(GetStandardResources()); - PlaceUIElementRoot(go, menuCommand); - } - - - private const string kUILayerName = "UI"; - - private const string kStandardSpritePath = "UI/Skin/UISprite.psd"; - private const string kBackgroundSpritePath = "UI/Skin/Background.psd"; - private const string kInputFieldBackgroundPath = "UI/Skin/InputFieldBackground.psd"; - private const string kKnobPath = "UI/Skin/Knob.psd"; - private const string kCheckmarkPath = "UI/Skin/Checkmark.psd"; - private const string kDropdownArrowPath = "UI/Skin/DropdownArrow.psd"; - private const string kMaskPath = "UI/Skin/UIMask.psd"; - - private static TMP_DefaultControls.Resources s_StandardResources; - - - private static TMP_DefaultControls.Resources GetStandardResources() - { - if (s_StandardResources.standard == null) - { - s_StandardResources.standard = AssetDatabase.GetBuiltinExtraResource(kStandardSpritePath); - s_StandardResources.background = AssetDatabase.GetBuiltinExtraResource(kBackgroundSpritePath); - s_StandardResources.inputField = AssetDatabase.GetBuiltinExtraResource(kInputFieldBackgroundPath); - s_StandardResources.knob = AssetDatabase.GetBuiltinExtraResource(kKnobPath); - s_StandardResources.checkmark = AssetDatabase.GetBuiltinExtraResource(kCheckmarkPath); - s_StandardResources.dropdown = AssetDatabase.GetBuiltinExtraResource(kDropdownArrowPath); - s_StandardResources.mask = AssetDatabase.GetBuiltinExtraResource(kMaskPath); - } - return s_StandardResources; - } - - - private static void SetPositionVisibleinSceneView(RectTransform canvasRTransform, RectTransform itemTransform) - { - // Find the best scene view - SceneView sceneView = SceneView.lastActiveSceneView; - if (sceneView == null && SceneView.sceneViews.Count > 0) - sceneView = SceneView.sceneViews[0] as SceneView; - - // Couldn't find a SceneView. Don't set position. - if (sceneView == null || sceneView.camera == null) - return; - - // Create world space Plane from canvas position. - Camera camera = sceneView.camera; - Vector3 position = Vector3.zero; - Vector2 localPlanePosition; - - if (RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasRTransform, new Vector2(camera.pixelWidth / 2, camera.pixelHeight / 2), camera, out localPlanePosition)) - { - // Adjust for canvas pivot - localPlanePosition.x = localPlanePosition.x + canvasRTransform.sizeDelta.x * canvasRTransform.pivot.x; - localPlanePosition.y = localPlanePosition.y + canvasRTransform.sizeDelta.y * canvasRTransform.pivot.y; - - localPlanePosition.x = Mathf.Clamp(localPlanePosition.x, 0, canvasRTransform.sizeDelta.x); - localPlanePosition.y = Mathf.Clamp(localPlanePosition.y, 0, canvasRTransform.sizeDelta.y); - - // Adjust for anchoring - position.x = localPlanePosition.x - canvasRTransform.sizeDelta.x * itemTransform.anchorMin.x; - position.y = localPlanePosition.y - canvasRTransform.sizeDelta.y * itemTransform.anchorMin.y; - - Vector3 minLocalPosition; - minLocalPosition.x = canvasRTransform.sizeDelta.x * (0 - canvasRTransform.pivot.x) + itemTransform.sizeDelta.x * itemTransform.pivot.x; - minLocalPosition.y = canvasRTransform.sizeDelta.y * (0 - canvasRTransform.pivot.y) + itemTransform.sizeDelta.y * itemTransform.pivot.y; - - Vector3 maxLocalPosition; - maxLocalPosition.x = canvasRTransform.sizeDelta.x * (1 - canvasRTransform.pivot.x) - itemTransform.sizeDelta.x * itemTransform.pivot.x; - maxLocalPosition.y = canvasRTransform.sizeDelta.y * (1 - canvasRTransform.pivot.y) - itemTransform.sizeDelta.y * itemTransform.pivot.y; - - position.x = Mathf.Clamp(position.x, minLocalPosition.x, maxLocalPosition.x); - position.y = Mathf.Clamp(position.y, minLocalPosition.y, maxLocalPosition.y); - } - - itemTransform.anchoredPosition = position; - itemTransform.localRotation = Quaternion.identity; - itemTransform.localScale = Vector3.one; - } - - - private static void PlaceUIElementRoot(GameObject element, MenuCommand menuCommand) - { - GameObject parent = menuCommand.context as GameObject; - bool explicitParentChoice = true; - if (parent == null) - { - parent = GetOrCreateCanvasGameObject(); - explicitParentChoice = false; - - // If in Prefab Mode, Canvas has to be part of Prefab contents, - // otherwise use Prefab root instead. - PrefabStage prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - if (prefabStage != null && !prefabStage.IsPartOfPrefabContents(parent)) - parent = prefabStage.prefabContentsRoot; - } - if (parent.GetComponentInParent() == null) - { - // Create canvas under context GameObject, - // and make that be the parent which UI element is added under. - GameObject canvas = CreateNewUI(); - canvas.transform.SetParent(parent.transform, false); - parent = canvas; - } - - // Setting the element to be a child of an element already in the scene should - // be sufficient to also move the element to that scene. - // However, it seems the element needs to be already in its destination scene when the - // RegisterCreatedObjectUndo is performed; otherwise the scene it was created in is dirtied. - SceneManager.MoveGameObjectToScene(element, parent.scene); - - if (element.transform.parent == null) - { - Undo.SetTransformParent(element.transform, parent.transform, "Parent " + element.name); - } - - GameObjectUtility.EnsureUniqueNameForSibling(element); - - // We have to fix up the undo name since the name of the object was only known after reparenting it. - Undo.SetCurrentGroupName("Create " + element.name); - - GameObjectUtility.SetParentAndAlign(element, parent); - if (!explicitParentChoice) // not a context click, so center in sceneview - SetPositionVisibleinSceneView(parent.GetComponent(), element.GetComponent()); - - Undo.RegisterCreatedObjectUndo(element, "Create " + element.name); - - Selection.activeGameObject = element; - } - - - public static GameObject CreateNewUI() - { - // Root for the UI - var root = new GameObject("Canvas"); - root.layer = LayerMask.NameToLayer(kUILayerName); - Canvas canvas = root.AddComponent(); - canvas.renderMode = RenderMode.ScreenSpaceOverlay; - root.AddComponent(); - root.AddComponent(); - - // Works for all stages. - StageUtility.PlaceGameObjectInCurrentStage(root); - bool customScene = false; - PrefabStage prefabStage = PrefabStageUtility.GetCurrentPrefabStage(); - if (prefabStage != null) - { - root.transform.SetParent(prefabStage.prefabContentsRoot.transform, false); - customScene = true; - } - - Undo.RegisterCreatedObjectUndo(root, "Create " + root.name); - - // If there is no event system add one... - // No need to place event system in custom scene as these are temporary anyway. - // It can be argued for or against placing it in the user scenes, - // but let's not modify scene user is not currently looking at. - if (!customScene) - CreateEventSystem(false); - return root; - } - - - private static void CreateEventSystem(bool select) - { - CreateEventSystem(select, null); - } - - - private static void CreateEventSystem(bool select, GameObject parent) - { - var esys = Object.FindObjectOfType(); - if (esys == null) - { - var eventSystem = new GameObject("EventSystem"); - GameObjectUtility.SetParentAndAlign(eventSystem, parent); - esys = eventSystem.AddComponent(); - eventSystem.AddComponent(); - - Undo.RegisterCreatedObjectUndo(eventSystem, "Create " + eventSystem.name); - } - - if (select && esys != null) - { - Selection.activeGameObject = esys.gameObject; - } - } - - - // Helper function that returns a Canvas GameObject; preferably a parent of the selection, or other existing Canvas. - public static GameObject GetOrCreateCanvasGameObject() - { - GameObject selectedGo = Selection.activeGameObject; - - // Try to find a gameobject that is the selected GO or one if its parents. - Canvas canvas = (selectedGo != null) ? selectedGo.GetComponentInParent() : null; - if (IsValidCanvas(canvas)) - return canvas.gameObject; - - // No canvas in selection or its parents? Then use any valid canvas. - // We have to find all loaded Canvases, not just the ones in main scenes. - Canvas[] canvasArray = StageUtility.GetCurrentStageHandle().FindComponentsOfType(); - for (int i = 0; i < canvasArray.Length; i++) - if (IsValidCanvas(canvasArray[i])) - return canvasArray[i].gameObject; - - // No canvas in the scene at all? Then create a new one. - return CreateNewUI(); - } - - static bool IsValidCanvas(Canvas canvas) - { - if (canvas == null || !canvas.gameObject.activeInHierarchy) - return false; - - // It's important that the non-editable canvas from a prefab scene won't be rejected, - // but canvases not visible in the Hierarchy at all do. Don't check for HideAndDontSave. - if (EditorUtility.IsPersistent(canvas) || (canvas.hideFlags & HideFlags.HideInHierarchy) != 0) - return false; - - if (StageUtility.GetStageHandle(canvas.gameObject) != StageUtility.GetCurrentStageHandle()) - return false; - - return true; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_EditorShaderUtilities.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_EditorShaderUtilities.cs deleted file mode 100644 index 3d63900..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_EditorShaderUtilities.cs +++ /dev/null @@ -1,53 +0,0 @@ -using UnityEngine; -using UnityEditor; -using System.Linq; -using System.Collections; - - -namespace TMPro.EditorUtilities -{ - - public static class EditorShaderUtilities - { - - /// - /// Copy Shader properties from source to destination material. - /// - /// - /// - public static void CopyMaterialProperties(Material source, Material destination) - { - MaterialProperty[] source_prop = MaterialEditor.GetMaterialProperties(new Material[] { source }); - - for (int i = 0; i < source_prop.Length; i++) - { - int property_ID = Shader.PropertyToID(source_prop[i].name); - if (destination.HasProperty(property_ID)) - { - //Debug.Log(source_prop[i].name + " Type:" + ShaderUtil.GetPropertyType(source.shader, i)); - switch (ShaderUtil.GetPropertyType(source.shader, i)) - { - case ShaderUtil.ShaderPropertyType.Color: - destination.SetColor(property_ID, source.GetColor(property_ID)); - break; - case ShaderUtil.ShaderPropertyType.Float: - destination.SetFloat(property_ID, source.GetFloat(property_ID)); - break; - case ShaderUtil.ShaderPropertyType.Range: - destination.SetFloat(property_ID, source.GetFloat(property_ID)); - break; - case ShaderUtil.ShaderPropertyType.TexEnv: - destination.SetTexture(property_ID, source.GetTexture(property_ID)); - break; - case ShaderUtil.ShaderPropertyType.Vector: - destination.SetVector(property_ID, source.GetVector(property_ID)); - break; - } - } - } - - } - - } - -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_FontAssetCreatorWindow.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_FontAssetCreatorWindow.cs deleted file mode 100644 index 4d895a5..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_FontAssetCreatorWindow.cs +++ /dev/null @@ -1,1802 +0,0 @@ -using System; -using UnityEngine; -using UnityEditor; -using System.Collections.Generic; -using System.Globalization; -using System.Threading; -using System.IO; -using System.Text.RegularExpressions; -using UnityEngine.TextCore; -using UnityEngine.TextCore.LowLevel; -using UnityEditor.TextCore.LowLevel; -using Object = UnityEngine.Object; - -namespace TMPro.EditorUtilities -{ - public class TMPro_FontAssetCreatorWindow : EditorWindow - { - [MenuItem("Window/TextMeshPro/Font Asset Creator", false, 2025)] - public static void ShowFontAtlasCreatorWindow() - { - var window = GetWindow(); - window.titleContent = new GUIContent("Font Asset Creator"); - window.Focus(); - - // Make sure TMP Essential Resources have been imported. - window.CheckEssentialResources(); - } - - - public static void ShowFontAtlasCreatorWindow(Font sourceFontFile) - { - var window = GetWindow(); - - window.titleContent = new GUIContent("Font Asset Creator"); - window.Focus(); - - window.ClearGeneratedData(); - window.m_LegacyFontAsset = null; - window.m_SelectedFontAsset = null; - - // Override selected font asset - window.m_SourceFontFile = sourceFontFile; - - // Make sure TMP Essential Resources have been imported. - window.CheckEssentialResources(); - } - - - public static void ShowFontAtlasCreatorWindow(TMP_FontAsset fontAsset) - { - var window = GetWindow(); - - window.titleContent = new GUIContent("Font Asset Creator"); - window.Focus(); - - // Clear any previously generated data - window.ClearGeneratedData(); - window.m_LegacyFontAsset = null; - - // Load font asset creation settings if we have valid settings - if (string.IsNullOrEmpty(fontAsset.creationSettings.sourceFontFileGUID) == false) - { - window.LoadFontCreationSettings(fontAsset.creationSettings); - - // Override settings to inject character list from font asset - window.m_CharacterSetSelectionMode = 6; - window.m_CharacterSequence = TMP_EditorUtility.GetUnicodeCharacterSequence(TMP_FontAsset.GetCharactersArray(fontAsset)); - - - window.m_ReferencedFontAsset = fontAsset; - window.m_SavedFontAtlas = fontAsset.atlasTexture; - } - else - { - window.m_WarningMessage = "Font Asset [" + fontAsset.name + "] does not contain any previous \"Font Asset Creation Settings\". This usually means [" + fontAsset.name + "] was created before this new functionality was added."; - window.m_SourceFontFile = null; - window.m_LegacyFontAsset = fontAsset; - } - - // Even if we don't have any saved generation settings, we still want to pre-select the source font file. - window.m_SelectedFontAsset = fontAsset; - - // Make sure TMP Essential Resources have been imported. - window.CheckEssentialResources(); - } - - [System.Serializable] - class FontAssetCreationSettingsContainer - { - public List fontAssetCreationSettings; - } - - FontAssetCreationSettingsContainer m_FontAssetCreationSettingsContainer; - - //static readonly string[] m_FontCreationPresets = new string[] { "Recent 1", "Recent 2", "Recent 3", "Recent 4" }; - int m_FontAssetCreationSettingsCurrentIndex = 0; - - const string k_FontAssetCreationSettingsContainerKey = "TextMeshPro.FontAssetCreator.RecentFontAssetCreationSettings.Container"; - const string k_FontAssetCreationSettingsCurrentIndexKey = "TextMeshPro.FontAssetCreator.RecentFontAssetCreationSettings.CurrentIndex"; - const float k_TwoColumnControlsWidth = 335f; - - // Diagnostics - System.Diagnostics.Stopwatch m_StopWatch; - double m_GlyphPackingGenerationTime; - double m_GlyphRenderingGenerationTime; - - string[] m_FontSizingOptions = { "Auto Sizing", "Custom Size" }; - int m_PointSizeSamplingMode; - string[] m_FontResolutionLabels = { "8", "16","32", "64", "128", "256", "512", "1024", "2048", "4096", "8192" }; - int[] m_FontAtlasResolutions = { 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192 }; - string[] m_FontCharacterSets = { "ASCII", "Extended ASCII", "ASCII Lowercase", "ASCII Uppercase", "Numbers + Symbols", "Custom Range", "Unicode Range (Hex)", "Custom Characters", "Characters from File" }; - enum FontPackingModes { Fast = 0, Optimum = 4 }; - FontPackingModes m_PackingMode = FontPackingModes.Fast; - - int m_CharacterSetSelectionMode; - - string m_CharacterSequence = ""; - string m_OutputFeedback = ""; - string m_WarningMessage; - int m_CharacterCount; - Vector2 m_ScrollPosition; - Vector2 m_OutputScrollPosition; - - bool m_IsRepaintNeeded; - - float m_AtlasGenerationProgress; - string m_AtlasGenerationProgressLabel = string.Empty; - float m_RenderingProgress; - bool m_IsGlyphPackingDone; - bool m_IsGlyphRenderingDone; - bool m_IsRenderingDone; - bool m_IsProcessing; - bool m_IsGenerationDisabled; - bool m_IsGenerationCancelled; - - bool m_IsFontAtlasInvalid; - Object m_SourceFontFile; - TMP_FontAsset m_SelectedFontAsset; - TMP_FontAsset m_LegacyFontAsset; - TMP_FontAsset m_ReferencedFontAsset; - - TextAsset m_CharactersFromFile; - int m_PointSize; - int m_Padding = 5; - //FaceStyles m_FontStyle = FaceStyles.Normal; - //float m_FontStyleValue = 2; - - GlyphRenderMode m_GlyphRenderMode = GlyphRenderMode.SDFAA; - int m_AtlasWidth = 512; - int m_AtlasHeight = 512; - byte[] m_AtlasTextureBuffer; - Texture2D m_FontAtlasTexture; - Texture2D m_SavedFontAtlas; - - // - List m_FontGlyphTable = new List(); - List m_FontCharacterTable = new List(); - - Dictionary m_CharacterLookupMap = new Dictionary(); - Dictionary> m_GlyphLookupMap = new Dictionary>(); - - List m_GlyphsToPack = new List(); - List m_GlyphsPacked = new List(); - List m_FreeGlyphRects = new List(); - List m_UsedGlyphRects = new List(); - List m_GlyphsToRender = new List(); - List m_AvailableGlyphsToAdd = new List(); - List m_MissingCharacters = new List(); - List m_ExcludedCharacters = new List(); - - private FaceInfo m_FaceInfo; - - bool m_IncludeFontFeatures; - - - public void OnEnable() - { - // Used for Diagnostics - m_StopWatch = new System.Diagnostics.Stopwatch(); - - // Set Editor window size. - minSize = new Vector2(315, minSize.y); - - // Initialize & Get shader property IDs. - ShaderUtilities.GetShaderPropertyIDs(); - - // Load last selected preset if we are not already in the process of regenerating an existing font asset (via the Context menu) - if (EditorPrefs.HasKey(k_FontAssetCreationSettingsContainerKey)) - { - if (m_FontAssetCreationSettingsContainer == null) - m_FontAssetCreationSettingsContainer = JsonUtility.FromJson(EditorPrefs.GetString(k_FontAssetCreationSettingsContainerKey)); - - if (m_FontAssetCreationSettingsContainer.fontAssetCreationSettings != null && m_FontAssetCreationSettingsContainer.fontAssetCreationSettings.Count > 0) - { - // Load Font Asset Creation Settings preset. - if (EditorPrefs.HasKey(k_FontAssetCreationSettingsCurrentIndexKey)) - m_FontAssetCreationSettingsCurrentIndex = EditorPrefs.GetInt(k_FontAssetCreationSettingsCurrentIndexKey); - - LoadFontCreationSettings(m_FontAssetCreationSettingsContainer.fontAssetCreationSettings[m_FontAssetCreationSettingsCurrentIndex]); - } - } - - ClearGeneratedData(); - } - - - public void OnDisable() - { - //Debug.Log("TextMeshPro Editor Window has been disabled."); - - // Destroy Engine only if it has been initialized already - FontEngine.DestroyFontEngine(); - - ClearGeneratedData(); - - // Remove Glyph Report if one was created. - if (File.Exists("Assets/TextMesh Pro/Glyph Report.txt")) - { - File.Delete("Assets/TextMesh Pro/Glyph Report.txt"); - File.Delete("Assets/TextMesh Pro/Glyph Report.txt.meta"); - - AssetDatabase.Refresh(); - } - - // Save Font Asset Creation Settings Index - SaveCreationSettingsToEditorPrefs(SaveFontCreationSettings()); - EditorPrefs.SetInt(k_FontAssetCreationSettingsCurrentIndexKey, m_FontAssetCreationSettingsCurrentIndex); - - // Unregister to event - TMPro_EventManager.RESOURCE_LOAD_EVENT.Remove(ON_RESOURCES_LOADED); - - Resources.UnloadUnusedAssets(); - } - - - // Event received when TMP resources have been loaded. - void ON_RESOURCES_LOADED() - { - TMPro_EventManager.RESOURCE_LOAD_EVENT.Remove(ON_RESOURCES_LOADED); - - m_IsGenerationDisabled = false; - } - - // Make sure TMP Essential Resources have been imported. - void CheckEssentialResources() - { - if (TMP_Settings.instance == null) - { - if (m_IsGenerationDisabled == false) - TMPro_EventManager.RESOURCE_LOAD_EVENT.Add(ON_RESOURCES_LOADED); - - m_IsGenerationDisabled = true; - } - } - - - public void OnGUI() - { - GUILayout.BeginHorizontal(); - DrawControls(); - if (position.width > position.height && position.width > k_TwoColumnControlsWidth) - { - DrawPreview(); - } - GUILayout.EndHorizontal(); - } - - - public void Update() - { - if (m_IsRepaintNeeded) - { - //Debug.Log("Repainting..."); - m_IsRepaintNeeded = false; - Repaint(); - } - - // Update Progress bar is we are Rendering a Font. - if (m_IsProcessing) - { - m_AtlasGenerationProgress = FontEngine.generationProgress; - - m_IsRepaintNeeded = true; - } - - if (m_IsGlyphPackingDone) - { - Debug.Log("Glyph packing completed in: " + m_GlyphPackingGenerationTime.ToString("0.000 ms.")); - m_IsGlyphPackingDone = false; - } - - if (m_IsGlyphRenderingDone) - { - Debug.Log("Font Atlas generation completed in: " + m_GlyphRenderingGenerationTime.ToString("0.000 ms.")); - m_IsGlyphRenderingDone = false; - } - - // Update Feedback Window & Create Font Texture once Rendering is done. - if (m_IsRenderingDone) - { - m_IsProcessing = false; - m_IsRenderingDone = false; - - if (m_IsGenerationCancelled == false) - { - m_AtlasGenerationProgressLabel = "Generation completed in: " + (m_GlyphPackingGenerationTime + m_GlyphRenderingGenerationTime).ToString("0.00 ms."); - - UpdateRenderFeedbackWindow(); - CreateFontAtlasTexture(); - - // If dynamic make readable ... - m_FontAtlasTexture.Apply(false, false); - } - Repaint(); - } - } - - - /// - /// Method which returns the character corresponding to a decimal value. - /// - /// - /// - static uint[] ParseNumberSequence(string sequence) - { - List unicodeList = new List(); - string[] sequences = sequence.Split(','); - - foreach (string seq in sequences) - { - string[] s1 = seq.Split('-'); - - if (s1.Length == 1) - try - { - unicodeList.Add(uint.Parse(s1[0])); - } - catch - { - Debug.Log("No characters selected or invalid format."); - } - else - { - for (uint j = uint.Parse(s1[0]); j < uint.Parse(s1[1]) + 1; j++) - { - unicodeList.Add(j); - } - } - } - - return unicodeList.ToArray(); - } - - - /// - /// Method which returns the character (decimal value) from a hex sequence. - /// - /// - /// - static uint[] ParseHexNumberSequence(string sequence) - { - List unicodeList = new List(); - string[] sequences = sequence.Split(','); - - foreach (string seq in sequences) - { - string[] s1 = seq.Split('-'); - - if (s1.Length == 1) - try - { - unicodeList.Add(uint.Parse(s1[0], NumberStyles.AllowHexSpecifier)); - } - catch - { - Debug.Log("No characters selected or invalid format."); - } - else - { - for (uint j = uint.Parse(s1[0], NumberStyles.AllowHexSpecifier); j < uint.Parse(s1[1], NumberStyles.AllowHexSpecifier) + 1; j++) - { - unicodeList.Add(j); - } - } - } - - return unicodeList.ToArray(); - } - - - void DrawControls() - { - GUILayout.Space(5f); - - if (position.width > position.height && position.width > k_TwoColumnControlsWidth) - { - m_ScrollPosition = EditorGUILayout.BeginScrollView(m_ScrollPosition, GUILayout.Width(315)); - } - else - { - m_ScrollPosition = EditorGUILayout.BeginScrollView(m_ScrollPosition); - } - - GUILayout.Space(5f); - - GUILayout.Label(m_SelectedFontAsset != null ? string.Format("Font Settings [{0}]", m_SelectedFontAsset.name) : "Font Settings", EditorStyles.boldLabel); - - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - - EditorGUIUtility.labelWidth = 125f; - EditorGUIUtility.fieldWidth = 5f; - - // Disable Options if already generating a font atlas texture. - EditorGUI.BeginDisabledGroup(m_IsProcessing); - { - // FONT TTF SELECTION - EditorGUI.BeginChangeCheck(); - m_SourceFontFile = EditorGUILayout.ObjectField("Source Font File", m_SourceFontFile, typeof(Font), false) as Font; - if (EditorGUI.EndChangeCheck()) - { - m_SelectedFontAsset = null; - m_IsFontAtlasInvalid = true; - } - - // FONT SIZING - EditorGUI.BeginChangeCheck(); - if (m_PointSizeSamplingMode == 0) - { - m_PointSizeSamplingMode = EditorGUILayout.Popup("Sampling Point Size", m_PointSizeSamplingMode, m_FontSizingOptions); - } - else - { - GUILayout.BeginHorizontal(); - m_PointSizeSamplingMode = EditorGUILayout.Popup("Sampling Point Size", m_PointSizeSamplingMode, m_FontSizingOptions, GUILayout.Width(225)); - m_PointSize = EditorGUILayout.IntField(m_PointSize); - GUILayout.EndHorizontal(); - } - if (EditorGUI.EndChangeCheck()) - { - m_IsFontAtlasInvalid = true; - } - - // FONT PADDING - EditorGUI.BeginChangeCheck(); - m_Padding = EditorGUILayout.IntField("Padding", m_Padding); - m_Padding = (int)Mathf.Clamp(m_Padding, 0f, 64f); - if (EditorGUI.EndChangeCheck()) - { - m_IsFontAtlasInvalid = true; - } - - // FONT PACKING METHOD SELECTION - EditorGUI.BeginChangeCheck(); - m_PackingMode = (FontPackingModes)EditorGUILayout.EnumPopup("Packing Method", m_PackingMode); - if (EditorGUI.EndChangeCheck()) - { - m_IsFontAtlasInvalid = true; - } - - // FONT ATLAS RESOLUTION SELECTION - GUILayout.BeginHorizontal(); - GUI.changed = false; - - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PrefixLabel("Atlas Resolution"); - m_AtlasWidth = EditorGUILayout.IntPopup(m_AtlasWidth, m_FontResolutionLabels, m_FontAtlasResolutions); - m_AtlasHeight = EditorGUILayout.IntPopup(m_AtlasHeight, m_FontResolutionLabels, m_FontAtlasResolutions); - if (EditorGUI.EndChangeCheck()) - { - m_IsFontAtlasInvalid = true; - } - - GUILayout.EndHorizontal(); - - - // FONT CHARACTER SET SELECTION - EditorGUI.BeginChangeCheck(); - bool hasSelectionChanged = false; - m_CharacterSetSelectionMode = EditorGUILayout.Popup("Character Set", m_CharacterSetSelectionMode, m_FontCharacterSets); - if (EditorGUI.EndChangeCheck()) - { - m_CharacterSequence = ""; - hasSelectionChanged = true; - m_IsFontAtlasInvalid = true; - } - - switch (m_CharacterSetSelectionMode) - { - case 0: // ASCII - //characterSequence = "32 - 126, 130, 132 - 135, 139, 145 - 151, 153, 155, 161, 166 - 167, 169 - 174, 176, 181 - 183, 186 - 187, 191, 8210 - 8226, 8230, 8240, 8242 - 8244, 8249 - 8250, 8252 - 8254, 8260, 8286"; - m_CharacterSequence = "32 - 126, 160, 8203, 8230, 9633"; - break; - - case 1: // EXTENDED ASCII - m_CharacterSequence = "32 - 126, 160 - 255, 8192 - 8303, 8364, 8482, 9633"; - // Could add 9632 for missing glyph - break; - - case 2: // Lowercase - m_CharacterSequence = "32 - 64, 91 - 126, 160"; - break; - - case 3: // Uppercase - m_CharacterSequence = "32 - 96, 123 - 126, 160"; - break; - - case 4: // Numbers & Symbols - m_CharacterSequence = "32 - 64, 91 - 96, 123 - 126, 160"; - break; - - case 5: // Custom Range - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - GUILayout.Label("Enter a sequence of decimal values to define the characters to be included in the font asset or retrieve one from another font asset.", TMP_UIStyleManager.label); - GUILayout.Space(10f); - - EditorGUI.BeginChangeCheck(); - m_ReferencedFontAsset = EditorGUILayout.ObjectField("Select Font Asset", m_ReferencedFontAsset, typeof(TMP_FontAsset), false) as TMP_FontAsset; - if (EditorGUI.EndChangeCheck() || hasSelectionChanged) - { - if (m_ReferencedFontAsset != null) - m_CharacterSequence = TMP_EditorUtility.GetDecimalCharacterSequence(TMP_FontAsset.GetCharactersArray(m_ReferencedFontAsset)); - - m_IsFontAtlasInvalid = true; - } - - // Filter out unwanted characters. - char chr = Event.current.character; - if ((chr < '0' || chr > '9') && (chr < ',' || chr > '-')) - { - Event.current.character = '\0'; - } - GUILayout.Label("Character Sequence (Decimal)", EditorStyles.boldLabel); - EditorGUI.BeginChangeCheck(); - m_CharacterSequence = EditorGUILayout.TextArea(m_CharacterSequence, TMP_UIStyleManager.textAreaBoxWindow, GUILayout.Height(120), GUILayout.ExpandWidth(true)); - if (EditorGUI.EndChangeCheck()) - { - m_IsFontAtlasInvalid = true; - } - - EditorGUILayout.EndVertical(); - break; - - case 6: // Unicode HEX Range - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - GUILayout.Label("Enter a sequence of Unicode (hex) values to define the characters to be included in the font asset or retrieve one from another font asset.", TMP_UIStyleManager.label); - GUILayout.Space(10f); - - EditorGUI.BeginChangeCheck(); - m_ReferencedFontAsset = EditorGUILayout.ObjectField("Select Font Asset", m_ReferencedFontAsset, typeof(TMP_FontAsset), false) as TMP_FontAsset; - if (EditorGUI.EndChangeCheck() || hasSelectionChanged) - { - if (m_ReferencedFontAsset != null) - m_CharacterSequence = TMP_EditorUtility.GetUnicodeCharacterSequence(TMP_FontAsset.GetCharactersArray(m_ReferencedFontAsset)); - - m_IsFontAtlasInvalid = true; - } - - // Filter out unwanted characters. - chr = Event.current.character; - if ((chr < '0' || chr > '9') && (chr < 'a' || chr > 'f') && (chr < 'A' || chr > 'F') && (chr < ',' || chr > '-')) - { - Event.current.character = '\0'; - } - GUILayout.Label("Character Sequence (Hex)", EditorStyles.boldLabel); - EditorGUI.BeginChangeCheck(); - m_CharacterSequence = EditorGUILayout.TextArea(m_CharacterSequence, TMP_UIStyleManager.textAreaBoxWindow, GUILayout.Height(120), GUILayout.ExpandWidth(true)); - if (EditorGUI.EndChangeCheck()) - { - m_IsFontAtlasInvalid = true; - } - - EditorGUILayout.EndVertical(); - break; - - case 7: // Characters from Font Asset - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - GUILayout.Label("Type the characters to be included in the font asset or retrieve them from another font asset.", TMP_UIStyleManager.label); - GUILayout.Space(10f); - - EditorGUI.BeginChangeCheck(); - m_ReferencedFontAsset = EditorGUILayout.ObjectField("Select Font Asset", m_ReferencedFontAsset, typeof(TMP_FontAsset), false) as TMP_FontAsset; - if (EditorGUI.EndChangeCheck() || hasSelectionChanged) - { - if (m_ReferencedFontAsset != null) - m_CharacterSequence = TMP_FontAsset.GetCharacters(m_ReferencedFontAsset); - - m_IsFontAtlasInvalid = true; - } - - EditorGUI.indentLevel = 0; - - GUILayout.Label("Custom Character List", EditorStyles.boldLabel); - EditorGUI.BeginChangeCheck(); - m_CharacterSequence = EditorGUILayout.TextArea(m_CharacterSequence, TMP_UIStyleManager.textAreaBoxWindow, GUILayout.Height(120), GUILayout.ExpandWidth(true)); - if (EditorGUI.EndChangeCheck()) - { - m_IsFontAtlasInvalid = true; - } - EditorGUILayout.EndVertical(); - break; - - case 8: // Character List from File - EditorGUI.BeginChangeCheck(); - m_CharactersFromFile = EditorGUILayout.ObjectField("Character File", m_CharactersFromFile, typeof(TextAsset), false) as TextAsset; - if (EditorGUI.EndChangeCheck()) - { - m_IsFontAtlasInvalid = true; - } - - if (m_CharactersFromFile != null) - { - Regex rx = new Regex(@"(? - { - if (match.Value.StartsWith("\\U")) - return char.ConvertFromUtf32(int.Parse(match.Value.Replace("\\U", ""), NumberStyles.HexNumber)); - - return char.ConvertFromUtf32(int.Parse(match.Value.Replace("\\u", ""), NumberStyles.HexNumber)); - }); - } - break; - } - - // FONT STYLE SELECTION - //GUILayout.BeginHorizontal(); - //EditorGUI.BeginChangeCheck(); - ////m_FontStyle = (FaceStyles)EditorGUILayout.EnumPopup("Font Style", m_FontStyle, GUILayout.Width(225)); - ////m_FontStyleValue = EditorGUILayout.IntField((int)m_FontStyleValue); - //if (EditorGUI.EndChangeCheck()) - //{ - // m_IsFontAtlasInvalid = true; - //} - //GUILayout.EndHorizontal(); - - // Render Mode Selection - CheckForLegacyGlyphRenderMode(); - - EditorGUI.BeginChangeCheck(); - m_GlyphRenderMode = (GlyphRenderMode)EditorGUILayout.EnumPopup("Render Mode", m_GlyphRenderMode); - if (EditorGUI.EndChangeCheck()) - { - m_IsFontAtlasInvalid = true; - } - - m_IncludeFontFeatures = EditorGUILayout.Toggle("Get Kerning Pairs", m_IncludeFontFeatures); - - EditorGUILayout.Space(); - } - - EditorGUI.EndDisabledGroup(); - - if (!string.IsNullOrEmpty(m_WarningMessage)) - { - EditorGUILayout.HelpBox(m_WarningMessage, MessageType.Warning); - } - - GUI.enabled = m_SourceFontFile != null && !m_IsProcessing && !m_IsGenerationDisabled; // Enable Preview if we are not already rendering a font. - if (GUILayout.Button("Generate Font Atlas") && GUI.enabled) - { - if (!m_IsProcessing && m_SourceFontFile != null) - { - DestroyImmediate(m_FontAtlasTexture); - m_FontAtlasTexture = null; - m_SavedFontAtlas = null; - - // Initialize font engine - FontEngineError errorCode = FontEngine.InitializeFontEngine(); - if (errorCode != FontEngineError.Success) - { - Debug.Log("Font Asset Creator - Error [" + errorCode + "] has occurred while Initializing the FreeType Library."); - } - - // Get file path of the source font file. - string fontPath = AssetDatabase.GetAssetPath(m_SourceFontFile); - - if (errorCode == FontEngineError.Success) - { - errorCode = FontEngine.LoadFontFace(fontPath); - - if (errorCode != FontEngineError.Success) - { - Debug.Log("Font Asset Creator - Error Code [" + errorCode + "] has occurred trying to load the [" + m_SourceFontFile.name + "] font file. This typically results from the use of an incompatible or corrupted font file.", m_SourceFontFile); - } - } - - - // Define an array containing the characters we will render. - if (errorCode == FontEngineError.Success) - { - uint[] characterSet = null; - - // Get list of characters that need to be packed and rendered to the atlas texture. - if (m_CharacterSetSelectionMode == 7 || m_CharacterSetSelectionMode == 8) - { - List char_List = new List(); - - for (int i = 0; i < m_CharacterSequence.Length; i++) - { - uint unicode = m_CharacterSequence[i]; - - // Handle surrogate pairs - if (i < m_CharacterSequence.Length - 1 && char.IsHighSurrogate((char)unicode) && char.IsLowSurrogate(m_CharacterSequence[i + 1])) - { - unicode = (uint)char.ConvertToUtf32(m_CharacterSequence[i], m_CharacterSequence[i + 1]); - i += 1; - } - - // Check to make sure we don't include duplicates - if (char_List.FindIndex(item => item == unicode) == -1) - char_List.Add(unicode); - } - - characterSet = char_List.ToArray(); - } - else if (m_CharacterSetSelectionMode == 6) - { - characterSet = ParseHexNumberSequence(m_CharacterSequence); - } - else - { - characterSet = ParseNumberSequence(m_CharacterSequence); - } - - m_CharacterCount = characterSet.Length; - - m_AtlasGenerationProgress = 0; - m_IsProcessing = true; - m_IsGenerationCancelled = false; - - GlyphLoadFlags glyphLoadFlags = ((GlyphRasterModes)m_GlyphRenderMode & GlyphRasterModes.RASTER_MODE_HINTED) == GlyphRasterModes.RASTER_MODE_HINTED - ? GlyphLoadFlags.LOAD_RENDER - : GlyphLoadFlags.LOAD_RENDER | GlyphLoadFlags.LOAD_NO_HINTING; - - glyphLoadFlags = ((GlyphRasterModes)m_GlyphRenderMode & GlyphRasterModes.RASTER_MODE_MONO) == GlyphRasterModes.RASTER_MODE_MONO - ? glyphLoadFlags | GlyphLoadFlags.LOAD_MONOCHROME - : glyphLoadFlags; - - // - AutoResetEvent autoEvent = new AutoResetEvent(false); - - // Worker thread to pack glyphs in the given texture space. - ThreadPool.QueueUserWorkItem(PackGlyphs => - { - // Start Stop Watch - m_StopWatch = System.Diagnostics.Stopwatch.StartNew(); - - // Clear the various lists used in the generation process. - m_AvailableGlyphsToAdd.Clear(); - m_MissingCharacters.Clear(); - m_ExcludedCharacters.Clear(); - m_CharacterLookupMap.Clear(); - m_GlyphLookupMap.Clear(); - m_GlyphsToPack.Clear(); - m_GlyphsPacked.Clear(); - - // Check if requested characters are available in the source font file. - for (int i = 0; i < characterSet.Length; i++) - { - uint unicode = characterSet[i]; - uint glyphIndex; - - if (FontEngine.TryGetGlyphIndex(unicode, out glyphIndex)) - { - // Skip over potential duplicate characters. - if (m_CharacterLookupMap.ContainsKey(unicode)) - continue; - - // Add character to character lookup map. - m_CharacterLookupMap.Add(unicode, glyphIndex); - - // Skip over potential duplicate glyph references. - if (m_GlyphLookupMap.ContainsKey(glyphIndex)) - { - // Add additional glyph reference for this character. - m_GlyphLookupMap[glyphIndex].Add(unicode); - continue; - } - - // Add glyph reference to glyph lookup map. - m_GlyphLookupMap.Add(glyphIndex, new List() { unicode }); - - // Add glyph index to list of glyphs to add to texture. - m_AvailableGlyphsToAdd.Add(glyphIndex); - } - else - { - // Add Unicode to list of missing characters. - m_MissingCharacters.Add(unicode); - } - } - - // Pack available glyphs in the provided texture space. - if (m_AvailableGlyphsToAdd.Count > 0) - { - int packingModifier = ((GlyphRasterModes)m_GlyphRenderMode & GlyphRasterModes.RASTER_MODE_BITMAP) == GlyphRasterModes.RASTER_MODE_BITMAP ? 0 : 1; - - if (m_PointSizeSamplingMode == 0) // Auto-Sizing Point Size Mode - { - // Estimate min / max range for auto sizing of point size. - int minPointSize = 0; - int maxPointSize = (int)Mathf.Sqrt((m_AtlasWidth * m_AtlasHeight) / m_AvailableGlyphsToAdd.Count) * 3; - - m_PointSize = (maxPointSize + minPointSize) / 2; - - bool optimumPointSizeFound = false; - for (int iteration = 0; iteration < 15 && optimumPointSizeFound == false; iteration++) - { - m_AtlasGenerationProgressLabel = "Packing glyphs - Pass (" + iteration + ")"; - - FontEngine.SetFaceSize(m_PointSize); - - m_GlyphsToPack.Clear(); - m_GlyphsPacked.Clear(); - - m_FreeGlyphRects.Clear(); - m_FreeGlyphRects.Add(new GlyphRect(0, 0, m_AtlasWidth - packingModifier, m_AtlasHeight - packingModifier)); - m_UsedGlyphRects.Clear(); - - for (int i = 0; i < m_AvailableGlyphsToAdd.Count; i++) - { - uint glyphIndex = m_AvailableGlyphsToAdd[i]; - Glyph glyph; - - if (FontEngine.TryGetGlyphWithIndexValue(glyphIndex, glyphLoadFlags, out glyph)) - { - if (glyph.glyphRect.width > 0 && glyph.glyphRect.height > 0) - { - m_GlyphsToPack.Add(glyph); - } - else - { - m_GlyphsPacked.Add(glyph); - } - } - } - - FontEngine.TryPackGlyphsInAtlas(m_GlyphsToPack, m_GlyphsPacked, m_Padding, (GlyphPackingMode)m_PackingMode, m_GlyphRenderMode, m_AtlasWidth, m_AtlasHeight, m_FreeGlyphRects, m_UsedGlyphRects); - - if (m_IsGenerationCancelled) - { - DestroyImmediate(m_FontAtlasTexture); - m_FontAtlasTexture = null; - return; - } - - //Debug.Log("Glyphs remaining to add [" + m_GlyphsToAdd.Count + "]. Glyphs added [" + m_GlyphsAdded.Count + "]."); - - if (m_GlyphsToPack.Count > 0) - { - if (m_PointSize > minPointSize) - { - maxPointSize = m_PointSize; - m_PointSize = (m_PointSize + minPointSize) / 2; - - //Debug.Log("Decreasing point size from [" + maxPointSize + "] to [" + m_PointSize + "]."); - } - } - else - { - if (maxPointSize - minPointSize > 1 && m_PointSize < maxPointSize) - { - minPointSize = m_PointSize; - m_PointSize = (m_PointSize + maxPointSize) / 2; - - //Debug.Log("Increasing point size from [" + minPointSize + "] to [" + m_PointSize + "]."); - } - else - { - //Debug.Log("[" + iteration + "] iterations to find the optimum point size of : [" + m_PointSize + "]."); - optimumPointSizeFound = true; - } - } - } - } - else // Custom Point Size Mode - { - m_AtlasGenerationProgressLabel = "Packing glyphs..."; - - // Set point size - FontEngine.SetFaceSize(m_PointSize); - - m_GlyphsToPack.Clear(); - m_GlyphsPacked.Clear(); - - m_FreeGlyphRects.Clear(); - m_FreeGlyphRects.Add(new GlyphRect(0, 0, m_AtlasWidth - packingModifier, m_AtlasHeight - packingModifier)); - m_UsedGlyphRects.Clear(); - - for (int i = 0; i < m_AvailableGlyphsToAdd.Count; i++) - { - uint glyphIndex = m_AvailableGlyphsToAdd[i]; - Glyph glyph; - - if (FontEngine.TryGetGlyphWithIndexValue(glyphIndex, glyphLoadFlags, out glyph)) - { - if (glyph.glyphRect.width > 0 && glyph.glyphRect.height > 0) - { - m_GlyphsToPack.Add(glyph); - } - else - { - m_GlyphsPacked.Add(glyph); - } - } - } - - FontEngine.TryPackGlyphsInAtlas(m_GlyphsToPack, m_GlyphsPacked, m_Padding, (GlyphPackingMode)m_PackingMode, m_GlyphRenderMode, m_AtlasWidth, m_AtlasHeight, m_FreeGlyphRects, m_UsedGlyphRects); - - if (m_IsGenerationCancelled) - { - DestroyImmediate(m_FontAtlasTexture); - m_FontAtlasTexture = null; - return; - } - //Debug.Log("Glyphs remaining to add [" + m_GlyphsToAdd.Count + "]. Glyphs added [" + m_GlyphsAdded.Count + "]."); - } - - } - else - { - int packingModifier = ((GlyphRasterModes)m_GlyphRenderMode & GlyphRasterModes.RASTER_MODE_BITMAP) == GlyphRasterModes.RASTER_MODE_BITMAP ? 0 : 1; - - FontEngine.SetFaceSize(m_PointSize); - - m_GlyphsToPack.Clear(); - m_GlyphsPacked.Clear(); - - m_FreeGlyphRects.Clear(); - m_FreeGlyphRects.Add(new GlyphRect(0, 0, m_AtlasWidth - packingModifier, m_AtlasHeight - packingModifier)); - m_UsedGlyphRects.Clear(); - } - - //Stop StopWatch - m_StopWatch.Stop(); - m_GlyphPackingGenerationTime = m_StopWatch.Elapsed.TotalMilliseconds; - m_IsGlyphPackingDone = true; - m_StopWatch.Reset(); - - m_FontCharacterTable.Clear(); - m_FontGlyphTable.Clear(); - m_GlyphsToRender.Clear(); - - // Add glyphs and characters successfully added to texture to their respective font tables. - foreach (Glyph glyph in m_GlyphsPacked) - { - uint glyphIndex = glyph.index; - - m_FontGlyphTable.Add(glyph); - - // Add glyphs to list of glyphs that need to be rendered. - if (glyph.glyphRect.width > 0 && glyph.glyphRect.height > 0) - m_GlyphsToRender.Add(glyph); - - foreach (uint unicode in m_GlyphLookupMap[glyphIndex]) - { - // Create new Character - m_FontCharacterTable.Add(new TMP_Character(unicode, glyph)); - } - } - - // - foreach (Glyph glyph in m_GlyphsToPack) - { - foreach (uint unicode in m_GlyphLookupMap[glyph.index]) - { - m_ExcludedCharacters.Add(unicode); - } - } - - // Get the face info for the current sampling point size. - m_FaceInfo = FontEngine.GetFaceInfo(); - - autoEvent.Set(); - }); - - // Worker thread to render glyphs in texture buffer. - ThreadPool.QueueUserWorkItem(RenderGlyphs => - { - autoEvent.WaitOne(); - - // Start Stop Watch - m_StopWatch = System.Diagnostics.Stopwatch.StartNew(); - - m_IsRenderingDone = false; - - // Allocate texture data - m_AtlasTextureBuffer = new byte[m_AtlasWidth * m_AtlasHeight]; - - m_AtlasGenerationProgressLabel = "Rendering glyphs..."; - - // Render and add glyphs to the given atlas texture. - if (m_GlyphsToRender.Count > 0) - { - FontEngine.RenderGlyphsToTexture(m_GlyphsToRender, m_Padding, m_GlyphRenderMode, m_AtlasTextureBuffer, m_AtlasWidth, m_AtlasHeight); - } - - m_IsRenderingDone = true; - - // Stop StopWatch - m_StopWatch.Stop(); - m_GlyphRenderingGenerationTime = m_StopWatch.Elapsed.TotalMilliseconds; - m_IsGlyphRenderingDone = true; - m_StopWatch.Reset(); - }); - } - - SaveCreationSettingsToEditorPrefs(SaveFontCreationSettings()); - } - } - - // FONT RENDERING PROGRESS BAR - GUILayout.Space(1); - Rect progressRect = EditorGUILayout.GetControlRect(false, 20); - - GUI.enabled = true; - progressRect.width -= 22; - EditorGUI.ProgressBar(progressRect, Mathf.Max(0.01f, m_AtlasGenerationProgress), m_AtlasGenerationProgressLabel); - progressRect.x = progressRect.x + progressRect.width + 2; - progressRect.y -= 1; - progressRect.width = 20; - progressRect.height = 20; - - GUI.enabled = m_IsProcessing; - if (GUI.Button(progressRect, "X")) - { - FontEngine.SendCancellationRequest(); - m_AtlasGenerationProgress = 0; - m_IsProcessing = false; - m_IsGenerationCancelled = true; - } - GUILayout.Space(5); - - // FONT STATUS & INFORMATION - GUI.enabled = true; - - GUILayout.BeginVertical(EditorStyles.helpBox, GUILayout.Height(200)); - m_OutputScrollPosition = EditorGUILayout.BeginScrollView(m_OutputScrollPosition); - EditorGUILayout.LabelField(m_OutputFeedback, TMP_UIStyleManager.label); - EditorGUILayout.EndScrollView(); - GUILayout.EndVertical(); - - // SAVE TEXTURE & CREATE and SAVE FONT XML FILE - GUI.enabled = m_FontAtlasTexture != null && !m_IsProcessing; // Enable Save Button if font_Atlas is not Null. - - EditorGUILayout.BeginHorizontal(); - - if (GUILayout.Button("Save") && GUI.enabled) - { - if (m_SelectedFontAsset == null) - { - if (m_LegacyFontAsset != null) - SaveNewFontAssetWithSameName(m_LegacyFontAsset); - else - SaveNewFontAsset(m_SourceFontFile); - } - else - { - // Save over exiting Font Asset - string filePath = Path.GetFullPath(AssetDatabase.GetAssetPath(m_SelectedFontAsset)).Replace('\\', '/'); - - if (((GlyphRasterModes)m_GlyphRenderMode & GlyphRasterModes.RASTER_MODE_BITMAP) == GlyphRasterModes.RASTER_MODE_BITMAP) - Save_Bitmap_FontAsset(filePath); - else - Save_SDF_FontAsset(filePath); - } - } - if (GUILayout.Button("Save as...") && GUI.enabled) - { - if (m_SelectedFontAsset == null) - { - SaveNewFontAsset(m_SourceFontFile); - } - else - { - SaveNewFontAssetWithSameName(m_SelectedFontAsset); - } - } - - EditorGUILayout.EndHorizontal(); - - EditorGUILayout.Space(); - - EditorGUILayout.EndVertical(); - - GUI.enabled = true; // Re-enable GUI - - if (position.height > position.width || position.width < k_TwoColumnControlsWidth) - { - DrawPreview(); - GUILayout.Space(5); - } - - EditorGUILayout.EndScrollView(); - - if (m_IsFontAtlasInvalid) - ClearGeneratedData(); - } - - - /// - /// Clear the previously generated data. - /// - void ClearGeneratedData() - { - m_IsFontAtlasInvalid = false; - - if (m_FontAtlasTexture != null && !EditorUtility.IsPersistent(m_FontAtlasTexture)) - { - DestroyImmediate(m_FontAtlasTexture); - m_FontAtlasTexture = null; - } - - m_AtlasGenerationProgressLabel = string.Empty; - m_AtlasGenerationProgress = 0; - m_SavedFontAtlas = null; - - m_OutputFeedback = string.Empty; - m_WarningMessage = string.Empty; - } - - - /// - /// Function to update the feedback window showing the results of the latest generation. - /// - void UpdateRenderFeedbackWindow() - { - m_PointSize = m_FaceInfo.pointSize; - - string missingGlyphReport = string.Empty; - - //string colorTag = m_FontCharacterTable.Count == m_CharacterCount ? "" : ""; - string colorTag2 = ""; - - missingGlyphReport = "Font: " + colorTag2 + m_FaceInfo.familyName + " Style: " + colorTag2 + m_FaceInfo.styleName + ""; - - missingGlyphReport += "\nPoint Size: " + colorTag2 + m_FaceInfo.pointSize + " SP/PD Ratio: " + colorTag2 + ((float)m_Padding / m_FaceInfo.pointSize).ToString("0.0%" + ""); - - missingGlyphReport += "\n\nCharacters included: " + m_FontCharacterTable.Count + "/" + m_CharacterCount + ""; - missingGlyphReport += "\nMissing characters: " + m_MissingCharacters.Count + ""; - missingGlyphReport += "\nExcluded characters: " + m_ExcludedCharacters.Count + ""; - - // Report characters missing from font file - missingGlyphReport += "\n\nCharacters missing from font file:"; - missingGlyphReport += "\n----------------------------------------"; - - m_OutputFeedback = missingGlyphReport; - - for (int i = 0; i < m_MissingCharacters.Count; i++) - { - missingGlyphReport += "\nID: " + m_MissingCharacters[i] + "\tHex: " + m_MissingCharacters[i].ToString("X") + "\tChar [" + (char)m_MissingCharacters[i] + "]"; - - if (missingGlyphReport.Length < 16300) - m_OutputFeedback = missingGlyphReport; - } - - // Report characters that did not fit in the atlas texture - missingGlyphReport += "\n\nCharacters excluded from packing:"; - missingGlyphReport += "\n----------------------------------------"; - - for (int i = 0; i < m_ExcludedCharacters.Count; i++) - { - missingGlyphReport += "\nID: " + m_ExcludedCharacters[i] + "\tHex: " + m_ExcludedCharacters[i].ToString("X") + "\tChar [" + (char)m_ExcludedCharacters[i] + "]"; - - if (missingGlyphReport.Length < 16300) - m_OutputFeedback = missingGlyphReport; - } - - if (missingGlyphReport.Length > 16300) - m_OutputFeedback += "\n\nReport truncated.\nSee \"TextMesh Pro\\Glyph Report.txt\""; - - // Save Missing Glyph Report file - if (Directory.Exists("Assets/TextMesh Pro")) - { - missingGlyphReport = System.Text.RegularExpressions.Regex.Replace(missingGlyphReport, @"<[^>]*>", string.Empty); - File.WriteAllText("Assets/TextMesh Pro/Glyph Report.txt", missingGlyphReport); - AssetDatabase.Refresh(); - } - } - - - void CreateFontAtlasTexture() - { - if (m_FontAtlasTexture != null) - DestroyImmediate(m_FontAtlasTexture); - - m_FontAtlasTexture = new Texture2D(m_AtlasWidth, m_AtlasHeight, TextureFormat.Alpha8, false, true); - - Color32[] colors = new Color32[m_AtlasWidth * m_AtlasHeight]; - - for (int i = 0; i < colors.Length; i++) - { - byte c = m_AtlasTextureBuffer[i]; - colors[i] = new Color32(c, c, c, c); - } - - // Clear allocation of - m_AtlasTextureBuffer = null; - - if ((m_GlyphRenderMode & GlyphRenderMode.RASTER) == GlyphRenderMode.RASTER || (m_GlyphRenderMode & GlyphRenderMode.RASTER_HINTED) == GlyphRenderMode.RASTER_HINTED) - m_FontAtlasTexture.filterMode = FilterMode.Point; - - m_FontAtlasTexture.SetPixels32(colors, 0); - m_FontAtlasTexture.Apply(false, false); - - // Saving File for Debug - //var pngData = m_FontAtlasTexture.EncodeToPNG(); - //File.WriteAllBytes("Assets/Textures/Debug Font Texture.png", pngData); - } - - - /// - /// Open Save Dialog to provide the option save the font asset using the name of the source font file. This also appends SDF to the name if using any of the SDF Font Asset creation modes. - /// - /// - void SaveNewFontAsset(Object sourceObject) - { - string filePath; - - // Save new Font Asset and open save file requester at Source Font File location. - string saveDirectory = new FileInfo(AssetDatabase.GetAssetPath(sourceObject)).DirectoryName; - - if (((GlyphRasterModes)m_GlyphRenderMode & GlyphRasterModes.RASTER_MODE_BITMAP) == GlyphRasterModes.RASTER_MODE_BITMAP) - { - filePath = EditorUtility.SaveFilePanel("Save TextMesh Pro! Font Asset File", saveDirectory, sourceObject.name, "asset"); - - if (filePath.Length == 0) - return; - - Save_Bitmap_FontAsset(filePath); - } - else - { - filePath = EditorUtility.SaveFilePanel("Save TextMesh Pro! Font Asset File", saveDirectory, sourceObject.name + " SDF", "asset"); - - if (filePath.Length == 0) - return; - - Save_SDF_FontAsset(filePath); - } - } - - - /// - /// Open Save Dialog to provide the option to save the font asset under the same name. - /// - /// - void SaveNewFontAssetWithSameName(Object sourceObject) - { - string filePath; - - // Save new Font Asset and open save file requester at Source Font File location. - string saveDirectory = new FileInfo(AssetDatabase.GetAssetPath(sourceObject)).DirectoryName; - - filePath = EditorUtility.SaveFilePanel("Save TextMesh Pro! Font Asset File", saveDirectory, sourceObject.name, "asset"); - - if (filePath.Length == 0) - return; - - if (((GlyphRasterModes)m_GlyphRenderMode & GlyphRasterModes.RASTER_MODE_BITMAP) == GlyphRasterModes.RASTER_MODE_BITMAP) - { - Save_Bitmap_FontAsset(filePath); - } - else - { - Save_SDF_FontAsset(filePath); - } - } - - - void Save_Bitmap_FontAsset(string filePath) - { - filePath = filePath.Substring(0, filePath.Length - 6); // Trim file extension from filePath. - - string dataPath = Application.dataPath; - - if (filePath.IndexOf(dataPath, System.StringComparison.InvariantCultureIgnoreCase) == -1) - { - Debug.LogError("You're saving the font asset in a directory outside of this project folder. This is not supported. Please select a directory under \"" + dataPath + "\""); - return; - } - - string relativeAssetPath = filePath.Substring(dataPath.Length - 6); - string tex_DirName = Path.GetDirectoryName(relativeAssetPath); - string tex_FileName = Path.GetFileNameWithoutExtension(relativeAssetPath); - string tex_Path_NoExt = tex_DirName + "/" + tex_FileName; - - // Check if TextMeshPro font asset already exists. If not, create a new one. Otherwise update the existing one. - TMP_FontAsset fontAsset = AssetDatabase.LoadAssetAtPath(tex_Path_NoExt + ".asset", typeof(TMP_FontAsset)) as TMP_FontAsset; - if (fontAsset == null) - { - //Debug.Log("Creating TextMeshPro font asset!"); - fontAsset = ScriptableObject.CreateInstance(); // Create new TextMeshPro Font Asset. - AssetDatabase.CreateAsset(fontAsset, tex_Path_NoExt + ".asset"); - - // Set version number of font asset - fontAsset.version = "1.1.0"; - - //Set Font Asset Type - fontAsset.atlasRenderMode = m_GlyphRenderMode; - - // Reference to the source font file GUID. - fontAsset.m_SourceFontFile_EditorRef = (Font)m_SourceFontFile; - fontAsset.m_SourceFontFileGUID = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(m_SourceFontFile)); - - // Add FaceInfo to Font Asset - fontAsset.faceInfo = m_FaceInfo; - - // Add GlyphInfo[] to Font Asset - fontAsset.glyphTable = m_FontGlyphTable; - - // Add CharacterTable[] to font asset. - fontAsset.characterTable = m_FontCharacterTable; - - // Sort glyph and character tables. - fontAsset.SortAllTables(); - - // Get and Add Kerning Pairs to Font Asset - if (m_IncludeFontFeatures) - fontAsset.fontFeatureTable = GetKerningTable(); - - - // Add Font Atlas as Sub-Asset - fontAsset.atlasTextures = new Texture2D[] { m_FontAtlasTexture }; - m_FontAtlasTexture.name = tex_FileName + " Atlas"; - fontAsset.atlasWidth = m_AtlasWidth; - fontAsset.atlasHeight = m_AtlasHeight; - fontAsset.atlasPadding = m_Padding; - - AssetDatabase.AddObjectToAsset(m_FontAtlasTexture, fontAsset); - - // Create new Material and Add it as Sub-Asset - Shader default_Shader = Shader.Find("TextMeshPro/Bitmap"); // m_shaderSelection; - Material tmp_material = new Material(default_Shader); - tmp_material.name = tex_FileName + " Material"; - tmp_material.SetTexture(ShaderUtilities.ID_MainTex, m_FontAtlasTexture); - fontAsset.material = tmp_material; - - AssetDatabase.AddObjectToAsset(tmp_material, fontAsset); - - } - else - { - // Find all Materials referencing this font atlas. - Material[] material_references = TMP_EditorUtility.FindMaterialReferences(fontAsset); - - // Set version number of font asset - fontAsset.version = "1.1.0"; - - // Special handling to remove legacy font asset data - if (fontAsset.m_glyphInfoList != null && fontAsset.m_glyphInfoList.Count > 0) - fontAsset.m_glyphInfoList = null; - - //Set Font Asset Type - fontAsset.atlasRenderMode = m_GlyphRenderMode; - - // Add FaceInfo to Font Asset - fontAsset.faceInfo = m_FaceInfo; - - // Add GlyphInfo[] to Font Asset - fontAsset.glyphTable = m_FontGlyphTable; - - // Add CharacterTable[] to font asset. - fontAsset.characterTable = m_FontCharacterTable; - - // Sort glyph and character tables. - fontAsset.SortAllTables(); - - // Get and Add Kerning Pairs to Font Asset - if (m_IncludeFontFeatures) - fontAsset.fontFeatureTable = GetKerningTable(); - - // Destroy Assets that will be replaced. - if (fontAsset.atlasTextures != null && fontAsset.atlasTextures.Length > 0) - { - for (int i = 1; i < fontAsset.atlasTextures.Length; i++) - DestroyImmediate(fontAsset.atlasTextures[i], true); - } - - fontAsset.m_AtlasTextureIndex = 0; - fontAsset.atlasWidth = m_AtlasWidth; - fontAsset.atlasHeight = m_AtlasHeight; - fontAsset.atlasPadding = m_Padding; - - // Make sure remaining atlas texture is of the correct size - Texture2D tex = fontAsset.atlasTextures[0]; - tex.name = tex_FileName + " Atlas"; - - // Make texture readable to allow resizing - bool isReadableState = tex.isReadable; - if (isReadableState == false) - FontEngineEditorUtilities.SetAtlasTextureIsReadable(tex, true); - - if (tex.width != m_AtlasWidth || tex.height != m_AtlasHeight) - { - tex.Resize(m_AtlasWidth, m_AtlasHeight); - tex.Apply(); - } - - // Copy new texture data to existing texture - Graphics.CopyTexture(m_FontAtlasTexture, tex); - - // Apply changes to the texture. - tex.Apply(false, !isReadableState); - - // Special handling due to a bug in earlier versions of Unity. - m_FontAtlasTexture.hideFlags = HideFlags.None; - fontAsset.material.hideFlags = HideFlags.None; - - // Update the Texture reference on the Material - //for (int i = 0; i < material_references.Length; i++) - //{ - // material_references[i].SetFloat(ShaderUtilities.ID_TextureWidth, tex.width); - // material_references[i].SetFloat(ShaderUtilities.ID_TextureHeight, tex.height); - - // int spread = m_Padding; - // material_references[i].SetFloat(ShaderUtilities.ID_GradientScale, spread); - - // material_references[i].SetFloat(ShaderUtilities.ID_WeightNormal, fontAsset.normalStyle); - // material_references[i].SetFloat(ShaderUtilities.ID_WeightBold, fontAsset.boldStyle); - //} - } - - // Add list of GlyphRects to font asset. - fontAsset.freeGlyphRects = m_FreeGlyphRects; - fontAsset.usedGlyphRects = m_UsedGlyphRects; - - // Save Font Asset creation settings - m_SelectedFontAsset = fontAsset; - m_LegacyFontAsset = null; - fontAsset.creationSettings = SaveFontCreationSettings(); - - AssetDatabase.SaveAssets(); - - AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(fontAsset)); // Re-import font asset to get the new updated version. - - //EditorUtility.SetDirty(font_asset); - fontAsset.ReadFontAssetDefinition(); - - AssetDatabase.Refresh(); - - m_FontAtlasTexture = null; - - // NEED TO GENERATE AN EVENT TO FORCE A REDRAW OF ANY TEXTMESHPRO INSTANCES THAT MIGHT BE USING THIS FONT ASSET - TMPro_EventManager.ON_FONT_PROPERTY_CHANGED(true, fontAsset); - } - - - void Save_SDF_FontAsset(string filePath) - { - filePath = filePath.Substring(0, filePath.Length - 6); // Trim file extension from filePath. - - string dataPath = Application.dataPath; - - if (filePath.IndexOf(dataPath, System.StringComparison.InvariantCultureIgnoreCase) == -1) - { - Debug.LogError("You're saving the font asset in a directory outside of this project folder. This is not supported. Please select a directory under \"" + dataPath + "\""); - return; - } - - string relativeAssetPath = filePath.Substring(dataPath.Length - 6); - string tex_DirName = Path.GetDirectoryName(relativeAssetPath); - string tex_FileName = Path.GetFileNameWithoutExtension(relativeAssetPath); - string tex_Path_NoExt = tex_DirName + "/" + tex_FileName; - - - // Check if TextMeshPro font asset already exists. If not, create a new one. Otherwise update the existing one. - TMP_FontAsset fontAsset = AssetDatabase.LoadAssetAtPath(tex_Path_NoExt + ".asset"); - if (fontAsset == null) - { - //Debug.Log("Creating TextMeshPro font asset!"); - fontAsset = ScriptableObject.CreateInstance(); // Create new TextMeshPro Font Asset. - AssetDatabase.CreateAsset(fontAsset, tex_Path_NoExt + ".asset"); - - // Set version number of font asset - fontAsset.version = "1.1.0"; - - // Reference to source font file GUID. - fontAsset.m_SourceFontFile_EditorRef = (Font)m_SourceFontFile; - fontAsset.m_SourceFontFileGUID = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(m_SourceFontFile)); - - //Set Font Asset Type - fontAsset.atlasRenderMode = m_GlyphRenderMode; - - // Add FaceInfo to Font Asset - fontAsset.faceInfo = m_FaceInfo; - - // Add GlyphInfo[] to Font Asset - fontAsset.glyphTable = m_FontGlyphTable; - - // Add CharacterTable[] to font asset. - fontAsset.characterTable = m_FontCharacterTable; - - // Sort glyph and character tables. - fontAsset.SortAllTables(); - - // Get and Add Kerning Pairs to Font Asset - if (m_IncludeFontFeatures) - fontAsset.fontFeatureTable = GetKerningTable(); - - // Add Font Atlas as Sub-Asset - fontAsset.atlasTextures = new Texture2D[] { m_FontAtlasTexture }; - m_FontAtlasTexture.name = tex_FileName + " Atlas"; - fontAsset.atlasWidth = m_AtlasWidth; - fontAsset.atlasHeight = m_AtlasHeight; - fontAsset.atlasPadding = m_Padding; - - AssetDatabase.AddObjectToAsset(m_FontAtlasTexture, fontAsset); - - // Create new Material and Add it as Sub-Asset - Shader default_Shader = Shader.Find("TextMeshPro/Distance Field"); - Material tmp_material = new Material(default_Shader); - - tmp_material.name = tex_FileName + " Material"; - tmp_material.SetTexture(ShaderUtilities.ID_MainTex, m_FontAtlasTexture); - tmp_material.SetFloat(ShaderUtilities.ID_TextureWidth, m_FontAtlasTexture.width); - tmp_material.SetFloat(ShaderUtilities.ID_TextureHeight, m_FontAtlasTexture.height); - - int spread = m_Padding + 1; - tmp_material.SetFloat(ShaderUtilities.ID_GradientScale, spread); // Spread = Padding for Brute Force SDF. - - tmp_material.SetFloat(ShaderUtilities.ID_WeightNormal, fontAsset.normalStyle); - tmp_material.SetFloat(ShaderUtilities.ID_WeightBold, fontAsset.boldStyle); - - fontAsset.material = tmp_material; - - AssetDatabase.AddObjectToAsset(tmp_material, fontAsset); - - } - else - { - // Find all Materials referencing this font atlas. - Material[] material_references = TMP_EditorUtility.FindMaterialReferences(fontAsset); - - // Set version number of font asset - fontAsset.version = "1.1.0"; - - // Special handling to remove legacy font asset data - if (fontAsset.m_glyphInfoList != null && fontAsset.m_glyphInfoList.Count > 0) - fontAsset.m_glyphInfoList = null; - - //Set Font Asset Type - fontAsset.atlasRenderMode = m_GlyphRenderMode; - - // Add FaceInfo to Font Asset - fontAsset.faceInfo = m_FaceInfo; - - // Add GlyphInfo[] to Font Asset - fontAsset.glyphTable = m_FontGlyphTable; - - // Add CharacterTable[] to font asset. - fontAsset.characterTable = m_FontCharacterTable; - - // Sort glyph and character tables. - fontAsset.SortAllTables(); - - // Get and Add Kerning Pairs to Font Asset - // TODO: Check and preserve existing adjustment pairs. - if (m_IncludeFontFeatures) - fontAsset.fontFeatureTable = GetKerningTable(); - - // Destroy Assets that will be replaced. - if (fontAsset.atlasTextures != null && fontAsset.atlasTextures.Length > 0) - { - for (int i = 1; i < fontAsset.atlasTextures.Length; i++) - DestroyImmediate(fontAsset.atlasTextures[i], true); - } - - fontAsset.m_AtlasTextureIndex = 0; - fontAsset.atlasWidth = m_AtlasWidth; - fontAsset.atlasHeight = m_AtlasHeight; - fontAsset.atlasPadding = m_Padding; - - // Make sure remaining atlas texture is of the correct size - Texture2D tex = fontAsset.atlasTextures[0]; - tex.name = tex_FileName + " Atlas"; - - // Make texture readable to allow resizing - bool isReadableState = tex.isReadable; - if (isReadableState == false) - FontEngineEditorUtilities.SetAtlasTextureIsReadable(tex, true); - - if (tex.width != m_AtlasWidth || tex.height != m_AtlasHeight) - { - tex.Resize(m_AtlasWidth, m_AtlasHeight); - tex.Apply(); - } - - // Copy new texture data to existing texture - Graphics.CopyTexture(m_FontAtlasTexture, tex); - - // Apply changes to the texture. - tex.Apply(false, !isReadableState); - - // Special handling due to a bug in earlier versions of Unity. - m_FontAtlasTexture.hideFlags = HideFlags.None; - fontAsset.material.hideFlags = HideFlags.None; - - // Update the Texture reference on the Material - for (int i = 0; i < material_references.Length; i++) - { - material_references[i].SetFloat(ShaderUtilities.ID_TextureWidth, tex.width); - material_references[i].SetFloat(ShaderUtilities.ID_TextureHeight, tex.height); - - int spread = m_Padding + 1; - material_references[i].SetFloat(ShaderUtilities.ID_GradientScale, spread); - - material_references[i].SetFloat(ShaderUtilities.ID_WeightNormal, fontAsset.normalStyle); - material_references[i].SetFloat(ShaderUtilities.ID_WeightBold, fontAsset.boldStyle); - } - } - - // Saving File for Debug - //var pngData = destination_Atlas.EncodeToPNG(); - //File.WriteAllBytes("Assets/Textures/Debug Distance Field.png", pngData); - - // Add list of GlyphRects to font asset. - fontAsset.freeGlyphRects = m_FreeGlyphRects; - fontAsset.usedGlyphRects = m_UsedGlyphRects; - - // Save Font Asset creation settings - m_SelectedFontAsset = fontAsset; - m_LegacyFontAsset = null; - fontAsset.creationSettings = SaveFontCreationSettings(); - - AssetDatabase.SaveAssets(); - - AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(fontAsset)); // Re-import font asset to get the new updated version. - - fontAsset.ReadFontAssetDefinition(); - - AssetDatabase.Refresh(); - - m_FontAtlasTexture = null; - - // NEED TO GENERATE AN EVENT TO FORCE A REDRAW OF ANY TEXTMESHPRO INSTANCES THAT MIGHT BE USING THIS FONT ASSET - TMPro_EventManager.ON_FONT_PROPERTY_CHANGED(true, fontAsset); - } - - - /// - /// Internal method to save the Font Asset Creation Settings - /// - /// - FontAssetCreationSettings SaveFontCreationSettings() - { - FontAssetCreationSettings settings = new FontAssetCreationSettings(); - - //settings.sourceFontFileName = m_SourceFontFile.name; - settings.sourceFontFileGUID = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(m_SourceFontFile)); - settings.pointSizeSamplingMode = m_PointSizeSamplingMode; - settings.pointSize = m_PointSize; - settings.padding = m_Padding; - settings.packingMode = (int)m_PackingMode; - settings.atlasWidth = m_AtlasWidth; - settings.atlasHeight = m_AtlasHeight; - settings.characterSetSelectionMode = m_CharacterSetSelectionMode; - settings.characterSequence = m_CharacterSequence; - settings.referencedFontAssetGUID = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(m_ReferencedFontAsset)); - settings.referencedTextAssetGUID = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(m_CharactersFromFile)); - //settings.fontStyle = (int)m_FontStyle; - //settings.fontStyleModifier = m_FontStyleValue; - settings.renderMode = (int)m_GlyphRenderMode; - settings.includeFontFeatures = m_IncludeFontFeatures; - - return settings; - } - - - /// - /// Internal method to load the Font Asset Creation Settings - /// - /// - void LoadFontCreationSettings(FontAssetCreationSettings settings) - { - m_SourceFontFile = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(settings.sourceFontFileGUID)); - m_PointSizeSamplingMode = settings.pointSizeSamplingMode; - m_PointSize = settings.pointSize; - m_Padding = settings.padding; - m_PackingMode = (FontPackingModes)settings.packingMode; - m_AtlasWidth = settings.atlasWidth; - m_AtlasHeight = settings.atlasHeight; - m_CharacterSetSelectionMode = settings.characterSetSelectionMode; - m_CharacterSequence = settings.characterSequence; - m_ReferencedFontAsset = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(settings.referencedFontAssetGUID)); - m_CharactersFromFile = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(settings.referencedTextAssetGUID)); - //m_FontStyle = (FaceStyles)settings.fontStyle; - //m_FontStyleValue = settings.fontStyleModifier; - m_GlyphRenderMode = (GlyphRenderMode)settings.renderMode; - m_IncludeFontFeatures = settings.includeFontFeatures; - } - - - /// - /// Save the latest font asset creation settings to EditorPrefs. - /// - /// - void SaveCreationSettingsToEditorPrefs(FontAssetCreationSettings settings) - { - // Create new list if one does not already exist - if (m_FontAssetCreationSettingsContainer == null) - { - m_FontAssetCreationSettingsContainer = new FontAssetCreationSettingsContainer(); - m_FontAssetCreationSettingsContainer.fontAssetCreationSettings = new List(); - } - - // Add new creation settings to the list - m_FontAssetCreationSettingsContainer.fontAssetCreationSettings.Add(settings); - - // Since list should only contain the most 4 recent settings, we remove the first element if list exceeds 4 elements. - if (m_FontAssetCreationSettingsContainer.fontAssetCreationSettings.Count > 4) - m_FontAssetCreationSettingsContainer.fontAssetCreationSettings.RemoveAt(0); - - m_FontAssetCreationSettingsCurrentIndex = m_FontAssetCreationSettingsContainer.fontAssetCreationSettings.Count - 1; - - // Serialize list to JSON - string serializedSettings = JsonUtility.ToJson(m_FontAssetCreationSettingsContainer, true); - - EditorPrefs.SetString(k_FontAssetCreationSettingsContainerKey, serializedSettings); - } - - void DrawPreview() - { - Rect pixelRect; - if (position.width > position.height && position.width > k_TwoColumnControlsWidth) - { - float minSide = Mathf.Min(position.height - 15f, position.width - k_TwoColumnControlsWidth); - - EditorGUILayout.BeginVertical(EditorStyles.helpBox, GUILayout.MaxWidth(minSide)); - - pixelRect = GUILayoutUtility.GetRect(minSide, minSide, GUILayout.ExpandHeight(false), GUILayout.ExpandWidth(false)); - } - else - { - EditorGUILayout.BeginVertical(EditorStyles.helpBox); - - pixelRect = GUILayoutUtility.GetAspectRect(1f); - } - - if (m_FontAtlasTexture != null) - { - EditorGUI.DrawTextureAlpha(pixelRect, m_FontAtlasTexture, ScaleMode.StretchToFill); - } - else if (m_SavedFontAtlas != null) - { - EditorGUI.DrawTextureAlpha(pixelRect, m_SavedFontAtlas, ScaleMode.StretchToFill); - } - - EditorGUILayout.EndVertical(); - } - - - void CheckForLegacyGlyphRenderMode() - { - // Special handling for legacy glyph render mode - if ((int)m_GlyphRenderMode < 0x100) - { - switch ((int)m_GlyphRenderMode) - { - case 0: - m_GlyphRenderMode = GlyphRenderMode.SMOOTH_HINTED; - break; - case 1: - m_GlyphRenderMode = GlyphRenderMode.SMOOTH; - break; - case 2: - m_GlyphRenderMode = GlyphRenderMode.RASTER_HINTED; - break; - case 3: - m_GlyphRenderMode = GlyphRenderMode.RASTER; - break; - case 6: - case 7: - m_GlyphRenderMode = GlyphRenderMode.SDFAA; - break; - } - } - } - - - // Get Kerning Pairs - public TMP_FontFeatureTable GetKerningTable() - { - GlyphPairAdjustmentRecord[] adjustmentRecords = FontEngine.GetGlyphPairAdjustmentTable(m_AvailableGlyphsToAdd.ToArray()); - - if (adjustmentRecords == null) - return null; - - TMP_FontFeatureTable fontFeatureTable = new TMP_FontFeatureTable(); - - for (int i = 0; i < adjustmentRecords.Length && adjustmentRecords[i].firstAdjustmentRecord.glyphIndex != 0; i++) - { - fontFeatureTable.glyphPairAdjustmentRecords.Add(new TMP_GlyphPairAdjustmentRecord(adjustmentRecords[i])); - } - - fontFeatureTable.SortGlyphPairAdjustmentRecords(); - - return fontFeatureTable; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_FontPlugin.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_FontPlugin.cs deleted file mode 100644 index 3b098ff..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_FontPlugin.cs +++ /dev/null @@ -1,115 +0,0 @@ -using UnityEngine; -using UnityEditor; -using System.Collections; -using System; -using System.Runtime.InteropServices; - - -namespace TMPro.EditorUtilities -{ - /* - public class TMPro_FontPlugin - { - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - private delegate void DebugLog(string log); - private static readonly DebugLog debugLog = DebugWrapper; - private static readonly IntPtr functionPointer = Marshal.GetFunctionPointerForDelegate(debugLog); - - private static void DebugWrapper(string log) - { - Debug.Log(log); - } - - public static void LinkDebugLog() - { - LinkDebug(functionPointer); - } - - [DllImport("TMPro_Plugin")] - private static extern void LinkDebug([MarshalAs(UnmanagedType.FunctionPtr)]IntPtr debugCall); - - [DllImport("TMPro_Plugin")] - public static extern - int Initialize_FontEngine(); - - [DllImport("TMPro_Plugin")] - public static extern - int Destroy_FontEngine(); - - [DllImport("TMPro_Plugin")] - public static extern - int Load_TrueType_Font(string fontPath); - - [DllImport("TMPro_Plugin")] - public static extern - int FT_Size_Font(int fontSize); - - [DllImport("TMPro_Plugin")] - public static extern - int Render_Character(byte[] buffer_fill, byte[] buffer_edge, int buffer_width, int buffer_height, int offset, int asc, FaceStyles style, float thickness, RenderModes rasterMode, ref FT_GlyphInfo glyphInfo); - - [DllImport("TMPro_Plugin")] - public static extern - int Render_Characters(byte[] buffer, int buffer_width, int buffer_height, int character_padding, int[] asc_set, int char_count, FaceStyles style, float style_mod, bool autoSize, RenderModes renderMode, int method, ref FT_FaceInfo fontData, FT_GlyphInfo[] Output); - - [DllImport("TMPro_Plugin")] - public static extern - int FT_GetKerningPairs(string fontPath, int[] characterSet, int setCount, FT_KerningPair[] kerningPairs); - - [DllImport("TMPro_Plugin")] - public static extern - float Check_RenderProgress(); - - [DllImport("TMPro_Plugin")] - internal static extern - void SendCancellationRequest(CancellationRequestType request); - } - - public enum FaceStyles { Normal, Bold, Italic, Bold_Italic, Outline, Bold_Sim }; - public enum RenderModes { HintedSmooth = 0, Smooth = 1, RasterHinted = 2, Raster = 3, DistanceField16 = 6, DistanceField32 = 7 }; // SignedDistanceField64 = 8 - - internal enum CancellationRequestType : byte { None = 0x0, CancelInProgess = 0x1, WindowClosed = 0x2 }; - - [StructLayout(LayoutKind.Sequential)] - public struct FT_KerningPair - { - public int ascII_Left; - public int ascII_Right; - public float xAdvanceOffset; - } - - - [StructLayout(LayoutKind.Sequential)] - public struct FT_GlyphInfo - { - public int id; - public float x; - public float y; - public float width; - public float height; - public float xOffset; - public float yOffset; - public float xAdvance; - } - - - [StructLayout(LayoutKind.Sequential)] - public struct FT_FaceInfo - { - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] - public string name; - public int pointSize; - public int padding; - public float lineHeight; - public float baseline; - public float ascender; - public float descender; - public float centerLine; - public float underline; - public float underlineThickness; - public int characterCount; - public int atlasWidth; - public int atlasHeight; - } - */ -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_SortingLayerHelper.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_SortingLayerHelper.cs deleted file mode 100644 index c36f9f8..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_SortingLayerHelper.cs +++ /dev/null @@ -1,32 +0,0 @@ -using UnityEngine; - - -namespace TMPro -{ - // Helpers used by the different sorting layer classes. - public static class SortingLayerHelper - { - // Gets an array of sorting layer names. - public static string[] sortingLayerNames - { - get - { - return GetSortingLayerNames(); - } - } - - static string[] GetSortingLayerNames() - { - int layerCount = SortingLayer.layers.Length; - - string[] layerNames = new string[layerCount]; - - for (int i = 0; i < layerCount; i++) - { - layerNames[i] = SortingLayer.layers[i].name; - } - - return layerNames; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_TextContainerEditor.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_TextContainerEditor.cs deleted file mode 100644 index 09fc617..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_TextContainerEditor.cs +++ /dev/null @@ -1,235 +0,0 @@ -using UnityEngine; -using UnityEditor; -using System.Collections; - - -namespace TMPro.EditorUtilities -{ - [CustomEditor(typeof(TextContainer)), CanEditMultipleObjects] - public class TMPro_TextContainerEditor : Editor - { - - // Serialized Properties - private SerializedProperty anchorPosition_prop; - private SerializedProperty pivot_prop; - private SerializedProperty rectangle_prop; - private SerializedProperty margins_prop; - - - private TextContainer m_textContainer; - //private Transform m_transform; - //private Vector3[] m_Rect_handlePoints = new Vector3[4]; - //private Vector3[] m_Margin_handlePoints = new Vector3[4]; - - //private Vector2 m_anchorPosition; - - //private Vector3 m_mousePreviousPOS; - //private Vector2 m_previousStartPOS; - //private int m_mouseDragFlag = 0; - - //private static Transform m_visualHelper; - - - void OnEnable() - { - - // Serialized Properties - anchorPosition_prop = serializedObject.FindProperty("m_anchorPosition"); - pivot_prop = serializedObject.FindProperty("m_pivot"); - rectangle_prop = serializedObject.FindProperty("m_rect"); - margins_prop = serializedObject.FindProperty("m_margins"); - - m_textContainer = (TextContainer)target; - //m_transform = m_textContainer.transform; - - - /* - if (m_visualHelper == null) - { - m_visualHelper = GameObject.CreatePrimitive(PrimitiveType.Sphere).transform; - m_visualHelper.localScale = new Vector3(0.25f, 0.25f, 0.25f); - } - */ - } - - void OnDisable() - { - /* - if (m_visualHelper != null) - DestroyImmediate (m_visualHelper.gameObject); - */ - } - - - - - public override void OnInspectorGUI() - { - serializedObject.Update(); - - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(anchorPosition_prop); - if (anchorPosition_prop.enumValueIndex == 9) - { - EditorGUI.indentLevel += 1; - EditorGUILayout.PropertyField(pivot_prop, new GUIContent("Pivot Position")); - EditorGUI.indentLevel -= 1; - } - - - DrawDimensionProperty(rectangle_prop, "Dimensions"); - DrawMaginProperty(margins_prop, "Margins"); - if (EditorGUI.EndChangeCheck()) - { - // Re-compute pivot position when changes are made. - if (anchorPosition_prop.enumValueIndex != 9) - pivot_prop.vector2Value = GetAnchorPosition(anchorPosition_prop.enumValueIndex); - - m_textContainer.hasChanged = true; - } - - serializedObject.ApplyModifiedProperties(); - - EditorGUILayout.Space(); - } - - - private void DrawDimensionProperty(SerializedProperty property, string label) - { - float old_LabelWidth = EditorGUIUtility.labelWidth; - float old_FieldWidth = EditorGUIUtility.fieldWidth; - - Rect rect = EditorGUILayout.GetControlRect(false, 18); - Rect pos0 = new Rect(rect.x, rect.y + 2, rect.width, 18); - - float width = rect.width + 3; - pos0.width = old_LabelWidth; - GUI.Label(pos0, label); - - Rect rectangle = property.rectValue; - - float width_B = width - old_LabelWidth; - float fieldWidth = width_B / 4; - pos0.width = fieldWidth - 5; - - pos0.x = old_LabelWidth + 15; - GUI.Label(pos0, "Width"); - - pos0.x += fieldWidth; - rectangle.width = EditorGUI.FloatField(pos0, GUIContent.none, rectangle.width); - - pos0.x += fieldWidth; - GUI.Label(pos0, "Height"); - - pos0.x += fieldWidth; - rectangle.height = EditorGUI.FloatField(pos0, GUIContent.none, rectangle.height); - - property.rectValue = rectangle; - EditorGUIUtility.labelWidth = old_LabelWidth; - EditorGUIUtility.fieldWidth = old_FieldWidth; - } - - - private void DrawMaginProperty(SerializedProperty property, string label) - { - float old_LabelWidth = EditorGUIUtility.labelWidth; - float old_FieldWidth = EditorGUIUtility.fieldWidth; - - Rect rect = EditorGUILayout.GetControlRect(false, 2 * 18); - Rect pos0 = new Rect(rect.x, rect.y + 2, rect.width, 18); - - float width = rect.width + 3; - pos0.width = old_LabelWidth; - GUI.Label(pos0, label); - - //Vector4 vec = property.vector4Value; - Vector4 vec = Vector4.zero; - vec.x = property.FindPropertyRelative("x").floatValue; - vec.y = property.FindPropertyRelative("y").floatValue; - vec.z = property.FindPropertyRelative("z").floatValue; - vec.w = property.FindPropertyRelative("w").floatValue; - - - float widthB = width - old_LabelWidth; - float fieldWidth = widthB / 4; - pos0.width = fieldWidth - 5; - - // Labels - pos0.x = old_LabelWidth + 15; - GUI.Label(pos0, "Left"); - - pos0.x += fieldWidth; - GUI.Label(pos0, "Top"); - - pos0.x += fieldWidth; - GUI.Label(pos0, "Right"); - - pos0.x += fieldWidth; - GUI.Label(pos0, "Bottom"); - - pos0.y += 18; - - pos0.x = old_LabelWidth + 15; - vec.x = EditorGUI.FloatField(pos0, GUIContent.none, vec.x); - - pos0.x += fieldWidth; - vec.y = EditorGUI.FloatField(pos0, GUIContent.none, vec.y); - - pos0.x += fieldWidth; - vec.z = EditorGUI.FloatField(pos0, GUIContent.none, vec.z); - - pos0.x += fieldWidth; - vec.w = EditorGUI.FloatField(pos0, GUIContent.none, vec.w); - - //property.vector4Value = vec; - property.FindPropertyRelative("x").floatValue = vec.x; - property.FindPropertyRelative("y").floatValue = vec.y; - property.FindPropertyRelative("z").floatValue = vec.z; - property.FindPropertyRelative("w").floatValue = vec.w; - - EditorGUIUtility.labelWidth = old_LabelWidth; - EditorGUIUtility.fieldWidth = old_FieldWidth; - } - - - Vector2 GetAnchorPosition(int index) - { - Vector2 anchorPosition = Vector2.zero; - - switch (index) - { - case 0: // TOP LEFT - anchorPosition = new Vector2(0, 1); - break; - case 1: // TOP - anchorPosition = new Vector2(0.5f, 1); - break; - case 2: // TOP RIGHT - anchorPosition = new Vector2(1, 1); - break; - case 3: // LEFT - anchorPosition = new Vector2(0, 0.5f); - break; - case 4: // MIDDLE - anchorPosition = new Vector2(0.5f, 0.5f); - break; - case 5: // RIGHT - anchorPosition = new Vector2(1, 0.5f); - break; - case 6: // BOTTOM LEFT - anchorPosition = new Vector2(0, 0); - break; - case 7: // BOTTOM - anchorPosition = new Vector2(0.5f, 0); - break; - case 8: // BOTTOM RIGHT - anchorPosition = new Vector2(1, 0); - break; - } - - return anchorPosition; - } - - - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_TexturePostProcessor.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_TexturePostProcessor.cs deleted file mode 100644 index b822d47..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/TMPro_TexturePostProcessor.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System; -using UnityEngine; -using UnityEditor; -using System.Collections; - - -namespace TMPro.EditorUtilities -{ - - public class TMPro_TexturePostProcessor : AssetPostprocessor - { - void OnPostprocessTexture(Texture2D texture) - { - Texture2D tex = AssetDatabase.LoadAssetAtPath(assetPath, typeof(Texture2D)) as Texture2D; - - // Send Event Sub Objects - if (tex != null) - TMPro_EventManager.ON_SPRITE_ASSET_PROPERTY_CHANGED(true, tex); - } - } - - /// - /// Asset post processor used to handle font assets getting updated outside of the Unity editor. - /// - class FontAssetPostProcessor : AssetPostprocessor - { - private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) - { - foreach (var asset in importedAssets) - { - if (AssetDatabase.GetMainAssetTypeAtPath(asset) == typeof(TMP_FontAsset)) - { - TMP_FontAsset fontAsset = AssetDatabase.LoadAssetAtPath(asset, typeof(TMP_FontAsset)) as TMP_FontAsset; - - if (fontAsset != null) - TMP_EditorResourceManager.RegisterFontAssetForDefinitionRefresh(fontAsset); - } - } - } - } - - //public class TMPro_PackageImportPostProcessor : AssetPostprocessor - //{ - // static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) - // { - // for (int i = 0; i < importedAssets.Length; i++) - // { - // if (importedAssets[i].Contains("TextMesh Pro/Resources/TMP Settings.asset")) - // { - // Debug.Log("New TMP Settings file was just imported."); - - // // TMP Settings file was just re-imported. - // // Check if project already contains - // } - - - // if (importedAssets[i].Contains("com.unity.TextMeshPro/Examples")) - // { - // //Debug.Log("New TMP Examples folder was just imported."); - // } - - // //Debug.Log("[" + importedAssets[i] + "] was just imported."); - // } - - - - // //for (int i = 0; i < deletedAssets.Length; i++) - // //{ - // // if (deletedAssets[i] == "Assets/TextMesh Pro") - // // { - // // //Debug.Log("Asset [" + deletedAssets[i] + "] has been deleted."); - // // string currentBuildSettings = PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup); - - // // //Check for and inject TMP_PRESENT - // // if (currentBuildSettings.Contains("TMP_PRESENT;")) - // // { - // // currentBuildSettings = currentBuildSettings.Replace("TMP_PRESENT;", ""); - - // // PlayerSettings.SetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup, currentBuildSettings); - // // } - // // else if (currentBuildSettings.Contains("TMP_PRESENT")) - // // { - // // currentBuildSettings = currentBuildSettings.Replace("TMP_PRESENT", ""); - - // // PlayerSettings.SetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup, currentBuildSettings); - // // } - // // } - // //} - // } - //} -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/Unity.TextMeshPro.Editor.asmdef b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/Unity.TextMeshPro.Editor.asmdef deleted file mode 100644 index 437e221..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Editor/Unity.TextMeshPro.Editor.asmdef +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "Unity.TextMeshPro.Editor", - "references": [ - "Unity.TextMeshPro" - ], - "optionalUnityReferences": [], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [] -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/AssemblyInfo.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/AssemblyInfo.cs deleted file mode 100644 index 5278493..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/AssemblyInfo.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System.Runtime.CompilerServices; - -// Allow internal visibility for testing purposes. -[assembly: InternalsVisibleTo("Unity.TextCore")] - -[assembly: InternalsVisibleTo("Unity.FontEngine.Tests")] - -#if UNITY_EDITOR -[assembly: InternalsVisibleTo("Unity.TextCore.Editor")] -[assembly: InternalsVisibleTo("Unity.TextMeshPro.Editor")] -#endif diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/FastAction.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/FastAction.cs deleted file mode 100644 index 62b378d..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/FastAction.cs +++ /dev/null @@ -1,150 +0,0 @@ -using UnityEngine; -using System.Collections; -using System.Collections.Generic; - - -namespace TMPro -{ - public class FastAction - { - - LinkedList delegates = new LinkedList(); - - Dictionary> lookup = new Dictionary>(); - - public void Add(System.Action rhs) - { - if (lookup.ContainsKey(rhs)) return; - - lookup[rhs] = delegates.AddLast(rhs); - } - - public void Remove(System.Action rhs) - { - LinkedListNode node; - if (lookup.TryGetValue(rhs, out node)) - { - lookup.Remove(rhs); - delegates.Remove(node); - } - } - - public void Call() - { - var node = delegates.First; - while (node != null) - { - node.Value(); - node = node.Next; - } - } - } - - - public class FastAction - { - - LinkedList> delegates = new LinkedList>(); - - Dictionary, LinkedListNode>> lookup = new Dictionary, LinkedListNode>>(); - - public void Add(System.Action rhs) - { - if (lookup.ContainsKey(rhs)) return; - - lookup[rhs] = delegates.AddLast(rhs); - } - - public void Remove(System.Action rhs) - { - LinkedListNode> node; - if (lookup.TryGetValue(rhs, out node)) - { - lookup.Remove(rhs); - delegates.Remove(node); - } - } - - public void Call(A a) - { - var node = delegates.First; - while (node != null) - { - node.Value(a); - node = node.Next; - } - } - } - - - public class FastAction - { - - LinkedList> delegates = new LinkedList>(); - - Dictionary, LinkedListNode>> lookup = new Dictionary, LinkedListNode>>(); - - public void Add(System.Action rhs) - { - if (lookup.ContainsKey(rhs)) return; - - lookup[rhs] = delegates.AddLast(rhs); - } - - public void Remove(System.Action rhs) - { - LinkedListNode> node; - if (lookup.TryGetValue(rhs, out node)) - { - lookup.Remove(rhs); - delegates.Remove(node); - } - } - - public void Call(A a, B b) - { - var node = delegates.First; - while (node != null) - { - node.Value(a, b); - node = node.Next; - } - } - } - - - public class FastAction - { - - LinkedList> delegates = new LinkedList>(); - - Dictionary, LinkedListNode>> lookup = new Dictionary, LinkedListNode>>(); - - public void Add(System.Action rhs) - { - if (lookup.ContainsKey(rhs)) return; - - lookup[rhs] = delegates.AddLast(rhs); - } - - public void Remove(System.Action rhs) - { - LinkedListNode> node; - if (lookup.TryGetValue(rhs, out node)) - { - lookup.Remove(rhs); - delegates.Remove(node); - } - } - - public void Call(A a, B b, C c) - { - var node = delegates.First; - while (node != null) - { - node.Value(a, b, c); - node = node.Next; - } - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/ITextPreProcessor.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/ITextPreProcessor.cs deleted file mode 100644 index 5d3f57a..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/ITextPreProcessor.cs +++ /dev/null @@ -1,17 +0,0 @@ - - -namespace TMPro -{ - /// - /// Interface used for preprocessing and shaping of text. - /// - public interface ITextPreprocessor - { - /// - /// Function used for preprocessing of text - /// - /// Source text to be processed - /// Processed text - string PreprocessText(string text); - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/MaterialReferenceManager.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/MaterialReferenceManager.cs deleted file mode 100644 index c1e05e9..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/MaterialReferenceManager.cs +++ /dev/null @@ -1,652 +0,0 @@ -using UnityEngine; -using System.Collections; -using System.Collections.Generic; - - -namespace TMPro -{ - - public class MaterialReferenceManager - { - private static MaterialReferenceManager s_Instance; - - // Dictionaries used to track Asset references. - private Dictionary m_FontMaterialReferenceLookup = new Dictionary(); - private Dictionary m_FontAssetReferenceLookup = new Dictionary(); - private Dictionary m_SpriteAssetReferenceLookup = new Dictionary(); - private Dictionary m_ColorGradientReferenceLookup = new Dictionary(); - - - /// - /// Get a singleton instance of the registry - /// - public static MaterialReferenceManager instance - { - get - { - if (MaterialReferenceManager.s_Instance == null) - MaterialReferenceManager.s_Instance = new MaterialReferenceManager(); - return MaterialReferenceManager.s_Instance; - } - } - - - - /// - /// Add new font asset reference to dictionary. - /// - /// - public static void AddFontAsset(TMP_FontAsset fontAsset) - { - MaterialReferenceManager.instance.AddFontAssetInternal(fontAsset); - } - - /// - /// Add new Font Asset reference to dictionary. - /// - /// - private void AddFontAssetInternal(TMP_FontAsset fontAsset) - { - if (m_FontAssetReferenceLookup.ContainsKey(fontAsset.hashCode)) return; - - // Add reference to the font asset. - m_FontAssetReferenceLookup.Add(fontAsset.hashCode, fontAsset); - - // Add reference to the font material. - m_FontMaterialReferenceLookup.Add(fontAsset.materialHashCode, fontAsset.material); - } - - - - /// - /// Add new Sprite Asset to dictionary. - /// - /// - /// - public static void AddSpriteAsset(TMP_SpriteAsset spriteAsset) - { - MaterialReferenceManager.instance.AddSpriteAssetInternal(spriteAsset); - } - - /// - /// Internal method to add a new sprite asset to the dictionary. - /// - /// - /// - private void AddSpriteAssetInternal(TMP_SpriteAsset spriteAsset) - { - if (m_SpriteAssetReferenceLookup.ContainsKey(spriteAsset.hashCode)) return; - - // Add reference to sprite asset. - m_SpriteAssetReferenceLookup.Add(spriteAsset.hashCode, spriteAsset); - - // Adding reference to the sprite asset material as well - m_FontMaterialReferenceLookup.Add(spriteAsset.hashCode, spriteAsset.material); - } - - /// - /// Add new Sprite Asset to dictionary. - /// - /// - /// - public static void AddSpriteAsset(int hashCode, TMP_SpriteAsset spriteAsset) - { - MaterialReferenceManager.instance.AddSpriteAssetInternal(hashCode, spriteAsset); - } - - /// - /// Internal method to add a new sprite asset to the dictionary. - /// - /// - /// - private void AddSpriteAssetInternal(int hashCode, TMP_SpriteAsset spriteAsset) - { - if (m_SpriteAssetReferenceLookup.ContainsKey(hashCode)) return; - - // Add reference to Sprite Asset. - m_SpriteAssetReferenceLookup.Add(hashCode, spriteAsset); - - // Add reference to Sprite Asset using the asset hashcode. - m_FontMaterialReferenceLookup.Add(hashCode, spriteAsset.material); - - // Compatibility check - if (spriteAsset.hashCode == 0) spriteAsset.hashCode = hashCode; - } - - - /// - /// Add new Material reference to dictionary. - /// - /// - /// - public static void AddFontMaterial(int hashCode, Material material) - { - MaterialReferenceManager.instance.AddFontMaterialInternal(hashCode, material); - } - - /// - /// Add new material reference to dictionary. - /// - /// - /// - private void AddFontMaterialInternal(int hashCode, Material material) - { - // Since this function is called after checking if the material is - // contained in the dictionary, there is no need to check again. - m_FontMaterialReferenceLookup.Add(hashCode, material); - } - - - /// - /// Add new Color Gradient Preset to dictionary. - /// - /// - /// - public static void AddColorGradientPreset(int hashCode, TMP_ColorGradient spriteAsset) - { - MaterialReferenceManager.instance.AddColorGradientPreset_Internal(hashCode, spriteAsset); - } - - /// - /// Internal method to add a new Color Gradient Preset to the dictionary. - /// - /// - /// - private void AddColorGradientPreset_Internal(int hashCode, TMP_ColorGradient spriteAsset) - { - if (m_ColorGradientReferenceLookup.ContainsKey(hashCode)) return; - - // Add reference to Color Gradient Preset Asset. - m_ColorGradientReferenceLookup.Add(hashCode, spriteAsset); - } - - - - /// - /// Add new material reference and return the index of this new reference in the materialReferences array. - /// - /// - /// - /// - //public int AddMaterial(Material material, int materialHashCode, TMP_FontAsset fontAsset) - //{ - // if (!m_MaterialReferenceLookup.ContainsKey(materialHashCode)) - // { - // int index = m_MaterialReferenceLookup.Count; - - // materialReferences[index].fontAsset = fontAsset; - // materialReferences[index].material = material; - // materialReferences[index].isDefaultMaterial = material.GetInstanceID() == fontAsset.material.GetInstanceID() ? true : false; - // materialReferences[index].index = index; - // materialReferences[index].referenceCount = 0; - - // m_MaterialReferenceLookup[materialHashCode] = index; - - // // Compute Padding value and store it - // // TODO - - // int fontAssetHashCode = fontAsset.hashCode; - - // if (!m_FontAssetReferenceLookup.ContainsKey(fontAssetHashCode)) - // m_FontAssetReferenceLookup.Add(fontAssetHashCode, fontAsset); - - // m_countInternal += 1; - - // return index; - // } - // else - // { - // return m_MaterialReferenceLookup[materialHashCode]; - // } - //} - - - /// - /// Add new material reference and return the index of this new reference in the materialReferences array. - /// - /// - /// - /// - /// - //public int AddMaterial(Material material, int materialHashCode, TMP_SpriteAsset spriteAsset) - //{ - // if (!m_MaterialReferenceLookup.ContainsKey(materialHashCode)) - // { - // int index = m_MaterialReferenceLookup.Count; - - // materialReferences[index].fontAsset = materialReferences[0].fontAsset; - // materialReferences[index].spriteAsset = spriteAsset; - // materialReferences[index].material = material; - // materialReferences[index].isDefaultMaterial = true; - // materialReferences[index].index = index; - // materialReferences[index].referenceCount = 0; - - // m_MaterialReferenceLookup[materialHashCode] = index; - - // int spriteAssetHashCode = spriteAsset.hashCode; - - // if (!m_SpriteAssetReferenceLookup.ContainsKey(spriteAssetHashCode)) - // m_SpriteAssetReferenceLookup.Add(spriteAssetHashCode, spriteAsset); - - // m_countInternal += 1; - - // return index; - // } - // else - // { - // return m_MaterialReferenceLookup[materialHashCode]; - // } - //} - - - /// - /// Function to check if the font asset is already referenced. - /// - /// - /// - public bool Contains(TMP_FontAsset font) - { - if (m_FontAssetReferenceLookup.ContainsKey(font.hashCode)) - return true; - - return false; - } - - - /// - /// Function to check if the sprite asset is already referenced. - /// - /// - /// - public bool Contains(TMP_SpriteAsset sprite) - { - if (m_FontAssetReferenceLookup.ContainsKey(sprite.hashCode)) - return true; - - return false; - } - - - - /// - /// Function returning the Font Asset corresponding to the provided hash code. - /// - /// - /// - /// - public static bool TryGetFontAsset(int hashCode, out TMP_FontAsset fontAsset) - { - return MaterialReferenceManager.instance.TryGetFontAssetInternal(hashCode, out fontAsset); - } - - /// - /// Internal Function returning the Font Asset corresponding to the provided hash code. - /// - /// - /// - /// - private bool TryGetFontAssetInternal(int hashCode, out TMP_FontAsset fontAsset) - { - fontAsset = null; - - if (m_FontAssetReferenceLookup.TryGetValue(hashCode, out fontAsset)) - { - return true; - } - - return false; - } - - - - /// - /// Function returning the Sprite Asset corresponding to the provided hash code. - /// - /// - /// - /// - public static bool TryGetSpriteAsset(int hashCode, out TMP_SpriteAsset spriteAsset) - { - return MaterialReferenceManager.instance.TryGetSpriteAssetInternal(hashCode, out spriteAsset); - } - - /// - /// Internal function returning the Sprite Asset corresponding to the provided hash code. - /// - /// - /// - /// - private bool TryGetSpriteAssetInternal(int hashCode, out TMP_SpriteAsset spriteAsset) - { - spriteAsset = null; - - if (m_SpriteAssetReferenceLookup.TryGetValue(hashCode, out spriteAsset)) - { - return true; - } - - return false; - } - - - /// - /// Function returning the Color Gradient Preset corresponding to the provided hash code. - /// - /// - /// - /// - public static bool TryGetColorGradientPreset(int hashCode, out TMP_ColorGradient gradientPreset) - { - return MaterialReferenceManager.instance.TryGetColorGradientPresetInternal(hashCode, out gradientPreset); - } - - /// - /// Internal function returning the Color Gradient Preset corresponding to the provided hash code. - /// - /// - /// - /// - private bool TryGetColorGradientPresetInternal(int hashCode, out TMP_ColorGradient gradientPreset) - { - gradientPreset = null; - - if (m_ColorGradientReferenceLookup.TryGetValue(hashCode, out gradientPreset)) - { - return true; - } - - return false; - } - - - /// - /// Function returning the Font Material corresponding to the provided hash code. - /// - /// - /// - /// - public static bool TryGetMaterial(int hashCode, out Material material) - { - return MaterialReferenceManager.instance.TryGetMaterialInternal(hashCode, out material); - } - - /// - /// Internal function returning the Font Material corresponding to the provided hash code. - /// - /// - /// - /// - private bool TryGetMaterialInternal(int hashCode, out Material material) - { - material = null; - - if (m_FontMaterialReferenceLookup.TryGetValue(hashCode, out material)) - { - return true; - } - - return false; - } - - - /// - /// Function to lookup a material based on hash code and returning the MaterialReference containing this material. - /// - /// - /// - /// - //public bool TryGetMaterial(int hashCode, out MaterialReference materialReference) - //{ - // int materialIndex = -1; - - // if (m_MaterialReferenceLookup.TryGetValue(hashCode, out materialIndex)) - // { - // materialReference = materialReferences[materialIndex]; - - // return true; - // } - - // materialReference = new MaterialReference(); - - // return false; - //} - - - - /// - /// - /// - /// - /// - //public int GetMaterialIndex(TMP_FontAsset fontAsset) - //{ - // if (m_MaterialReferenceLookup.ContainsKey(fontAsset.materialHashCode)) - // return m_MaterialReferenceLookup[fontAsset.materialHashCode]; - - // return -1; - //} - - - /// - /// - /// - /// - /// - //public TMP_FontAsset GetFontAsset(int index) - //{ - // if (index >= 0 && index < materialReferences.Length) - // return materialReferences[index].fontAsset; - - // return null; - //} - - - /// - /// - /// - /// - /// - /// - //public void SetDefaultMaterial(Material material, int materialHashCode, TMP_FontAsset fontAsset) - //{ - // if (!m_MaterialReferenceLookup.ContainsKey(materialHashCode)) - // { - // materialReferences[0].fontAsset = fontAsset; - // materialReferences[0].material = material; - // materialReferences[0].index = 0; - // materialReferences[0].isDefaultMaterial = material.GetInstanceID() == fontAsset.material.GetInstanceID() ? true : false; - // materialReferences[0].referenceCount = 0; - // m_MaterialReferenceLookup[materialHashCode] = 0; - - // // Compute Padding value and store it - // // TODO - - // int fontHashCode = fontAsset.hashCode; - - // if (!m_FontAssetReferenceLookup.ContainsKey(fontHashCode)) - // m_FontAssetReferenceLookup.Add(fontHashCode, fontAsset); - // } - // else - // { - // materialReferences[0].fontAsset = fontAsset; - // materialReferences[0].material = material; - // materialReferences[0].index = 0; - // materialReferences[0].referenceCount = 0; - // m_MaterialReferenceLookup[materialHashCode] = 0; - // } - // // Compute padding - // // TODO - - // m_countInternal = 1; - //} - - - - /// - /// - /// - //public void Clear() - //{ - // //m_currentIndex = 0; - // m_MaterialReferenceLookup.Clear(); - // m_SpriteAssetReferenceLookup.Clear(); - // m_FontAssetReferenceLookup.Clear(); - //} - - - /// - /// Function to clear the reference count for each of the material references. - /// - //public void ClearReferenceCount() - //{ - // m_countInternal = 0; - - // for (int i = 0; i < materialReferences.Length; i++) - // { - // if (materialReferences[i].fontAsset == null) - // return; - - // materialReferences[i].referenceCount = 0; - // } - //} - - } - - - public struct TMP_MaterialReference - { - public Material material; - public int referenceCount; - } - - - public struct MaterialReference - { - - public int index; - public TMP_FontAsset fontAsset; - public TMP_SpriteAsset spriteAsset; - public Material material; - public bool isDefaultMaterial; - public bool isFallbackMaterial; - public Material fallbackMaterial; - public float padding; - public int referenceCount; - - - /// - /// Constructor for new Material Reference. - /// - /// - /// - /// - /// - /// - public MaterialReference(int index, TMP_FontAsset fontAsset, TMP_SpriteAsset spriteAsset, Material material, float padding) - { - this.index = index; - this.fontAsset = fontAsset; - this.spriteAsset = spriteAsset; - this.material = material; - this.isDefaultMaterial = material.GetInstanceID() == fontAsset.material.GetInstanceID() ? true : false; - this.isFallbackMaterial = false; - this.fallbackMaterial = null; - this.padding = padding; - this.referenceCount = 0; - } - - - /// - /// Function to check if a certain font asset is contained in the material reference array. - /// - /// - /// - /// - public static bool Contains(MaterialReference[] materialReferences, TMP_FontAsset fontAsset) - { - int id = fontAsset.GetInstanceID(); - - for (int i = 0; i < materialReferences.Length && materialReferences[i].fontAsset != null; i++) - { - if (materialReferences[i].fontAsset.GetInstanceID() == id) - return true; - } - - return false; - } - - - /// - /// Function to add a new material reference and returning its index in the material reference array. - /// - /// - /// - /// - /// - /// - public static int AddMaterialReference(Material material, TMP_FontAsset fontAsset, MaterialReference[] materialReferences, Dictionary materialReferenceIndexLookup) - { - int materialID = material.GetInstanceID(); - int index; - - if (materialReferenceIndexLookup.TryGetValue(materialID, out index)) - { - return index; - } - else - { - index = materialReferenceIndexLookup.Count; - - // Add new reference index - materialReferenceIndexLookup[materialID] = index; - - materialReferences[index].index = index; - materialReferences[index].fontAsset = fontAsset; - materialReferences[index].spriteAsset = null; - materialReferences[index].material = material; - materialReferences[index].isDefaultMaterial = materialID == fontAsset.material.GetInstanceID() ? true : false; - //materialReferences[index].padding = 0; - materialReferences[index].referenceCount = 0; - - return index; - } - } - - - /// - /// - /// - /// - /// - /// - /// - /// - public static int AddMaterialReference(Material material, TMP_SpriteAsset spriteAsset, MaterialReference[] materialReferences, Dictionary materialReferenceIndexLookup) - { - int materialID = material.GetInstanceID(); - int index; - - if (materialReferenceIndexLookup.TryGetValue(materialID, out index)) - { - return index; - } - else - { - index = materialReferenceIndexLookup.Count; - - // Add new reference index - materialReferenceIndexLookup[materialID] = index; - - materialReferences[index].index = index; - materialReferences[index].fontAsset = materialReferences[0].fontAsset; - materialReferences[index].spriteAsset = spriteAsset; - materialReferences[index].material = material; - materialReferences[index].isDefaultMaterial = true; - //materialReferences[index].padding = 0; - materialReferences[index].referenceCount = 0; - - return index; - } - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_Asset.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_Asset.cs deleted file mode 100644 index 60ed878..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_Asset.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using UnityEngine; - -namespace TMPro -{ - - // Base class inherited by the various TextMeshPro Assets. - [Serializable] - public abstract class TMP_Asset : ScriptableObject - { - /// - /// Instance ID of the TMP Asset - /// - public int instanceID - { - get - { - if (m_InstanceID == 0) - m_InstanceID = GetInstanceID(); - - return m_InstanceID; - } - } - private int m_InstanceID; - - /// - /// HashCode based on the name of the asset. - /// - public int hashCode; - - /// - /// The material used by this asset. - /// - public Material material; - - /// - /// HashCode based on the name of the material assigned to this asset. - /// - public int materialHashCode; - - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_Character.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_Character.cs deleted file mode 100644 index 6b4cc83..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_Character.cs +++ /dev/null @@ -1,70 +0,0 @@ -using System; -using UnityEngine.TextCore; - -namespace TMPro -{ - /// - /// A basic element of text. - /// - [Serializable] - public class TMP_Character : TMP_TextElement - { - /// - /// Default constructor. - /// - public TMP_Character() - { - m_ElementType = TextElementType.Character; - this.scale = 1.0f; - } - - /// - /// Constructor for new character - /// - /// Unicode value. - /// Glyph - public TMP_Character(uint unicode, Glyph glyph) - { - m_ElementType = TextElementType.Character; - - this.unicode = unicode; - this.textAsset = null; - this.glyph = glyph; - this.glyphIndex = glyph.index; - this.scale = 1.0f; - } - - /// - /// Constructor for new character - /// - /// Unicode value. - /// The font asset to which this character belongs. - /// Glyph - public TMP_Character(uint unicode, TMP_FontAsset fontAsset, Glyph glyph) - { - m_ElementType = TextElementType.Character; - - this.unicode = unicode; - this.textAsset = fontAsset; - this.glyph = glyph; - this.glyphIndex = glyph.index; - this.scale = 1.0f; - } - - /// - /// Constructor for new character - /// - /// Unicode value. - /// Glyph index. - internal TMP_Character(uint unicode, uint glyphIndex) - { - m_ElementType = TextElementType.Character; - - this.unicode = unicode; - this.textAsset = null; - this.glyph = null; - this.glyphIndex = glyphIndex; - this.scale = 1.0f; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_CharacterInfo.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_CharacterInfo.cs deleted file mode 100644 index 2a919f6..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_CharacterInfo.cs +++ /dev/null @@ -1,220 +0,0 @@ -using System.Diagnostics; -using UnityEngine; - - -namespace TMPro -{ - public struct TMP_Vertex - { - public Vector3 position; - public Vector2 uv; - public Vector2 uv2; - public Vector2 uv4; - public Color32 color; - - public static TMP_Vertex zero { get { return k_Zero; } } - - //public Vector3 normal; - //public Vector4 tangent; - - static readonly TMP_Vertex k_Zero = new TMP_Vertex(); - } - - /// - /// - /// - public struct TMP_Offset - { - public float left { get { return m_Left; } set { m_Left = value; } } - - public float right { get { return m_Right; } set { m_Right = value; } } - - public float top { get { return m_Top; } set { m_Top = value; } } - - public float bottom { get { return m_Bottom; } set { m_Bottom = value; } } - - public float horizontal { get { return m_Left; } set { m_Left = value; m_Right = value; } } - - public float vertical { get { return m_Top; } set { m_Top = value; m_Bottom = value; } } - - /// - /// - /// - public static TMP_Offset zero { get { return k_ZeroOffset; } } - - // ============================================= - // Private backing fields for public properties. - // ============================================= - - float m_Left; - float m_Right; - float m_Top; - float m_Bottom; - - static readonly TMP_Offset k_ZeroOffset = new TMP_Offset(0F, 0F, 0F, 0F); - - /// - /// - /// - /// - /// - /// - /// - public TMP_Offset(float left, float right, float top, float bottom) - { - m_Left = left; - m_Right = right; - m_Top = top; - m_Bottom = bottom; - } - - /// - /// - /// - /// - /// - public TMP_Offset(float horizontal, float vertical) - { - m_Left = horizontal; - m_Right = horizontal; - m_Top = vertical; - m_Bottom = vertical; - } - - public static bool operator ==(TMP_Offset lhs, TMP_Offset rhs) - { - return lhs.m_Left == rhs.m_Left && - lhs.m_Right == rhs.m_Right && - lhs.m_Top == rhs.m_Top && - lhs.m_Bottom == rhs.m_Bottom; - } - - public static bool operator !=(TMP_Offset lhs, TMP_Offset rhs) - { - return !(lhs == rhs); - } - - public static TMP_Offset operator *(TMP_Offset a, float b) - { - return new TMP_Offset(a.m_Left * b, a.m_Right * b, a.m_Top * b, a.m_Bottom * b); - } - - public override int GetHashCode() - { - return base.GetHashCode(); - } - - public override bool Equals(object obj) - { - return base.Equals(obj); - } - - public bool Equals(TMP_Offset other) - { - return base.Equals(other); - } - } - - - /// - /// - /// - public struct HighlightState - { - public Color32 color; - public TMP_Offset padding; - - public HighlightState(Color32 color, TMP_Offset padding) - { - this.color = color; - this.padding = padding; - } - - public static bool operator ==(HighlightState lhs, HighlightState rhs) - { - return lhs.color.Compare(rhs.color) && lhs.padding == rhs.padding; - } - - public static bool operator !=(HighlightState lhs, HighlightState rhs) - { - return !(lhs == rhs); - } - - public override int GetHashCode() - { - return base.GetHashCode(); - } - - public override bool Equals(object obj) - { - return base.Equals(obj); - } - - public bool Equals(HighlightState other) - { - return base.Equals(other); - } - } - /// - /// Structure containing information about individual text elements (character or sprites). - /// - [DebuggerDisplay("Unicode '{character}' ({((uint)character).ToString(\"X\")})")] - public struct TMP_CharacterInfo - { - public char character; // Should be changed to an uint to handle UTF32 - /// - /// Index of the character in the raw string. - /// - public int index; // Index of the character in the input string. - public int stringLength; - public TMP_TextElementType elementType; - - public TMP_TextElement textElement; - public TMP_FontAsset fontAsset; - public TMP_SpriteAsset spriteAsset; - public int spriteIndex; - public Material material; - public int materialReferenceIndex; - public bool isUsingAlternateTypeface; - - public float pointSize; - - //public short wordNumber; - public int lineNumber; - //public short charNumber; - public int pageNumber; - - - public int vertexIndex; - public TMP_Vertex vertex_BL; - public TMP_Vertex vertex_TL; - public TMP_Vertex vertex_TR; - public TMP_Vertex vertex_BR; - - public Vector3 topLeft; - public Vector3 bottomLeft; - public Vector3 topRight; - public Vector3 bottomRight; - - public float origin; - public float xAdvance; - public float ascender; - public float baseLine; - public float descender; - internal float adjustedAscender; - internal float adjustedDescender; - - public float aspectRatio; - public float scale; - public Color32 color; - public Color32 underlineColor; - public int underlineVertexIndex; - public Color32 strikethroughColor; - public int strikethroughVertexIndex; - public Color32 highlightColor; - public HighlightState highlightState; - public FontStyles style; - public bool isVisible; - //public bool isIgnoringAlignment; - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_ColorGradient.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_ColorGradient.cs deleted file mode 100644 index 8e8e38a..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_ColorGradient.cs +++ /dev/null @@ -1,68 +0,0 @@ -using UnityEngine; -using System.Collections; - -namespace TMPro -{ - public enum ColorMode - { - Single, - HorizontalGradient, - VerticalGradient, - FourCornersGradient - } - - [System.Serializable][ExcludeFromPresetAttribute] - public class TMP_ColorGradient : ScriptableObject - { - public ColorMode colorMode = ColorMode.FourCornersGradient; - - public Color topLeft; - public Color topRight; - public Color bottomLeft; - public Color bottomRight; - - const ColorMode k_DefaultColorMode = ColorMode.FourCornersGradient; - static readonly Color k_DefaultColor = Color.white; - - /// - /// Default Constructor which sets each of the colors as white. - /// - public TMP_ColorGradient() - { - colorMode = k_DefaultColorMode; - topLeft = k_DefaultColor; - topRight = k_DefaultColor; - bottomLeft = k_DefaultColor; - bottomRight = k_DefaultColor; - } - - /// - /// Constructor allowing to set the default color of the Color Gradient. - /// - /// - public TMP_ColorGradient(Color color) - { - colorMode = k_DefaultColorMode; - topLeft = color; - topRight = color; - bottomLeft = color; - bottomRight = color; - } - - /// - /// The vertex colors at the corners of the characters. - /// - /// Top left color. - /// Top right color. - /// Bottom left color. - /// Bottom right color. - public TMP_ColorGradient(Color color0, Color color1, Color color2, Color color3) - { - colorMode = k_DefaultColorMode; - this.topLeft = color0; - this.topRight = color1; - this.bottomLeft = color2; - this.bottomRight = color3; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_Compatibility.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_Compatibility.cs deleted file mode 100644 index 8484a5c..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_Compatibility.cs +++ /dev/null @@ -1,74 +0,0 @@ -using UnityEngine; -using System.Collections; - - -namespace TMPro -{ - // Class used to convert scenes and objects saved in version 0.1.44 to the new Text Container - public static class TMP_Compatibility - { - public enum AnchorPositions { TopLeft, Top, TopRight, Left, Center, Right, BottomLeft, Bottom, BottomRight, BaseLine, None }; - - /// - /// Function used to convert text alignment option enumeration format. - /// - /// - /// - public static TextAlignmentOptions ConvertTextAlignmentEnumValues(TextAlignmentOptions oldValue) - { - switch ((int)oldValue) - { - case 0: - return TextAlignmentOptions.TopLeft; - case 1: - return TextAlignmentOptions.Top; - case 2: - return TextAlignmentOptions.TopRight; - case 3: - return TextAlignmentOptions.TopJustified; - case 4: - return TextAlignmentOptions.Left; - case 5: - return TextAlignmentOptions.Center; - case 6: - return TextAlignmentOptions.Right; - case 7: - return TextAlignmentOptions.Justified; - case 8: - return TextAlignmentOptions.BottomLeft; - case 9: - return TextAlignmentOptions.Bottom; - case 10: - return TextAlignmentOptions.BottomRight; - case 11: - return TextAlignmentOptions.BottomJustified; - case 12: - return TextAlignmentOptions.BaselineLeft; - case 13: - return TextAlignmentOptions.Baseline; - case 14: - return TextAlignmentOptions.BaselineRight; - case 15: - return TextAlignmentOptions.BaselineJustified; - case 16: - return TextAlignmentOptions.MidlineLeft; - case 17: - return TextAlignmentOptions.Midline; - case 18: - return TextAlignmentOptions.MidlineRight; - case 19: - return TextAlignmentOptions.MidlineJustified; - case 20: - return TextAlignmentOptions.CaplineLeft; - case 21: - return TextAlignmentOptions.Capline; - case 22: - return TextAlignmentOptions.CaplineRight; - case 23: - return TextAlignmentOptions.CaplineJustified; - } - - return TextAlignmentOptions.TopLeft; - } - } -} diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_CoroutineTween.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_CoroutineTween.cs deleted file mode 100644 index bec1f54..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_CoroutineTween.cs +++ /dev/null @@ -1,246 +0,0 @@ -using UnityEngine; -using UnityEngine.Events; -using System.Collections; - - -namespace TMPro -{ - // Base interface for tweeners, - // using an interface instead of - // an abstract class as we want the - // tweens to be structs. - internal interface ITweenValue - { - void TweenValue(float floatPercentage); - bool ignoreTimeScale { get; } - float duration { get; } - bool ValidTarget(); - } - - // Color tween class, receives the - // TweenValue callback and then sets - // the value on the target. - internal struct ColorTween : ITweenValue - { - public enum ColorTweenMode - { - All, - RGB, - Alpha - } - - public class ColorTweenCallback : UnityEvent { } - - private ColorTweenCallback m_Target; - private Color m_StartColor; - private Color m_TargetColor; - private ColorTweenMode m_TweenMode; - - private float m_Duration; - private bool m_IgnoreTimeScale; - - public Color startColor - { - get { return m_StartColor; } - set { m_StartColor = value; } - } - - public Color targetColor - { - get { return m_TargetColor; } - set { m_TargetColor = value; } - } - - public ColorTweenMode tweenMode - { - get { return m_TweenMode; } - set { m_TweenMode = value; } - } - - public float duration - { - get { return m_Duration; } - set { m_Duration = value; } - } - - public bool ignoreTimeScale - { - get { return m_IgnoreTimeScale; } - set { m_IgnoreTimeScale = value; } - } - - public void TweenValue(float floatPercentage) - { - if (!ValidTarget()) - return; - - var newColor = Color.Lerp(m_StartColor, m_TargetColor, floatPercentage); - - if (m_TweenMode == ColorTweenMode.Alpha) - { - newColor.r = m_StartColor.r; - newColor.g = m_StartColor.g; - newColor.b = m_StartColor.b; - } - else if (m_TweenMode == ColorTweenMode.RGB) - { - newColor.a = m_StartColor.a; - } - m_Target.Invoke(newColor); - } - - public void AddOnChangedCallback(UnityAction callback) - { - if (m_Target == null) - m_Target = new ColorTweenCallback(); - - m_Target.AddListener(callback); - } - - public bool GetIgnoreTimescale() - { - return m_IgnoreTimeScale; - } - - public float GetDuration() - { - return m_Duration; - } - - public bool ValidTarget() - { - return m_Target != null; - } - } - - // Float tween class, receives the - // TweenValue callback and then sets - // the value on the target. - internal struct FloatTween : ITweenValue - { - public class FloatTweenCallback : UnityEvent { } - - private FloatTweenCallback m_Target; - private float m_StartValue; - private float m_TargetValue; - - private float m_Duration; - private bool m_IgnoreTimeScale; - - public float startValue - { - get { return m_StartValue; } - set { m_StartValue = value; } - } - - public float targetValue - { - get { return m_TargetValue; } - set { m_TargetValue = value; } - } - - public float duration - { - get { return m_Duration; } - set { m_Duration = value; } - } - - public bool ignoreTimeScale - { - get { return m_IgnoreTimeScale; } - set { m_IgnoreTimeScale = value; } - } - - public void TweenValue(float floatPercentage) - { - if (!ValidTarget()) - return; - - var newValue = Mathf.Lerp(m_StartValue, m_TargetValue, floatPercentage); - m_Target.Invoke(newValue); - } - - public void AddOnChangedCallback(UnityAction callback) - { - if (m_Target == null) - m_Target = new FloatTweenCallback(); - - m_Target.AddListener(callback); - } - - public bool GetIgnoreTimescale() - { - return m_IgnoreTimeScale; - } - - public float GetDuration() - { - return m_Duration; - } - - public bool ValidTarget() - { - return m_Target != null; - } - } - - // Tween runner, executes the given tween. - // The coroutine will live within the given - // behaviour container. - internal class TweenRunner where T : struct, ITweenValue - { - protected MonoBehaviour m_CoroutineContainer; - protected IEnumerator m_Tween; - - // utility function for starting the tween - private static IEnumerator Start(T tweenInfo) - { - if (!tweenInfo.ValidTarget()) - yield break; - - var elapsedTime = 0.0f; - while (elapsedTime < tweenInfo.duration) - { - elapsedTime += tweenInfo.ignoreTimeScale ? Time.unscaledDeltaTime : Time.deltaTime; - var percentage = Mathf.Clamp01(elapsedTime / tweenInfo.duration); - tweenInfo.TweenValue(percentage); - yield return null; - } - tweenInfo.TweenValue(1.0f); - } - - public void Init(MonoBehaviour coroutineContainer) - { - m_CoroutineContainer = coroutineContainer; - } - - public void StartTween(T info) - { - if (m_CoroutineContainer == null) - { - Debug.LogWarning("Coroutine container not configured... did you forget to call Init?"); - return; - } - - StopTween(); - - if (!m_CoroutineContainer.gameObject.activeInHierarchy) - { - info.TweenValue(1.0f); - return; - } - - m_Tween = Start(info); - m_CoroutineContainer.StartCoroutine(m_Tween); - } - - public void StopTween() - { - if (m_Tween != null) - { - m_CoroutineContainer.StopCoroutine(m_Tween); - m_Tween = null; - } - } - } -} \ No newline at end of file diff --git a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_DefaultControls.cs b/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_DefaultControls.cs deleted file mode 100644 index 45eac33..0000000 --- a/UnityProjects/UnioForUniy/Library/PackageCache/com.unity.textmeshpro@2.1.1/Scripts/Runtime/TMP_DefaultControls.cs +++ /dev/null @@ -1,401 +0,0 @@ -using UnityEngine; -using System.Collections; -using UnityEngine.UI; - -#if UNITY_EDITOR -using UnityEditor; -#endif - - -namespace TMPro -{ - - public static class TMP_DefaultControls - { - public struct Resources - { - public Sprite standard; - public Sprite background; - public Sprite inputField; - public Sprite knob; - public Sprite checkmark; - public Sprite dropdown; - public Sprite mask; - } - - private const float kWidth = 160f; - private const float kThickHeight = 30f; - private const float kThinHeight = 20f; - private static Vector2 s_TextElementSize = new Vector2(100f, 100f); - private static Vector2 s_ThickElementSize = new Vector2(kWidth, kThickHeight); - private static Vector2 s_ThinElementSize = new Vector2(kWidth, kThinHeight); - //private static Vector2 s_ImageElementSize = new Vector2(100f, 100f); - private static Color s_DefaultSelectableColor = new Color(1f, 1f, 1f, 1f); - //private static Color s_PanelColor = new Color(1f, 1f, 1f, 0.392f); - private static Color s_TextColor = new Color(50f / 255f, 50f / 255f, 50f / 255f, 1f); - - - private static GameObject CreateUIElementRoot(string name, Vector2 size) - { - GameObject child = new GameObject(name); - RectTransform rectTransform = child.AddComponent(); - rectTransform.sizeDelta = size; - return child; - } - - static GameObject CreateUIObject(string name, GameObject parent) - { - GameObject go = new GameObject(name); - go.AddComponent(); - SetParentAndAlign(go, parent); - return go; - } - - private static void SetDefaultTextValues(TMP_Text lbl) - { - // Set text values we want across UI elements in default controls. - // Don't set values which are the same as the default values for the Text component, - // since there's no point in that, and it's good to keep them as consistent as possible. - lbl.color = s_TextColor; - lbl.fontSize = 14; - } - - private static void SetDefaultColorTransitionValues(Selectable slider) - { - ColorBlock colors = slider.colors; - colors.highlightedColor = new Color(0.882f, 0.882f, 0.882f); - colors.pressedColor = new Color(0.698f, 0.698f, 0.698f); - colors.disabledColor = new Color(0.521f, 0.521f, 0.521f); - } - - private static void SetParentAndAlign(GameObject child, GameObject parent) - { - if (parent == null) - return; - - child.transform.SetParent(parent.transform, false); - SetLayerRecursively(child, parent.layer); - } - - private static void SetLayerRecursively(GameObject go, int layer) - { - go.layer = layer; - Transform t = go.transform; - for (int i = 0; i < t.childCount; i++) - SetLayerRecursively(t.GetChild(i).gameObject, layer); - } - - // Actual controls - - public static GameObject CreateScrollbar(Resources resources) - { - // Create GOs Hierarchy - GameObject scrollbarRoot = CreateUIElementRoot("Scrollbar", s_ThinElementSize); - - GameObject sliderArea = CreateUIObject("Sliding Area", scrollbarRoot); - GameObject handle = CreateUIObject("Handle", sliderArea); - - Image bgImage = scrollbarRoot.AddComponent(); - bgImage.sprite = resources.background; - bgImage.type = Image.Type.Sliced; - bgImage.color = s_DefaultSelectableColor; - - Image handleImage = handle.AddComponent(); - handleImage.sprite = resources.standard; - handleImage.type = Image.Type.Sliced; - handleImage.color = s_DefaultSelectableColor; - - RectTransform sliderAreaRect = sliderArea.GetComponent(); - sliderAreaRect.sizeDelta = new Vector2(-20, -20); - sliderAreaRect.anchorMin = Vector2.zero; - sliderAreaRect.anchorMax = Vector2.one; - - RectTransform handleRect = handle.GetComponent(); - handleRect.sizeDelta = new Vector2(20, 20); - - Scrollbar scrollbar = scrollbarRoot.AddComponent(); - scrollbar.handleRect = handleRect; - scrollbar.targetGraphic = handleImage; - SetDefaultColorTransitionValues(scrollbar); - - return scrollbarRoot; - } - - public static GameObject CreateButton(Resources resources) - { - GameObject buttonRoot = CreateUIElementRoot("Button", s_ThickElementSize); - - GameObject childText = new GameObject("Text (TMP)"); - childText.AddComponent(); - SetParentAndAlign(childText, buttonRoot); - - Image image = buttonRoot.AddComponent(); - image.sprite = resources.standard; - image.type = Image.Type.Sliced; - image.color = s_DefaultSelectableColor; - - Button bt = buttonRoot.AddComponent