From cc2e0062006d4c80545ddf91bd79f265cee20bcf Mon Sep 17 00:00:00 2001 From: Stephen Hodgson Date: Mon, 6 Nov 2017 16:59:05 -0800 Subject: [PATCH 1/9] Added Windows API Checker and test scene. Moved InteractionSourceExtentions back into Utilities/Extensions Updated Build Window to only support 16299 SDK build target --- .../Utilities/Scenes/CheckAPI.unity | 838 ++++++++++++++++++ .../Utilities/Scenes/CheckAPI.unity.meta} | 5 +- .../Utilities/Scripts/CheckApiTest.cs | 17 + .../Utilities/Scripts/CheckApiTest.cs.meta | 13 + .../BuildAndDeploy/Editor/BuildDeployTools.cs | 2 +- .../Editor/BuildDeployWindow.cs | 36 +- .../Extensions/InteractionSourceExtensions.cs | 35 +- .../InteractionSourceExtensions.cs.meta | 0 .../Utilities/Scripts/WindowsApiChecker.cs | 34 + .../Scripts/WindowsApiChecker.cs.meta | 13 + ProjectSettings/ProjectSettings.asset | 2 +- 11 files changed, 952 insertions(+), 43 deletions(-) create mode 100644 Assets/HoloToolkit-Examples/Utilities/Scenes/CheckAPI.unity rename Assets/{HoloToolkit/Input/Scripts/Utilities/Extensions.meta => HoloToolkit-Examples/Utilities/Scenes/CheckAPI.unity.meta} (62%) create mode 100644 Assets/HoloToolkit-Examples/Utilities/Scripts/CheckApiTest.cs create mode 100644 Assets/HoloToolkit-Examples/Utilities/Scripts/CheckApiTest.cs.meta rename Assets/HoloToolkit/{Input/Scripts/Utilities => Utilities/Scripts}/Extensions/InteractionSourceExtensions.cs (79%) rename Assets/HoloToolkit/{Input/Scripts/Utilities => Utilities/Scripts}/Extensions/InteractionSourceExtensions.cs.meta (100%) create mode 100644 Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs create mode 100644 Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs.meta diff --git a/Assets/HoloToolkit-Examples/Utilities/Scenes/CheckAPI.unity b/Assets/HoloToolkit-Examples/Utilities/Scenes/CheckAPI.unity new file mode 100644 index 00000000000..1b9cb77511e --- /dev/null +++ b/Assets/HoloToolkit-Examples/Utilities/Scenes/CheckAPI.unity @@ -0,0 +1,838 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 8 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 9 + m_Resolution: 2 + m_BakeResolution: 40 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1001 &144461927 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 4000011792100794, guid: a611e772ef8ddf64d8106a9cbb70f31c, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000011792100794, guid: a611e772ef8ddf64d8106a9cbb70f31c, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000011792100794, guid: a611e772ef8ddf64d8106a9cbb70f31c, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000011792100794, guid: a611e772ef8ddf64d8106a9cbb70f31c, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000011792100794, guid: a611e772ef8ddf64d8106a9cbb70f31c, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000011792100794, guid: a611e772ef8ddf64d8106a9cbb70f31c, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000011792100794, guid: a611e772ef8ddf64d8106a9cbb70f31c, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000011792100794, guid: a611e772ef8ddf64d8106a9cbb70f31c, type: 2} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: a611e772ef8ddf64d8106a9cbb70f31c, type: 2} + m_IsPrefabParent: 0 +--- !u!114 &144461928 stripped +MonoBehaviour: + m_PrefabParentObject: {fileID: 114611684728110934, guid: a611e772ef8ddf64d8106a9cbb70f31c, + type: 2} + m_PrefabInternal: {fileID: 144461927} + m_Script: {fileID: 11500000, guid: 0decd33ba8702954885a62b5bc1a778e, type: 3} +--- !u!1 &408338112 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 408338113} + - component: {fileID: 408338116} + - component: {fileID: 408338115} + - component: {fileID: 408338114} + m_Layer: 5 + m_Name: Button_v4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &408338113 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 408338112} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 30, y: -15, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 670616293} + m_Father: {fileID: 1598773018} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &408338114 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 408338112} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 408338115} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1598773019} + m_MethodName: CheckV4Api + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &408338115 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 408338112} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &408338116 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 408338112} +--- !u!1 &599663883 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 599663885} + - component: {fileID: 599663884} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &599663884 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 599663883} + m_Enabled: 1 + serializedVersion: 8 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &599663885 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 599663883} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &670616292 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 670616293} + - component: {fileID: 670616295} + - component: {fileID: 670616294} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &670616293 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 670616292} + 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: 408338113} + 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 &670616294 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 670616292} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 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: Check API v4.0 +--- !u!222 &670616295 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 670616292} +--- !u!1001 &1164864049 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000011656901714, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 2} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 114742747811649402, guid: 3eddd1c29199313478dd3f912bfab2ab, + type: 2} + propertyPath: Cursor + value: + objectReference: {fileID: 144461928} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1363740228 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1363740229} + - component: {fileID: 1363740231} + - component: {fileID: 1363740230} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1363740229 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1363740228} + 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: 1421807752} + 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 &1363740230 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1363740228} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 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: Check API v5.0 +--- !u!222 &1363740231 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1363740228} +--- !u!1 &1421807751 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1421807752} + - component: {fileID: 1421807755} + - component: {fileID: 1421807754} + - component: {fileID: 1421807753} + m_Layer: 5 + m_Name: Button_v5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1421807752 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1421807751} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 30, y: 35, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1363740229} + m_Father: {fileID: 1598773018} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1421807753 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1421807751} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1421807754} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1598773019} + m_MethodName: CheckV5Api + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1421807754 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1421807751} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1421807755 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1421807751} +--- !u!1001 &1595106395 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 2} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 2} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 2} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4541142303025740, guid: d29bc40b7f3df26479d6a0aac211c355, type: 2} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: d29bc40b7f3df26479d6a0aac211c355, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1598773013 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1598773018} + - component: {fileID: 1598773017} + - component: {fileID: 1598773016} + - component: {fileID: 1598773015} + - component: {fileID: 1598773014} + - component: {fileID: 1598773019} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1598773014 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1598773013} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1297475563, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 +--- !u!114 &1598773015 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1598773013} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1598773016 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1598773013} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &1598773017 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1598773013} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1598773018 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1598773013} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 1.5} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_Children: + - {fileID: 1421807752} + - {fileID: 408338113} + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1598773019 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1598773013} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0baf15e4be1764c438270bd2992e3211, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/HoloToolkit/Input/Scripts/Utilities/Extensions.meta b/Assets/HoloToolkit-Examples/Utilities/Scenes/CheckAPI.unity.meta similarity index 62% rename from Assets/HoloToolkit/Input/Scripts/Utilities/Extensions.meta rename to Assets/HoloToolkit-Examples/Utilities/Scenes/CheckAPI.unity.meta index cd6c90e5995..5ed6185c4a9 100644 --- a/Assets/HoloToolkit/Input/Scripts/Utilities/Extensions.meta +++ b/Assets/HoloToolkit-Examples/Utilities/Scenes/CheckAPI.unity.meta @@ -1,7 +1,6 @@ fileFormatVersion: 2 -guid: ba56dd6189f140746bffc86b7e220cf5 -folderAsset: yes -timeCreated: 1507326884 +guid: a166dc337bbdfa54f92dcb3798671fd1 +timeCreated: 1510010260 licenseType: Pro DefaultImporter: externalObjects: {} diff --git a/Assets/HoloToolkit-Examples/Utilities/Scripts/CheckApiTest.cs b/Assets/HoloToolkit-Examples/Utilities/Scripts/CheckApiTest.cs new file mode 100644 index 00000000000..242c3e7c87e --- /dev/null +++ b/Assets/HoloToolkit-Examples/Utilities/Scripts/CheckApiTest.cs @@ -0,0 +1,17 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See LICENSE in the project root for license information. + +using UnityEngine; + +public class CheckApiTest : MonoBehaviour +{ + public void CheckV4Api() + { + Debug.Log("Version 4 available? " + HoloToolkit.WindowsApiChecker.UniversalApiContractV4_IsAvailable); + } + + public void CheckV5Api() + { + Debug.Log("Version 5 available? " + HoloToolkit.WindowsApiChecker.UniversalApiContractV5_IsAvailable); + } +} diff --git a/Assets/HoloToolkit-Examples/Utilities/Scripts/CheckApiTest.cs.meta b/Assets/HoloToolkit-Examples/Utilities/Scripts/CheckApiTest.cs.meta new file mode 100644 index 00000000000..9efd39073ff --- /dev/null +++ b/Assets/HoloToolkit-Examples/Utilities/Scripts/CheckApiTest.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 0baf15e4be1764c438270bd2992e3211 +timeCreated: 1510010409 +licenseType: Pro +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/HoloToolkit/BuildAndDeploy/Editor/BuildDeployTools.cs b/Assets/HoloToolkit/BuildAndDeploy/Editor/BuildDeployTools.cs index ecf7ceab381..077ae1e5c15 100644 --- a/Assets/HoloToolkit/BuildAndDeploy/Editor/BuildDeployTools.cs +++ b/Assets/HoloToolkit/BuildAndDeploy/Editor/BuildDeployTools.cs @@ -18,7 +18,7 @@ namespace HoloToolkit.Unity /// public class BuildDeployTools { - public static readonly string DefaultMSBuildVersion = "14.0"; + public static readonly string DefaultMSBuildVersion = "15.0"; public static bool CanBuild() { diff --git a/Assets/HoloToolkit/BuildAndDeploy/Editor/BuildDeployWindow.cs b/Assets/HoloToolkit/BuildAndDeploy/Editor/BuildDeployWindow.cs index 384bd8145fc..b28dba0c6d2 100644 --- a/Assets/HoloToolkit/BuildAndDeploy/Editor/BuildDeployWindow.cs +++ b/Assets/HoloToolkit/BuildAndDeploy/Editor/BuildDeployWindow.cs @@ -28,7 +28,6 @@ public class BuildDeployWindow : EditorWindow private enum BuildPlatformEnum { - AnyCPU = 0, x86 = 1, x64 = 2 } @@ -299,11 +298,9 @@ private void OnGUI() GUILayout.BeginHorizontal(); // SDK and MS Build Version(and save setting, if it's changed) - string curMSBuildVer = BuildDeployPrefs.MsBuildVersion; string currentSDKVersion = EditorUserBuildSettings.wsaUWPSDK; int currentSDKVersionIndex = 0; - int defaultMSBuildVersionIndex = -1; for (var i = 0; i < windowsSdkPaths.Length; i++) { @@ -313,19 +310,19 @@ private void OnGUI() } else { - if (windowsSdkPaths[i].Equals(currentSDKVersion)) + if (windowsSdkPaths[i].Equals("10.0.16299.0")) { currentSDKVersionIndex = i; } - - if (windowsSdkPaths[i].Equals("10.0.14393.0")) - { - defaultMSBuildVersionIndex = i; - } } } - currentSDKVersionIndex = EditorGUILayout.Popup(GUIHorizontalSpacer + "SDK Version", currentSDKVersionIndex, windowsSdkPaths); + if (currentSDKVersionIndex == 0) + { + Debug.LogError("Unable to find the required Windows 10 SDK Target!\nPlease be sure to install the 10.0.16299.0 SDK from Visual Studio Installer."); + } + + EditorGUILayout.LabelField(GUIHorizontalSpacer + "Required SDK Version: 10.0.16299.0"); var curScriptingBackend = PlayerSettings.GetScriptingBackend(BuildTargetGroup.WSA); var newScriptingBackend = (ScriptingImplementation)EditorGUILayout.IntPopup( @@ -346,14 +343,6 @@ private void OnGUI() EditorUserBuildSettings.wsaUWPSDK = newSDKVersion; } - string newMSBuildVer = currentSDKVersionIndex <= defaultMSBuildVersionIndex ? BuildDeployTools.DefaultMSBuildVersion : "15.0"; - - if (!newMSBuildVer.Equals(curMSBuildVer)) - { - BuildDeployPrefs.MsBuildVersion = newMSBuildVer; - curMSBuildVer = newMSBuildVer; - } - GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); @@ -386,7 +375,7 @@ private void OnGUI() // Build Platform (and save setting, if it's changed) string curBuildPlatformString = BuildDeployPrefs.BuildPlatform; - BuildPlatformEnum buildPlatformOption; + BuildPlatformEnum buildPlatformOption = BuildPlatformEnum.x86; if (curBuildPlatformString.ToLower().Equals("x86")) { @@ -396,10 +385,6 @@ private void OnGUI() { buildPlatformOption = BuildPlatformEnum.x64; } - else - { - buildPlatformOption = BuildPlatformEnum.AnyCPU; - } buildPlatformOption = (BuildPlatformEnum)EditorGUILayout.EnumPopup(GUIHorizontalSpacer + "Build Platform", buildPlatformOption); @@ -407,9 +392,6 @@ private void OnGUI() switch (buildPlatformOption) { - case BuildPlatformEnum.AnyCPU: - newBuildPlatformString = "Any CPU"; - break; case BuildPlatformEnum.x86: case BuildPlatformEnum.x64: newBuildPlatformString = buildPlatformOption.ToString(); @@ -472,7 +454,7 @@ private void OnGUI() EditorApplication.delayCall += () => BuildDeployTools.BuildAppxFromSLN( PlayerSettings.productName, - curMSBuildVer, + BuildDeployTools.DefaultMSBuildVersion, curForceRebuildAppx, curBuildConfigString, curBuildPlatformString, diff --git a/Assets/HoloToolkit/Input/Scripts/Utilities/Extensions/InteractionSourceExtensions.cs b/Assets/HoloToolkit/Utilities/Scripts/Extensions/InteractionSourceExtensions.cs similarity index 79% rename from Assets/HoloToolkit/Input/Scripts/Utilities/Extensions/InteractionSourceExtensions.cs rename to Assets/HoloToolkit/Utilities/Scripts/Extensions/InteractionSourceExtensions.cs index 4a1302d2776..f4232ae27d2 100644 --- a/Assets/HoloToolkit/Input/Scripts/Utilities/Extensions/InteractionSourceExtensions.cs +++ b/Assets/HoloToolkit/Utilities/Scripts/Extensions/InteractionSourceExtensions.cs @@ -36,7 +36,12 @@ public static void StartHaptics(this InteractionSource interactionSource, float public static void StartHaptics(this InteractionSource interactionSource, float intensity, float durationInSeconds) { -#if !UNITY_EDITOR && UNITY_2017_2_OR_NEWER + if (!WindowsApiChecker.UniversalApiContractV4_IsAvailable) + { + return; + } + +#if !UNITY_EDITOR && UNITY_2017_1_OR_NEWER UnityEngine.WSA.Application.InvokeOnUIThread(() => { IReadOnlyList sources = SpatialInteractionManager.GetForCurrentView().GetDetectedSourcesAtTimestamp(PerceptionTimestampHelper.FromHistoricalTargetTime(DateTimeOffset.Now)); @@ -69,7 +74,12 @@ public static void StartHaptics(this InteractionSource interactionSource, float public static void StopHaptics(this InteractionSource interactionSource) { -#if !UNITY_EDITOR && UNITY_2017_2_OR_NEWER + if (!WindowsApiChecker.UniversalApiContractV4_IsAvailable) + { + return; + } + +#if !UNITY_EDITOR && UNITY_2017_1_OR_NEWER UnityEngine.WSA.Application.InvokeOnUIThread(() => { IReadOnlyList sources = SpatialInteractionManager.GetForCurrentView().GetDetectedSourcesAtTimestamp(PerceptionTimestampHelper.FromHistoricalTargetTime(DateTimeOffset.Now)); @@ -89,19 +99,22 @@ public static void StopHaptics(this InteractionSource interactionSource) public static IAsyncOperation TryGetRenderableModelAsync(this InteractionSource interactionSource) { IAsyncOperation returnValue = null; - - UnityEngine.WSA.Application.InvokeOnUIThread(() => + + if (WindowsApiChecker.UniversalApiContractV5_IsAvailable) { - IReadOnlyList sources = SpatialInteractionManager.GetForCurrentView().GetDetectedSourcesAtTimestamp(PerceptionTimestampHelper.FromHistoricalTargetTime(DateTimeOffset.Now)); - - foreach (SpatialInteractionSourceState sourceState in sources) + UnityEngine.WSA.Application.InvokeOnUIThread(() => { - if (sourceState.Source.Id.Equals(interactionSource.id)) + IReadOnlyList sources = SpatialInteractionManager.GetForCurrentView().GetDetectedSourcesAtTimestamp(PerceptionTimestampHelper.FromHistoricalTargetTime(DateTimeOffset.Now)); + + foreach (SpatialInteractionSourceState sourceState in sources) { - returnValue = sourceState.Source.Controller.TryGetRenderableModelAsync(); + if (sourceState.Source.Id.Equals(interactionSource.id)) + { + returnValue = sourceState.Source.Controller.TryGetRenderableModelAsync(); + } } - } - }, true); + }, true); + } return returnValue; } diff --git a/Assets/HoloToolkit/Input/Scripts/Utilities/Extensions/InteractionSourceExtensions.cs.meta b/Assets/HoloToolkit/Utilities/Scripts/Extensions/InteractionSourceExtensions.cs.meta similarity index 100% rename from Assets/HoloToolkit/Input/Scripts/Utilities/Extensions/InteractionSourceExtensions.cs.meta rename to Assets/HoloToolkit/Utilities/Scripts/Extensions/InteractionSourceExtensions.cs.meta diff --git a/Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs b/Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs new file mode 100644 index 00000000000..92328a3a49b --- /dev/null +++ b/Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs @@ -0,0 +1,34 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See LICENSE in the project root for license information. + +namespace HoloToolkit +{ + /// + /// Helper class for determining if a Windows API contract is available. + /// See https://docs.microsoft.com/en-us/uwp/extension-sdks/windows-universal-sdk + /// for a full list of contracts. + /// + public static class WindowsApiChecker + { + static WindowsApiChecker() + { +#if !UNITY_EDITOR && UNITY_WSA + UniversalApiContractV5_IsAvailable = Windows.Foundation.Metadata.ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 5, 0); + UniversalApiContractV4_IsAvailable = Windows.Foundation.Metadata.ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 4, 0); +#else + UniversalApiContractV5_IsAvailable = false; + UniversalApiContractV4_IsAvailable = false; +#endif + } + + /// + /// Is the Universal API Contract v5.0 Available? + /// + public static bool UniversalApiContractV5_IsAvailable { get; } + + /// + /// Is the Universal API Contract v4.0 Available? + /// + public static bool UniversalApiContractV4_IsAvailable { get; } + } +} diff --git a/Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs.meta b/Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs.meta new file mode 100644 index 00000000000..dc5c0e6046a --- /dev/null +++ b/Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 48fda555349df604ca5c26f97cfc20bd +timeCreated: 1510006713 +licenseType: Pro +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index cf0767acbb9..4667dded49d 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -260,7 +260,7 @@ PlayerSettings: - m_BuildTarget: Metro m_Enabled: 1 m_Devices: - - HoloLens + - WindowsMR - m_BuildTarget: N3DS m_Enabled: 0 m_Devices: [] From e8904d1c5aaf06addd2a37c2172ef8a93965b8d5 Mon Sep 17 00:00:00 2001 From: Stephen Hodgson Date: Mon, 6 Nov 2017 17:34:16 -0800 Subject: [PATCH 2/9] better backwards compatibility with Unity editor versions --- .../Scripts/Extensions/InteractionSourceExtensions.cs | 4 ++-- Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Assets/HoloToolkit/Utilities/Scripts/Extensions/InteractionSourceExtensions.cs b/Assets/HoloToolkit/Utilities/Scripts/Extensions/InteractionSourceExtensions.cs index f4232ae27d2..41a3746d882 100644 --- a/Assets/HoloToolkit/Utilities/Scripts/Extensions/InteractionSourceExtensions.cs +++ b/Assets/HoloToolkit/Utilities/Scripts/Extensions/InteractionSourceExtensions.cs @@ -41,7 +41,7 @@ public static void StartHaptics(this InteractionSource interactionSource, float return; } -#if !UNITY_EDITOR && UNITY_2017_1_OR_NEWER +#if !UNITY_EDITOR && UNITY_2017_2_OR_NEWER UnityEngine.WSA.Application.InvokeOnUIThread(() => { IReadOnlyList sources = SpatialInteractionManager.GetForCurrentView().GetDetectedSourcesAtTimestamp(PerceptionTimestampHelper.FromHistoricalTargetTime(DateTimeOffset.Now)); @@ -79,7 +79,7 @@ public static void StopHaptics(this InteractionSource interactionSource) return; } -#if !UNITY_EDITOR && UNITY_2017_1_OR_NEWER +#if !UNITY_EDITOR && UNITY_2017_2_OR_NEWER UnityEngine.WSA.Application.InvokeOnUIThread(() => { IReadOnlyList sources = SpatialInteractionManager.GetForCurrentView().GetDetectedSourcesAtTimestamp(PerceptionTimestampHelper.FromHistoricalTargetTime(DateTimeOffset.Now)); diff --git a/Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs b/Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs index 92328a3a49b..02a175f89d6 100644 --- a/Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs +++ b/Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs @@ -24,11 +24,11 @@ static WindowsApiChecker() /// /// Is the Universal API Contract v5.0 Available? /// - public static bool UniversalApiContractV5_IsAvailable { get; } + public static bool UniversalApiContractV5_IsAvailable { get; private set; } /// /// Is the Universal API Contract v4.0 Available? /// - public static bool UniversalApiContractV4_IsAvailable { get; } + public static bool UniversalApiContractV4_IsAvailable { get; private set; } } } From af6f904cad14f7f7ab8f396dbb30caef8922a971 Mon Sep 17 00:00:00 2001 From: Stephen Hodgson Date: Mon, 6 Nov 2017 18:08:08 -0800 Subject: [PATCH 3/9] Added v3 checker to make sure everything is good on Hololens --- .../Utilities/Scenes/CheckAPI.unity | 384 +++++++++++++++++- .../Utilities/Scripts/CheckApiTest.cs | 18 +- .../Utilities/Scripts/WindowsApiChecker.cs | 8 +- 3 files changed, 384 insertions(+), 26 deletions(-) diff --git a/Assets/HoloToolkit-Examples/Utilities/Scenes/CheckAPI.unity b/Assets/HoloToolkit-Examples/Utilities/Scenes/CheckAPI.unity index 1b9cb77511e..207ca518834 100644 --- a/Assets/HoloToolkit-Examples/Utilities/Scenes/CheckAPI.unity +++ b/Assets/HoloToolkit-Examples/Utilities/Scenes/CheckAPI.unity @@ -109,8 +109,6 @@ NavMeshSettings: manualTileSize: 0 tileSize: 256 accuratePlacement: 0 - debug: - m_Flags: 0 m_NavMeshData: {fileID: 0} --- !u!1001 &144461927 Prefab: @@ -185,17 +183,17 @@ RectTransform: m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 408338112} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 30, y: -15, z: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 670616293} m_Father: {fileID: 1598773018} - m_RootOrder: 1 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 160, y: 30} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &408338114 MonoBehaviour: @@ -405,13 +403,13 @@ MonoBehaviour: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 m_FontStyle: 0 - m_BestFit: 0 + m_BestFit: 1 m_MinSize: 10 m_MaxSize: 40 m_Alignment: 4 m_AlignByGeometry: 0 m_RichText: 1 - m_HorizontalOverflow: 0 + m_HorizontalOverflow: 1 m_VerticalOverflow: 0 m_LineSpacing: 1 m_Text: Check API v4.0 @@ -421,6 +419,128 @@ CanvasRenderer: m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 670616292} +--- !u!1 &1145310438 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1145310439} + - component: {fileID: 1145310442} + - component: {fileID: 1145310441} + - component: {fileID: 1145310440} + m_Layer: 5 + m_Name: Button_v3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1145310439 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1145310438} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.99999994, y: 0.99999994, z: 0.99999994} + m_Children: + - {fileID: 1293255520} + m_Father: {fileID: 1598773018} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1145310440 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1145310438} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1145310441} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1598773019} + m_MethodName: CheckV3Api + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1145310441 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1145310438} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1145310442 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1145310438} --- !u!1001 &1164864049 Prefab: m_ObjectHideFlags: 0 @@ -468,6 +588,80 @@ Prefab: m_RemovedComponents: [] m_ParentPrefab: {fileID: 100100000, guid: 3eddd1c29199313478dd3f912bfab2ab, type: 2} m_IsPrefabParent: 0 +--- !u!1 &1293255519 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1293255520} + - component: {fileID: 1293255522} + - component: {fileID: 1293255521} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1293255520 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1293255519} + 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: 1145310439} + 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 &1293255521 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1293255519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Check API v3.0 +--- !u!222 &1293255522 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1293255519} --- !u!1 &1363740228 GameObject: m_ObjectHideFlags: 0 @@ -526,13 +720,13 @@ MonoBehaviour: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 14 m_FontStyle: 0 - m_BestFit: 0 + m_BestFit: 1 m_MinSize: 10 m_MaxSize: 40 m_Alignment: 4 m_AlignByGeometry: 0 m_RichText: 1 - m_HorizontalOverflow: 0 + m_HorizontalOverflow: 1 m_VerticalOverflow: 0 m_LineSpacing: 1 m_Text: Check API v5.0 @@ -567,17 +761,17 @@ RectTransform: m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1421807751} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 30, y: 35, z: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 1363740229} m_Father: {fileID: 1598773018} - m_RootOrder: 0 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 160, y: 30} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1421807753 MonoBehaviour: @@ -664,6 +858,151 @@ CanvasRenderer: m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1421807751} +--- !u!1 &1537728716 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1537728717} + - component: {fileID: 1537728719} + - component: {fileID: 1537728718} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1537728717 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1537728716} + 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: 1551274058} + 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 &1537728718 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1537728716} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 2 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Universal Api Contract + + Version Checker' +--- !u!222 &1537728719 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1537728716} +--- !u!1 &1551274057 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1551274058} + - component: {fileID: 1551274061} + - component: {fileID: 1551274060} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1551274058 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1551274057} + 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: 1537728717} + m_Father: {fileID: 1598773018} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1551274060 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1551274057} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &1551274061 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1551274057} --- !u!1001 &1595106395 Prefab: m_ObjectHideFlags: 0 @@ -746,8 +1085,8 @@ MonoBehaviour: m_Spacing: 0 m_ChildForceExpandWidth: 1 m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 0 - m_ChildControlHeight: 0 + m_ChildControlWidth: 1 + m_ChildControlHeight: 1 --- !u!114 &1598773015 MonoBehaviour: m_ObjectHideFlags: 0 @@ -776,7 +1115,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 + m_ReferencePixelsPerUnit: 50 m_ScaleFactor: 1 m_ReferenceResolution: {x: 800, y: 600} m_ScreenMatchMode: 0 @@ -784,7 +1123,7 @@ MonoBehaviour: m_PhysicalUnit: 3 m_FallbackScreenDPI: 96 m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 + m_DynamicPixelsPerUnit: 5 --- !u!223 &1598773017 Canvas: m_ObjectHideFlags: 0 @@ -815,15 +1154,17 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 1.5} m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} m_Children: + - {fileID: 1551274058} - {fileID: 1421807752} - {fileID: 408338113} + - {fileID: 1145310439} m_Father: {fileID: 0} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 100, y: 100} + m_SizeDelta: {x: 512, y: 256} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1598773019 MonoBehaviour: @@ -836,3 +1177,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 0baf15e4be1764c438270bd2992e3211, type: 3} m_Name: m_EditorClassIdentifier: + text: {fileID: 1537728718} diff --git a/Assets/HoloToolkit-Examples/Utilities/Scripts/CheckApiTest.cs b/Assets/HoloToolkit-Examples/Utilities/Scripts/CheckApiTest.cs index 242c3e7c87e..2c5e588ba9a 100644 --- a/Assets/HoloToolkit-Examples/Utilities/Scripts/CheckApiTest.cs +++ b/Assets/HoloToolkit-Examples/Utilities/Scripts/CheckApiTest.cs @@ -2,16 +2,28 @@ // Licensed under the MIT License. See LICENSE in the project root for license information. using UnityEngine; +using UnityEngine.UI; public class CheckApiTest : MonoBehaviour { + [SerializeField] + private Text text; + + public void CheckV5Api() + { + text.text = "UniversalApiContract\nVersion 5 available? " + HoloToolkit.WindowsApiChecker.UniversalApiContractV5_IsAvailable; + Debug.Log(text.text); + } + public void CheckV4Api() { - Debug.Log("Version 4 available? " + HoloToolkit.WindowsApiChecker.UniversalApiContractV4_IsAvailable); + text.text = "UniversalApiContract\nVersion 4 available? " + HoloToolkit.WindowsApiChecker.UniversalApiContractV4_IsAvailable; + Debug.Log(text.text); } - public void CheckV5Api() + public void CheckV3Api() { - Debug.Log("Version 5 available? " + HoloToolkit.WindowsApiChecker.UniversalApiContractV5_IsAvailable); + text.text = "UniversalApiContract\nVersion 3 available? " + HoloToolkit.WindowsApiChecker.UniversalApiContractV3_IsAvailable; + Debug.Log(text.text); } } diff --git a/Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs b/Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs index 02a175f89d6..50c3fa8613e 100644 --- a/Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs +++ b/Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs @@ -13,11 +13,13 @@ public static class WindowsApiChecker static WindowsApiChecker() { #if !UNITY_EDITOR && UNITY_WSA - UniversalApiContractV5_IsAvailable = Windows.Foundation.Metadata.ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 5, 0); - UniversalApiContractV4_IsAvailable = Windows.Foundation.Metadata.ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 4, 0); + UniversalApiContractV5_IsAvailable = Windows.Foundation.Metadata.ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 5); + UniversalApiContractV4_IsAvailable = Windows.Foundation.Metadata.ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 4); + UniversalApiContractV3_IsAvailable = Windows.Foundation.Metadata.ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 3); #else UniversalApiContractV5_IsAvailable = false; UniversalApiContractV4_IsAvailable = false; + UniversalApiContractV3_IsAvailable = false; #endif } @@ -30,5 +32,7 @@ static WindowsApiChecker() /// Is the Universal API Contract v4.0 Available? /// public static bool UniversalApiContractV4_IsAvailable { get; private set; } + + public static bool UniversalApiContractV3_IsAvailable { get; private set; } } } From 603f55e2e34837754bbaf70c39d20a6f3e57d36b Mon Sep 17 00:00:00 2001 From: Stephen Hodgson Date: Tue, 7 Nov 2017 08:29:27 -0800 Subject: [PATCH 4/9] Added Comments to UniversalApiContract v3 --- Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs b/Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs index 50c3fa8613e..1c4e6013f2f 100644 --- a/Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs +++ b/Assets/HoloToolkit/Utilities/Scripts/WindowsApiChecker.cs @@ -33,6 +33,9 @@ static WindowsApiChecker() /// public static bool UniversalApiContractV4_IsAvailable { get; private set; } + /// + /// Is the Universal API Contract v3.0 Available? + /// public static bool UniversalApiContractV3_IsAvailable { get; private set; } } } From 16415c046279bce442613bb52213ffce0cb2929a Mon Sep 17 00:00:00 2001 From: Stephen Hodgson Date: Wed, 8 Nov 2017 18:47:41 -0800 Subject: [PATCH 5/9] removed whitespace --- .../Utilities/Scripts/Extensions/InteractionSourceExtensions.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/HoloToolkit/Utilities/Scripts/Extensions/InteractionSourceExtensions.cs b/Assets/HoloToolkit/Utilities/Scripts/Extensions/InteractionSourceExtensions.cs index 41a3746d882..3f068dfd247 100644 --- a/Assets/HoloToolkit/Utilities/Scripts/Extensions/InteractionSourceExtensions.cs +++ b/Assets/HoloToolkit/Utilities/Scripts/Extensions/InteractionSourceExtensions.cs @@ -99,7 +99,7 @@ public static void StopHaptics(this InteractionSource interactionSource) public static IAsyncOperation TryGetRenderableModelAsync(this InteractionSource interactionSource) { IAsyncOperation returnValue = null; - + if (WindowsApiChecker.UniversalApiContractV5_IsAvailable) { UnityEngine.WSA.Application.InvokeOnUIThread(() => From d88a422a1f8b0b193232107ad685566a7adf98f6 Mon Sep 17 00:00:00 2001 From: Stephen Hodgson Date: Thu, 9 Nov 2017 09:06:24 -0800 Subject: [PATCH 6/9] Updated Readme for unified editor in latest master --- README.md | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/README.md b/README.md index 8c5a1ebf593..285b143ddc2 100644 --- a/README.md +++ b/README.md @@ -23,17 +23,10 @@ _Note: The latest release should work for both HoloLens and Windows Mixed Realit [unity-version-badge]: https://img.shields.io/badge/Current%20Unity%20Editor%20Version-2017.2.0p1%20MRTP4-green.svg [![Github Release][unity-version-badge]][unity-download] -[unity-release]: https://unity3d.com/unity/whats-new/unity-2017.1.2 -[hololens-rel-badge]: https://img.shields.io/badge/Unity%20Editor%20HoloLens%20Version-2017.1.2f1-blue.svg - Check out the updates from the [Fall Creators update](/FallCreatorsUpdate.md) for Windows Mixed Reality > ## HoloLens Developers -> Currently we are waiting on a fix for HoloLens development from Unity, for now you should use the 2017.1.2 version of Unity and the "Release" version of the MRTK Asset: -> -> [![Github Release][hololens-rel-badge]][unity-release] -> -> ### For existing HoloLens developers, also check out the [Breaking Changes](/BreakingChanges.md) information from the previous release. +> ### Check out the [Breaking Changes](/BreakingChanges.md) from the previous release. Looking to upgrade your projects to Windows Mixed Reality? [Follow the Upgrade Guide](/UpgradeGuide.md). From 57c93fa86da6d3aff300bad87c616f04a8bbd7e5 Mon Sep 17 00:00:00 2001 From: Stephen Hodgson Date: Thu, 9 Nov 2017 09:17:15 -0800 Subject: [PATCH 7/9] updated getting started readme --- GettingStarted.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/GettingStarted.md b/GettingStarted.md index ee43aeac965..449a9701675 100644 --- a/GettingStarted.md +++ b/GettingStarted.md @@ -22,23 +22,23 @@ Be sure to enable Developer mode for Windows 10 via: If you have not already, download and install [Visual Studio 2017](https://www.visualstudio.com/vs/) and these required components: +- Windows Universal Platform Development Workload +- Windows SDK 10.16299.10 +- Visual Studio Tools for Unity +- msbuild +- Nuget Package Manager + ![Visual Studio Components](/External/ReadMeImages/VisualStudioComponents.PNG) You can install more components and UWP SDK's as you wish. Make sure you are running the appropriate version of Unity 3D on your machine. You should [download and install the latest version](https://unity3d.com/get-unity/download/archive) this project says it supports on the [main readme page](/README.md). -[unity-release]: https://unity3d.com/unity/whats-new/unity-2017.1.2 -[unity-version-badge]: https://img.shields.io/badge/Latest%20Release%20For%20HoloLens-2017.1.2-blue.svg - -[unity-beta-release]: http://beta.unity3d.com/download/b1565bfe4a0c/download.html -[unity-beta-version-badge]: https://img.shields.io/badge/Latest%20Mixed%20Reality%20Technical%20Preview-2017.2.0p1%20MRTP4-green.svg +[unity-release]: http://beta.unity3d.com/download/b1565bfe4a0c/download.html +[unity-version-badge]: https://img.shields.io/badge/Latest%20Mixed%20Reality%20Technical%20Preview-2017.2.0p1%20MRTP4-green.svg -> The Mixed Reality Toolkit now supports the following Unity 3D versions: -> +> The Mixed Reality Toolkit now recommends the following Unity 3D version: > [![Github Release][unity-version-badge]][unity-release] -> -> [![Github Release][unity-beta-version-badge]][unity-beta-release] _Note: Be sure to include the Windows Store .NET scripting backend components._ @@ -49,7 +49,7 @@ You can download the latest unity package from [Releases](https://github.com/Mic _Note: The latest release should work for both HoloLens and Windows Mixed Reality development._ -[unity-release1]: https://github.com/Microsoft/MixedRealityToolkit-Unity/releases/latest +[unity-release1]: https://github.com/Microsoft/MixedRealityToolkit-Unity/releases/latest [mrtk-version-badge]: https://img.shields.io/github/tag/microsoft/MixedRealityToolkit-unity.svg?style=flat-square&label=Latest%20Master%20Branch%20Release&colorB=007ec6 [![Github Release][mrtk-version-badge]][unity-release1] @@ -143,6 +143,7 @@ This window offers many quick options to be able to: ![Build Window](/External/ReadMeImages/BuildWindow.PNG) +_Note: You should always target the lastest Windows SDK in all builds._ ## 5.1 Running your project for **Immersive Headsets** Unity supports running your Immersive solution direct from the editor **BUT** Only when the Mixed Reality Portal is running. From ac73dc87f597697acc2cffbff857cea29f25afa9 Mon Sep 17 00:00:00 2001 From: Stephen Hodgson Date: Thu, 9 Nov 2017 09:19:15 -0800 Subject: [PATCH 8/9] updated formatting on main readme --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 285b143ddc2..0a5a056fed7 100644 --- a/README.md +++ b/README.md @@ -23,10 +23,8 @@ _Note: The latest release should work for both HoloLens and Windows Mixed Realit [unity-version-badge]: https://img.shields.io/badge/Current%20Unity%20Editor%20Version-2017.2.0p1%20MRTP4-green.svg [![Github Release][unity-version-badge]][unity-download] -Check out the updates from the [Fall Creators update](/FallCreatorsUpdate.md) for Windows Mixed Reality - -> ## HoloLens Developers -> ### Check out the [Breaking Changes](/BreakingChanges.md) from the previous release. +> Check out the updates from the [Fall Creators update](/FallCreatorsUpdate.md) for Windows Mixed Reality +> Check out the [Breaking Changes](/BreakingChanges.md) from the previous release. Looking to upgrade your projects to Windows Mixed Reality? [Follow the Upgrade Guide](/UpgradeGuide.md). From 31804d0dde0b87443764ef270675f5d0b99b3bb1 Mon Sep 17 00:00:00 2001 From: Stephen Hodgson Date: Thu, 9 Nov 2017 09:21:12 -0800 Subject: [PATCH 9/9] more formatting --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0a5a056fed7..c98e80c979c 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,8 @@ _Note: The latest release should work for both HoloLens and Windows Mixed Realit [unity-version-badge]: https://img.shields.io/badge/Current%20Unity%20Editor%20Version-2017.2.0p1%20MRTP4-green.svg [![Github Release][unity-version-badge]][unity-download] -> Check out the updates from the [Fall Creators update](/FallCreatorsUpdate.md) for Windows Mixed Reality +> Check out the updates from the [Fall Creators update](/FallCreatorsUpdate.md) for Windows Mixed Reality. +> > Check out the [Breaking Changes](/BreakingChanges.md) from the previous release. Looking to upgrade your projects to Windows Mixed Reality? [Follow the Upgrade Guide](/UpgradeGuide.md).